◆ CVE Hub

CVE-2026-99042

io_uring/net: populate CONNECT filter fields for 24-byte sockaddr_in6

Published
2026-10-23
Last modified
2026-10-24
CNA
Linux
NVD status
Received

Fetching some sources has been requested. Reload in about a minute to see them.

CVSS v3.1 (listed by NVD)
8.4
HIGH
Scored by Linux (not yet scored by NVD)
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
CVSS v4.0 (listed by NVD)
—
Not scored
CVSS (listed by CVE.org)
8.4
HIGH
Scored by CNA (Linux) · v3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
EPSS exploit probability
0.2%
Percentile 10.7%
as of 2026-10-24
CISA KEV
—
Not listed

Attack conditions and impact

Derived from the CNA (via NVD) CVSS 3.1 vector
LocalLoginNo interaction Scope change Confidentiality HIntegrity HAvailability N
MetricValueMeaning
Attack vector AVLLocal
Attack complexity ACLLow (easy)
Privileges required PRLRegular user
User interaction UINNone
Scope SCChanged (affects other components)
Confidentiality CHHigh
Integrity IHHigh
Availability ANNone
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N

Description

NVD

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

ProviderVersionScoreVector
NVD / 416baaa9-dc9f-4396-8d5f-8c081fb06d67 (Secondary)3.18.4 HIGHCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
CNA / Linux3.18.4 HIGHCVSS: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)

VendorProductVersions
LinuxLinux
affected: 899bea8248cee35d54760a5e7d61a76af8e64411 … < 596a955d2d01b7e29d9fed60ebcf7c4ba518b8e5
affected: 899bea8248cee35d54760a5e7d61a76af8e64411 … < aa5d5f8e502318e783545ba5d04bb40130b83e20
default: unaffected
LinuxLinux
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

EcosystemPackageAffected versionsFixed in
>= 899bea8248cee35d54760a5e7d61a76af8e64411, < 596a955d2d01b7e29d9fed60ebcf7c4ba518b8e5; < aa5d5f8e502318e783545ba5d04bb40130b83e20596a955d2d01b7e29d9fed60ebcf7c4ba518b8e5, aa5d5f8e502318e783545ba5d04bb40130b83e20
LinuxKernel>= 7.2.0, < 7.2.117.2.11

Linux distribution status

Red Hat ↗ Fetching

Debian ↗

ReleasePackageStatusFixed version / notes
bookwormlinuxnot-affected unimportant
forkylinuxresolved not yet assigned7.2.11-1
sidlinuxresolved not yet assigned7.2.11-1
trixielinuxnot-affected unimportant

Ubuntu ↗ Fetching

References (5)