Skip to main content

Linux Kernel EUVDEUVD-2026-86925

| CVE-2026-98095 MEDIUM
Incorrect Conversion between Numeric Types (CWE-681)
2026-09-25 Linux GHSA-8w27-88hq-2pm4
5.5
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Local access with CAP_NET_RAW
  2. Delivery
    Open AF_PACKET TPACKET TX-ring socket
  3. Exploit
    Set tp_len above INT_MAX (e.g. 0xfffffdef)
  4. Execution
    Signed cast yields negative length in tpacket_parse_header()
  5. Impact
    Kernel 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Linux patch: 7.3-rc2
Linux 69e3c75f4d541a6eb151b3ef91f34033cb3ad6e1 <73e594c19b4f815d8343461cec7074c4713bbde7
Linux 2.6.31
Linux patch: 6.12.111
Linux 69e3c75f4d541a6eb151b3ef91f34033cb3ad6e1 <9d714076ff398ba8cc5ae0ae146f4a1ea0bbf5e8
Linux patch: 7.2.7
Linux 69e3c75f4d541a6eb151b3ef91f34033cb3ad6e1 <72abe77e88c3f1f71c5348124e9b28e285f26950
Linux 69e3c75f4d541a6eb151b3ef91f34033cb3ad6e1 <c6b3db727876a027013aa4ccb6913a153a2af41a
Linux patch: 0
Linux patch: 6.18.53

Affected Packages

euvd linux no fix

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

NVD PRIMARY 5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 5.5 MEDIUM

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).

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

4
CVSS changed
Oct 23, 2026 - 18:22 NVD
5.5 (MEDIUM)
Patch available
Sep 25, 2026 - 11:02 EUVD
CVE Published
Sep 25, 2026 - 10:24 nvd
MEDIUM 5.5
CVE Published
Sep 25, 2026 - 10:24 cve.org
UNKNOWN (no severity yet)

DescriptionNVD

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

EPSS Score
0.2%
Top 95% exploitable
Prevalence
Ubiquitous
Linux kernel networking stack, present in nearly all deployments
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

28
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy