CVE-2026-99042
io_uring/net: populate CONNECT filter fields for 24-byte sockaddr_in6
Fetching some sources has been requested. Reload in about a minute to see them.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
Attack conditions and impact
Derived from the CNA (via NVD) CVSS 3.1 vector| Metric | Value | Meaning |
|---|---|---|
| Attack vector AV | L | Local |
| Attack complexity AC | L | Low (easy) |
| Privileges required PR | L | Regular user |
| User interaction UI | N | None |
| Scope S | C | Changed (affects other components) |
| Confidentiality C | H | High |
| Integrity I | H | High |
| Availability A | N | None |
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
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.
CVSS assessments
| Provider | Version | Score | Vector |
|---|---|---|---|
| NVD / 416baaa9-dc9f-4396-8d5f-8c081fb06d67 (Secondary) | 3.1 | 8.4 HIGH | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N |
| CNA / Linux | 3.1 | 8.4 HIGH | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N |
Affected products and packages
CNA (CVE.org)
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | affected: 899bea8248cee35d54760a5e7d61a76af8e64411 … < 596a955d2d01b7e29d9fed60ebcf7c4ba518b8e5 affected: 899bea8248cee35d54760a5e7d61a76af8e64411 … < aa5d5f8e502318e783545ba5d04bb40130b83e20 default: unaffected |
| Linux | Linux | affected: 7.2 unaffected: 0 … < 7.2 unaffected: 7.2.11 … <= 7.2.* unaffected: 7.3 … <= * default: affected |
Open-source packages (GitHub Advisory / OSV)
io_uring/net: populate CONNECT filter fields for 24-byte sockaddr_in6
| Ecosystem | Package | Affected versions | Fixed in |
|---|---|---|---|
| >= 899bea8248cee35d54760a5e7d61a76af8e64411, < 596a955d2d01b7e29d9fed60ebcf7c4ba518b8e5; < aa5d5f8e502318e783545ba5d04bb40130b83e20 | 596a955d2d01b7e29d9fed60ebcf7c4ba518b8e5, aa5d5f8e502318e783545ba5d04bb40130b83e20 | ||
| Linux | Kernel | >= 7.2.0, < 7.2.11 | 7.2.11 |
Linux distribution status
References (5)
- https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git OSV
- https://git.kernel.org/stable/c/596a955d2d01b7e29d9fed60ebcf7c4ba518b8e5 NVD, CNA, OSV
- https://git.kernel.org/stable/c/aa5d5f8e502318e783545ba5d04bb40130b83e20 NVD, CNA, OSV
- https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/99xxx/CVE-2026-99042.json OSV
- https://nvd.nist.gov/vuln/detail/CVE-2026-99042 OSV