CVE-2026-93105: esp: do not unref managed frag pages in esp_ssg_unref()

Published Sep 17, 2026
·
Updated

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

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

espssgunref() releases the page references held on the source scatterlist after the AEAD operation completes. It calls skbpageunref() on every frag page for an out-of-place transform (req->src != req->dst), and in the error path of espoutputtail() (alreadyunref == true) on the request's own scatterlist.

This is wrong when the skb carries managed frags (SKBFLMANAGEDFRAGREFS). Managed frags are owned by a zerocopy ubuf and the skb does not hold a per-frag page reference; iouring SENDZC with a registered buffer attaches the bvec pages this way via iosgfromiter(). The rest of the stack honours this invariant: skbreleasedata() skips the per-frag unref when SKBFLMANAGEDFRAGREFS is set, and skbzcopymanaged() is the guard used at the other unref sites.

espssgunref() 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 skbzcopymanaged() so both unref paths are skipped for managed-frag skbs, matching skbreleasedata().

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 17, 2026
CVE Published
via MITRE·04:11 PM
Data Sourced
via MITRE·04:11 PM
Description

Frequently Asked Questions

1

Which systems and workloads are implicated?

The issue applies to Linux kernel ESP processing when an skb has managed fragment references. The described source of such skbs is io_uring SEND_ZC using a registered buffer, which attaches buffer-vector pages as managed fragments.

2

What conditions are needed for the reference-count error?

An ESP AEAD operation must process a managed-fragment skb through an out-of-place transform, or reach the specified esp_output_tail() error path. In those paths, the vulnerable code can release page references that the skb did not acquire.

3

What is the consequence if the vulnerable path is reached?

The page reference count can underflow, causing a page that remains in use to be freed. The fix skips both affected unreference paths for skbs identified as having managed zerocopy fragments.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203