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

esp: downgrade zerocopy managed frags before mutating skb frags

On the out-of-place output path (esp->inplace == false) ESP rewrites the
skb frag array: esp_output_head() appends a trailer frag and
esp_output_tail() replaces the frags with a destination page, both
referenced with get_page().

When the skb carries zerocopy managed frags (SKBFL_MANAGED_FRAG_REFS) the
payload frags are owned by the ubuf and must not be referenced or
unreferenced individually, but ESP mutates the frag array without ever
downgrading the skb. This breaks the managed-frag invariant two ways:

- esp_ssg_unref() walks the source scatterlist and drops a page
reference for every frag, including the ubuf-owned payload frags,
pushing their refcount below the GUP pin bias while the pages are
still pinned, i.e. a use-after-free of the zerocopy pages;

- esp_output_tail() installs its destination page as frag 0 with
get_page() but leaves SKBFL_MANAGED_FRAG_REFS set, so
skb_release_data() takes the skip_unref branch and never drops that
reference, leaking the x->xfrag page at packet rate.

Fix this the way every other frag-mutating site does (__ip_append_data(),
__ip6_append_data(), tcp_sendmsg_locked()) and call
skb_zcopy_downgrade_managed() before ESP touches the frag array: it takes
a real reference on each existing frag and clears SKBFL_MANAGED_FRAG_REFS,
so the per-frag unref in esp_ssg_unref() and the frag release in
skb_release_data() are both balanced and no mixed-ownership frag array is
left behind.
Published: 2026-10-06
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Kernel memory corruption (Use‑After‑Free)
Action: Patch Kernel
AI Analysis

Impact

The Linux kernel Encapsulating Security Payload (ESP) module incorrectly handles zero‑copy managed fragments when ESP rewrites the socket buffer fragment array. The flaw causes the kernel to drop page references for fragments owned by the user buffer without first downgrading them, resulting in a use‑after‑free of the zero‑copy pages and a continuous memory leak. This behavior aligns with CWE‑911, which involves improper buffer integrity.

Affected Systems

All Linux kernels that contain the vulnerable ESP code path are impacted, including the upstream generic kernel and any derivative kernels that have not yet applied the patch that introduces skb_zcopy_downgrade_managed() before ESP mutates the fragment list. Systems running IPsec or ESP over IPv4 or IPv6 with the vulnerable kernel revision are at risk, regardless of distribution.

Risk and Exploitability

The CVSS score of 7.8 indicates a high‑severity kernel memory corruption flaw, and the EPSS score of < 1% reflects a very low, though non‑zero, likelihood of exploitation. The vulnerability is not listed in CISA KEV. Based on the description, the likely attack vector is network‑based: an attacker who can send crafted ESP packets to a host with IPsec enabled may trigger the flaw, potentially causing a kernel crash or privilege escalation.

Generated by OpenCVE AI on October 9, 2026 at 06:51 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the upstream kernel patch that adds skb_zcopy_downgrade_managed() before ESP modifies the fragment list.
  • Reboot the host so the patched kernel code is loaded into memory.
  • If patching cannot be performed immediately, disable ESP or IPsec packet processing on the affected system to block traffic from reaching the vulnerable code path.

Generated by OpenCVE AI on October 9, 2026 at 06:51 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4841-1 linux security update
Debian DLA Debian DLA DLA-4850-1 linux-6.12 security update
Debian DSA Debian DSA DSA-6568-1 linux security update
History

Fri, 09 Oct 2026 05:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Fri, 09 Oct 2026 00:15:00 +0000


Wed, 07 Oct 2026 11:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 07 Oct 2026 09:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-401
CWE-416

Wed, 07 Oct 2026 07:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Tue, 06 Oct 2026 20:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-401
CWE-416

Tue, 06 Oct 2026 18:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-401
CWE-416

Tue, 06 Oct 2026 14:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-401
CWE-416

Tue, 06 Oct 2026 09:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: esp: downgrade zerocopy managed frags before mutating skb frags On the out-of-place output path (esp->inplace == false) ESP rewrites the skb frag array: esp_output_head() appends a trailer frag and esp_output_tail() replaces the frags with a destination page, both referenced with get_page(). When the skb carries zerocopy managed frags (SKBFL_MANAGED_FRAG_REFS) the payload frags are owned by the ubuf and must not be referenced or unreferenced individually, but ESP mutates the frag array without ever downgrading the skb. This breaks the managed-frag invariant two ways: - esp_ssg_unref() walks the source scatterlist and drops a page reference for every frag, including the ubuf-owned payload frags, pushing their refcount below the GUP pin bias while the pages are still pinned, i.e. a use-after-free of the zerocopy pages; - esp_output_tail() installs its destination page as frag 0 with get_page() but leaves SKBFL_MANAGED_FRAG_REFS set, so skb_release_data() takes the skip_unref branch and never drops that reference, leaking the x->xfrag page at packet rate. Fix this the way every other frag-mutating site does (__ip_append_data(), __ip6_append_data(), tcp_sendmsg_locked()) and call skb_zcopy_downgrade_managed() before ESP touches the frag array: it takes a real reference on each existing frag and clears SKBFL_MANAGED_FRAG_REFS, so the per-frag unref in esp_ssg_unref() and the frag release in skb_release_data() are both balanced and no mixed-ownership frag array is left behind.
Title esp: downgrade zerocopy managed frags before mutating skb frags
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-19T09:18:20.253Z

Reserved: 2026-09-25T10:25:14.344Z

Link: CVE-2026-98368

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-06T09:18:31.130

Modified: 2026-10-19T10:18:39.853

Link: CVE-2026-98368

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-06T00:00:00Z

Links: CVE-2026-98368 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-09T07:00:12Z

Weaknesses
  • CWE-911

    Improper Update of Reference Count