CVE-2026-93105

CVE-2026-93105

High · published September 17, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
6.6
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

esp: do not unref managed frag pages in esp_ssg_unref()

esp_ssg_unref() releases the page references held on the source

scatterlist after the AEAD operation completes. It calls

skb_page_unref() on every frag page for an out-of-place transform

(req->src != req->dst), and in the error path of esp_output_tail()

(already_unref == true) on the request's own scatterlist.

This is wrong when the skb carries managed frags

(SKBFL_MANAGED_FRAG_REFS). Managed frags are owned by a zerocopy ubuf

and the skb does not hold a per-frag page reference; io_uring SEND_ZC

with a registered buffer attaches the bvec pages this way via

io_sg_from_iter(). The rest of the stack honours this invariant:

skb_release_data() skips the per-frag unref when SKBFL_MANAGED_FRAG_REFS

is set, and skb_zcopy_managed() is the guard used at the other unref

sites.

esp_ssg_unref() is missing that guard, so for a managed-frag skb it

drops a page reference the skb never acquired. This can underflow the

page reference count and free a page that is still in use.

Guard the function with skb_zcopy_managed() so both unref paths are

skipped for managed-frag skbs, matching skb_release_data().

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00175 · 6.6th percentile
Published
2026-09-17T21:18Z
References (5)
EPSS history
Timeline
  • 19 SEP 03:55Z
    EPSS moved — → 0%
    epss
  • 17 SEP 16:11Z
    esp: do not unref managed frag pages in esp_ssg_unref()
    cvelistv5