CVE-2026-99042

HIGH
MEDIUM Priority: 0.01 BB Relevance: 42/100
Published: 2026-10-23 Modified: 2026-10-24 First seen: 2026-10-29 Status: active

Attack Surface

Low Complexity No Interaction Conf. Impact Integ. Impact Scope Change

CVSS Vector Breakdown

AV: Local
AC: Low
PR: Low
UI: None
S: Changed
C: High
I: High
A: None

Description

In the Linux kernel, the following vulnerability has been resolved: io_uring/net: populate CONNECT filter fields for 24-byte sockaddr_in6 io_connect_bpf_populate() fills connect.port and connect.v6_addr for AF_INET6 only when addr_len >= sizeof(struct sockaddr_in6), i.e. 28 bytes. The IPv6 connect paths accept SIN6_LEN_RFC2133 (24 bytes), which already holds sin6_port and sin6_addr. io_connect() passes addr_len to the socket layer unchanged. At addr_len 24 the filter sees family AF_INET6 with port and address zero, while the kernel connects to the real destination. A filter that denies an IPv6 port or address is bypassed. Denying connect.port == P rejects [::1]:P with -EACCES at addr_len 28 but connects at addr_len 24. Use SIN6_LEN_RFC2133 as the threshold. sin6_scope_id stays zero when absent. The threshold mismatch was found by an AI coding assistant (Claude Code) comparing this hook against the net/ipv6 length checks on my instructions; it also drafted the reproducer and this patch. I verified the bypass and the fix in a VM on 7.3-rc6 and that 7.2 has the same code.

Bug Bounty Relevance

42 / 100
✓ Low complexity
✓ No user interaction

CVSS Score

8.4 / 10.0 v3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N

EPSS — Exploitation Probability

0.16%
Raw Score 0.001600
Percentile 5.2%
Date 2026-11-01

EPSS Trend

2026-11-01
0.00160
2026-10-31
0.00160
2026-10-30
0.00160
2026-10-29
0.00160
2026-10-28
0.00160

Intelligence Sources

nvd ref →