CVE-2026-93105

Source
https://cve.org/CVERecord?id=CVE-2026-93105
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-93105.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-93105
Downstream
Related
Published
2026-09-17T16:11:16Z
Modified
2026-11-01T02:30:25Z
Severity
  • 7.8 (High) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H CVSS Calculator
Summary
esp: do not unref managed frag pages in esp_ssg_unref()
Details

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().

Database specific
{
    "cna_assigner":  "Linux",
    "osv_generated_from":  "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/93xxx/CVE-2026-93105.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
cac2661c53f35cbe651bef9b07026a5a05ab8ce0
Fixed
cb375965800d474c0281a2e92c43c724fce9f463
Fixed
201bdf10ae92e7cbd524adf8c0323e2a963d5fd7
Fixed
3ec55f0c8a6a543cf660584d1346e11f6311ee59
Fixed
1ad6456898f6e6cf58be83bdb607acb1119a9cd1
Fixed
26b6b14c7a0368e317a1e9fb5144ebe6f8d495cf
Fixed
21697720ff43b8dfa25b8e8d9ca7f56f4597fc80

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-93105.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
4.11.0
Fixed
6.1.191
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.160
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.114
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.57
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.2.6

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-93105.json"