CVE-2026-93105

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

State
Published
Severity
7.8 High
Published
Sep 17, 2026
Updated
Oct 30, 2026
Reserved
Sep 17, 2026

Read the record on cve.org

Description

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

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • cac2661c53f35cbe651bef9b07026a5a05ab8ce0 to before cb375965800d474c0281a2e92c43c724fce9f463Affected
  • cac2661c53f35cbe651bef9b07026a5a05ab8ce0 to before 201bdf10ae92e7cbd524adf8c0323e2a963d5fd7Affected
  • cac2661c53f35cbe651bef9b07026a5a05ab8ce0 to before 3ec55f0c8a6a543cf660584d1346e11f6311ee59Affected
  • cac2661c53f35cbe651bef9b07026a5a05ab8ce0 to before 1ad6456898f6e6cf58be83bdb607acb1119a9cd1Affected
  • cac2661c53f35cbe651bef9b07026a5a05ab8ce0 to before 26b6b14c7a0368e317a1e9fb5144ebe6f8d495cfAffected
  • cac2661c53f35cbe651bef9b07026a5a05ab8ce0 to before 21697720ff43b8dfa25b8e8d9ca7f56f4597fc80Affected
LinuxLinux
  • 4.11Affected
  • before 4.11Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.114 through 6.12.*Not affected
  • 6.18.57 through 6.18.*Not affected
  • 7.2.6 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.