CVE-2026-97597: ipv6: flowlabel: cap duplicate leases per socket

Published Sep 25, 2026
·
Updated

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

ipv6: flowlabel: cap duplicate leases per socket

ipv6flowlabelget() allocates an ipv6flsocklist entry for every successful GET. The recheck path for a compatible existing flowlabel links another lease without applying any lease admission check. Repeated GET requests for one shareable label can therefore grow a socket's lease list without bound.

Reject a new unprivileged lease once the socket already holds FLMAXPERSOCK leases. Check this on the shared recheck path so reuse of a globally interned label, including the flintern() collision path, is covered as well. New-label admission remains under the existing memcheck() policy.

Use capable(CAPNETADMIN) rather than nscapable(), matching memcheck(). An unprivileged user must not bypass the cap by creating a user namespace and a netns where they have CAPNETADMIN, which would still consume host memory.

Check the capability only when the socket reaches the limit, so successful unprivileged GET requests below the cap do not generate a capability audit. Do the admission check before updating linger and expires so a rejected GET does not refresh the shared label, matching the existing socket-list allocation failure path.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 25, 2026
CVE Published
via MITRE·10:22 AM
Data Sourced
via MITRE·10:22 AM
Description
Data Sourced
via NVD·11:17 AM
Description

Frequently Asked Questions

1

Who can trigger the unbounded growth?

An unprivileged user that can repeatedly issue successful IPv6 flow-label GET requests on a socket can grow that socket's lease list without bound when reusing a compatible shareable label. The growth consumes host memory.

2

What request pattern is required to exploit the issue?

The attacker must repeatedly obtain leases for one shareable flow label through the compatible-existing-label recheck path. This includes reuse of a globally interned label and the fl_intern() collision path.

3

Can an attacker bypass the intended restriction by creating a user and network namespace?

No. The resolved behavior uses capable(CAP_NET_ADMIN), rather than ns_capable(), so CAP_NET_ADMIN obtained in a user namespace and network namespace does not permit an unprivileged user to bypass the per-socket lease cap while consuming host memory.

4

Are privileged users subject to the new lease limit?

The new admission check rejects a lease at the per-socket limit only for unprivileged users. A caller with CAP_NET_ADMIN is not rejected by this specific limit check.

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