Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLocal access with CAP_NET_RAW
-
DeliveryOpen AF_PACKET TPACKET TX-ring socket
-
ExploitSet tp_len above INT_MAX (e.g. 0xfffffdef)
-
ExecutionSigned cast yields negative length in tpacket_parse_header()
-
ImpactKernel BUG() in sock_sendmsg_nosec, system crash (DoS)
Vulnerability Assessment
| Weakness |
CWE
|
| Exploitation Conditions | Requires local code execution and the ability to create an AF_PACKET packet socket with a TPACKET transmit ring, which needs the CAP_NET_RAW capability (potentially reachable from an unprivileged user namespace on configurations that grant it). The specific trigger is setting tpacket_hdr.tp_len to a value greater than INT_MAX (the reproducer uses 0xfffffdef) and then writing to the socket, which causes the u32-to-int cast in tpacket_parse_header() to produce a negative length. No user interaction and no network access are needed. Limiting factors: exploitation is strictly local (AV:L), depends on holding CAP_NET_RAW, and yields only a kernel crash (DoS) - there is no confidentiality or integrity impact and no indication of privilege escalation. |
| Impact | This is a local denial-of-service bug in the Linux kernel AF_PACKET (packet socket) TX ring path. The supplied CVSS vector (AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, base 5.5) and CWE-681 (incorrect numeric conversion) are internally consistent with the description: a u32 tp_len cast to int lets a value above INT_MAX become negative and propagate as a bogus error (-EIOCBQUEUED) up to sock_sendmsg_nosec(), hitting a BUG() and crashing the kernel - pure availability impact, no confidentiality or integrity loss. EPSS is low (0.17%, 5th percentile) and the CVE is NOT in CISA KEV, so there is no evidence of widespread or active exploitation. The vuln.today decision label is 'this_month' (not act_now/emergency), which aligns with the low-EPSS, local-vector, DoS-only profile. The one signal pulling the other way is reproducibility: the description embeds a concrete syzbot reproducer, so triggering the crash is trivial for anyone with the required local capability, which is why this is a patch-this-cycle item rather than ignorable. Net: a genuine but modest-severity local crash bug - real enough to patch on a normal monthly cadence, not an emergency. Note a tag conflict - input tags include 'Information Disclosure', but the CVSS vector is C:N/I:N/A:H (availability only), so the Information Disclosure label appears mislabeled. |
| Exploit ScenarioDerived | A local user who can open an AF_PACKET socket with a TX ring (requires CAP_NET_RAW, obtainable in some unprivileged user-namespace configurations) sets tpacket_hdr.tp_len to a value above INT_MAX, such as 0xfffffdef, then issues a write. The oversized length is misinterpreted as a negative value and propagates to sock_sendmsg_nosec(), hitting a BUG() and crashing the kernel. A syzbot reproducer is included in the advisory description; it is not verified as a packaged working exploit, but it makes the crash trivial to reproduce. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
Local denial of service in the Linux kernel AF_PACKET packet-socket TX ring path allows a local user holding CAP_NET_RAW to crash the kernel by setting tpacket_hdr.tp_len above INT_MAX and writing to the socket. The u32-to-int cast in tpacket_parse_header() turns the oversized length into a negative value that passes the size check and propagates to sock_sendmsg_nosec(), triggering BUG(); only availability is affected (CVSS 3.1 score 5.5, AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H), with no confidentiality or integrity impact and no privilege escalation indicated. Vendor patches are available for the 6.12, 6.18, 7.2 and 7.3-rc branches, and no public exploit was identified at time of analysis (EPSS 0.17%).
RemediationAI
Vendor-released patch: Linux 6.12.111, 6.18.53, 7.2.7 and 7.3-rc2; apply the corresponding stable commit from the kernel.org references (c6b3db727876a027013aa4ccb6913a153a2af41a, 72abe77e88c3f1f71c5348124e9b28e285f26950, 9d714076ff398ba8cc5ae0ae146f4a1ea0bbf5e8, or 73e594c19b4f815d8343461cec7074c4713bbde7) when updating a distribution kernel. Where the update cannot be applied immediately, the documented prerequisite CAP_NET_RAW can serve as a compensating control: restrict CAP_NET_RAW to trusted workloads and disable unprivileged user namespaces on configurations that grant it, accepting that this breaks container networking, DHCP clients, packet-capture tools and rootless networking that rely on those capabilities; these controls reduce exposure but do not replace the kernel fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is in the Linux kernel's AF_PACKET implementation, which provides packet sockets and the TPACKET transmit/receive ring interfaces used by tools such as packet capture and custom network applications. In tpacket_parse_header(), the user-controlled tpacket_hdr.tp_len field is defined as u32 but was cast to int; when tp_len exceeds INT_MAX, the cast produces a negative value, so the subsequent check 'if (unlikely(tp_len > size_max))' does not catch it and a negative length can be returned to the caller. The supplied report describes the reproducer setting tp_len to 0xfffffdef, which becomes -EIOCBQUEUED (-529) and triggers the BUG() in sock_sendmsg_nosec() at net/socket.c:803; the root cause is CWE-681 (Incorrect Conversion between Numeric Types). The documented prerequisites are local access and the ability to create an AF_PACKET packet socket with a TPACKET transmit ring, which requires CAP_NET_RAW, potentially reachable from an unprivileged user namespace on configurations that grant it; no user interaction or network access is needed, and the outcome is a kernel crash rather than privilege escalation.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Local AF_PACKET socket needs CAP_NET_RAW (PR:L), deterministic trigger via a single oversized tp_len value (AC:L), and the outcome is a kernel BUG() crash (A:H, C/I:N).
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
4DescriptionNVD
In the Linux kernel, the following vulnerability has been resolved:
af_packet: Don't cast tpacket_hdr.tp_len to int in tpacket_parse_header().
syzbot reported BUG() in sock_sendmsg_nosec(). [0]
The problem is that tpacket_parse_header() casts user-provided tpacket_hdr.tp_len, which is u32, to int.
If the length is larger than INT_MAX, the following condition in tpacket_parse_header() passes,
if (unlikely(tp_len > size_max))
and any negative value can be returned to the caller, up to sock_sendmsg_nosec().
The repro set tpacket_hdr.tp_len to 0xfffffdef, which is cast to -EIOCBQUEUED (-529), triggering BUG() in sock_sendmsg_nosec().
*(uint64_t*)0x200000000008 = 0xfffffdef; ... syscall(__NR_write, /*fd=*/r[0], /*buf=*/0x200000000000ul, /*count=*/1ul);
Let's define the local tp_len as u32 in tpacket_parse_header().
[0]: kernel BUG at net/socket.c:803! Oops: invalid opcode: 0000 [#1] SMP KASAN PTI CPU: 0 UID: 0 PID: 5628 Comm: syz-executor176 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/2026 RIP: 0010:sock_sendmsg_nosec+0x145/0x180 net/socket.c:803 Code: 06 67 48 0f b9 3a eb 95 e8 e8 3a 22 f8 48 89 df 4c 89 f6 4c 89 e2 4d 89 fb 2e e8 32 a5 5c 16 e9 51 ff ff ff e8 cc 3a 22 f8 90 <0f> 0b e8 c4 3a 22 f8 48 83 c3 18 48 89 d8 48 c1 e8 03 42 80 3c 28 RSP: 0018:ffffc90003aefb48 EFLAGS: 00010293 RAX: ffffffff89a578d4 RBX: ffff8880764c67c0 RCX: ffff88807fb23e80 RDX: 0000000000000000 RSI: 00000000fffffdef RDI: 00000000fffffdef RBP: 00000000fffffdef R08: ffffc90003aef747 R09: 1ffff9200075dee8 R10: dffffc0000000000 R11: fffff5200075dee9 R12: 0000000000000001 R13: dffffc0000000000 R14: ffffc90003aefbc0 R15: ffffffff8aac4310 FS: 000055559101b400(0000) GS:ffff888124ce0000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000200000000210 CR3: 0000000073dca000 CR4: 00000000003526f0 Call Trace: <TASK> __sock_sendmsg net/socket.c:815 [inline] sock_write_iter+0x2de/0x3e0 net/socket.c:1266 new_sync_write fs/read_write.c:595 [inline] vfs_write+0x612/0xba0 fs/read_write.c:687 ksys_write+0x150/0x270 fs/read_write.c:739 do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline] do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f173130ecb9 Code: c0 79 93 eb d5 48 8d 7c 1d 00 eb 99 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 d8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007ffd67e44248 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 0000200000000000 RCX: 00007f173130ecb9 RDX: 0000000000000001 RSI: 0000200000000000 RDI: 0000000000000003 RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007ffd67e44388 R13: 0000000000000002 R14: 00002000000000c0 R15: 0000000000000002 </TASK>
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
EUVD-2026-86925
GHSA-8w27-88hq-2pm4
NVD
CVE.org
EPSS
Exploit-DB