netfilter: nfnetlink_queue: do shared-unconfirmed check before segmentation
CVE-2026-45859 · published 27 May 2026
How serious is it
- Severity: high, CVSS score 7.5 out of 10.
- No exploit prediction (EPSS) score yet.
- Not on the CISA list of exploited vulnerabilities.
- No public exploit in Exploit-DB.
Is your app affected by CVE-2026-45859?
Paste this prompt into Claude Code, Cursor or any AI coding tool: it runs a free Shippable scan of your project and fixes what it finds. Built with Lovable, Bolt or v0? Scan your live app. Or upload your package file.
Who is affected
- Linux Linux: 74e6eb7fd27ef1ccc68041dbc66e6d80d2e4a1a0 to < aead84bdacd77e08357fd718e5dcaffaf387f3c3, 7d8dc1c7be8d3509e8f5164dd5df64c8e34d7eeb to < 79b713ef4261a8ead96af4703f89d0b5f25532e2, 7d8dc1c7be8d3509e8f5164dd5df64c8e34d7eeb to < 23901aa6b8a2f294c4b774436b4691f3ff863a8f, 7d8dc1c7be8d3509e8f5164dd5df64c8e34d7eeb to < b740e7ddd7ca0dbfeafca3f5e52717206cf28524
- Linux Linux: 6.11
How to check
- Find out whether you run the affected product and which version, then compare it with the versions above.
How to fix
Copies a prompt for Claude Code, Cursor or Codex that asks it to check whether you run this product.
- Apply the vendor's update or mitigation from the references below. If there is none yet, limit exposure of the affected service until there is.
- If a vulnerable version was live, check your logs and rotate the secrets that server could read.
The advisory
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nfnetlink_queue: do shared-unconfirmed check before segmentation
Ulrich reports a regression with nfqueue:
If an application did not set the 'F_GSO' capability flag and a gso
packet with an unconfirmed nf_conn entry is received all packets are
now dropped instead of queued, because the check happens after
skb_gso_segment(). In that case, we did have exclusive ownership
of the skb and its associated conntrack entry. The elevated use
count is due to skb_clone happening via skb_gso_segment().
Move the check so that its peformed vs. the aggregated packet.
Then, annotate the individual segments except the first one so we
can do a 2nd check at reinject time.
For the normal case, where userspace does in-order reinjects, this avoids
packet drops: first reinjected segment continues traversal and confirms
entry, remaining segments observe the confirmed entry.
While at it, simplify nf_ct_drop_unconfirmed(): We only care about
unconfirmed entries with a refcnt > 1, there is no need to special-case
dying entries.
This only happens with UDP. With TCP, the only unconfirmed packet will
be the TCP SYN, those aren't aggregated by GRO.
Next patch adds a udpgro test case to cover this scenario.
Check your whole app
Dependencies are only half of it. Free and read-only: before you push, run npx shippable-dev scan localhost:3000 in your project folder, no account needed. For your live app, you prove it's yours with a one-line tag first.
References
- git.kernel.org/stable/c/aead84bdacd77e08357fd718e5dcaffaf387f3c3
- git.kernel.org/stable/c/79b713ef4261a8ead96af4703f89d0b5f25532e2
- git.kernel.org/stable/c/23901aa6b8a2f294c4b774436b4691f3ff863a8f
- git.kernel.org/stable/c/b740e7ddd7ca0dbfeafca3f5e52717206cf28524
- git.kernel.org/stable/c/207b3ebacb6113acaaec0d171d5307032c690004
Merged from CVE List. Last updated 25 Oct 2026. All vulnerabilities · RSS · JSON