Description
In the Linux kernel, the following vulnerability has been resolved:

ipv6: udp: Create exceptions before socket matching

Currently, when ICMPv6 Packet Too Big and Redirect Message packets are
locally delivered and quote a UDP packet, an exception is only created
in the IPv6 exception cache if the kernel can match the UDP packet to an
existing socket.

This behavior allows off-path attackers to conduct a side-channel attack
on the exception cache in order to discover the ephemeral port used by a
connected UDP socket.

Commit 4785305c05b2 ("ipv6: use siphash in rt6_exception_hash()") and
commit a00df2caffed ("ipv6: make exception cache less predictible") tried
to mitigate such attacks by making it harder for attackers to discover
hash collisions in the exception cache and by randomizing the number of
exceptions a hash bucket can hold, respectively. Unfortunately, both of
the mitigations can be bypassed.

Instead, mitigate such attacks by always creating an exception, even
before trying to find a matching socket. Do that by calling
ip6_update_pmtu() and ip6_redirect(), the helpers used when the quoted
packet did not originate from a socket.

This means that guesses (right or wrong) from an off-path attacker will
always result in an exception being created or updated in the cache that
the attacker can observe.

Pass the ifindex of the ingress device and the default uid, in a similar
fashion to icmpv6_err(). Unlike IPv4, an oif of 0 would not match any
nexthop in ip6_redirect_nh_match() and no exception would be created in
response to a Redirect Message.

Note that this does not allow attackers to create exceptions that they
could not create before, as both helpers can already be reached with
little to no validation. For example, by sending an ICMPv6 error that
quotes an ICMPv6 Echo Reply or one that quotes a UDP source port that
matches a wildcard socket.

Also note that in the good case (matched socket) the above scheme comes
at the cost of an extra route lookup, as the no socket helpers perform
their own lookup before the one performed by ip6_sk_update_pmtu() /
ip6_sk_redirect(). When the two resolve to different nexthops, it also
results in two exceptions being created for the same destination IP. One
in the exception cache of the nexthop resolved by the no socket helpers
and another in the exception cache of the nexthop used by the socket.
Published: 2026-10-23
Score: 3.7 Low
EPSS: < 1% Very Low
KEV: No
Impact: Information Disclosure – UDP port exposure through IPv6 exception cache side‑channel
Action: Patch
AI Analysis

Impact

A flaw in the Linux kernel’s handling of IPv6 UDP exception caching allows an attacker to probe the kernel by sending ICMPv6 Packet Too Big or Redirect Message packets that quote a UDP packet. These crafted messages cause the kernel to create or update an entry in the IPv6 exception cache even before it attempts to match the quoted UDP packet to an existing socket. By observing changes to the exception cache, an attacker can infer which local UDP port is being used by a connected socket, effectively leaking transport port information without executing code or escalating privileges.

Affected Systems

The issue exists in the Linux kernel across all vendors identified as Linux. No specific kernel versions are listed; it affects any build preceding the commits that enforce creation of exception cache entries before socket lookup.

Risk and Exploitability

The vulnerability is a side‑channel information disclosure. The CVSS score of 3.7 indicates low severity. The EPSS score of <1% indicates a very low probability of exploitation. The flaw is not listed in the CISA KEV catalog, so widespread exploitation is currently unknown. The likely attack vector is off‑path delivery of crafted ICMPv6 error messages; this is inferred from the description because the exploit requires sending such packets. The attack requires no privileged kernel interaction, but the attacker must be able to observe the kernel’s exception cache state, which typically implies a degree of proximity to the target machine. Given the lack of an immediate exploitation path for privilege escalation, the risk is considered moderate to high for exposed systems that receive unsolicited IPv6 error messages.

Generated by OpenCVE AI on November 3, 2026 at 03:52 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the kernel to a release that includes the recent commits that create exception cache entries before socket lookup.
  • Configure firewall or traffic filtering devices to block or rate‑limit inbound ICMPv6 Packet Too Big and Redirect Message packets from untrusted sources.
  • Consider disabling or limiting local generation of ICMPv6 error messages where possible, and apply any vendor‑issued patches that address the exception cache handling.

Generated by OpenCVE AI on November 3, 2026 at 03:52 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Ubuntu USN Ubuntu USN USN-9018-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-9018-2 Linux kernel (HWE) vulnerabilities
Ubuntu USN Ubuntu USN USN-9019-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-9020-1 Linux kernel vulnerabilities
History

Tue, 10 Nov 2026 18:30:00 +0000


Fri, 06 Nov 2026 17:30:00 +0000


Tue, 03 Nov 2026 02:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-200
CWE-300

Tue, 03 Nov 2026 00:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-205
References
Metrics threat_severity

None

cvssV3_1

{'score': 3.7, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N'}

threat_severity

Low


Sat, 24 Oct 2026 00:30:00 +0000

Type Values Removed Values Added
First Time appeared Linux linux
Vendors & Products Linux linux

Fri, 23 Oct 2026 17:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-200
CWE-300

Fri, 23 Oct 2026 12:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ipv6: udp: Create exceptions before socket matching Currently, when ICMPv6 Packet Too Big and Redirect Message packets are locally delivered and quote a UDP packet, an exception is only created in the IPv6 exception cache if the kernel can match the UDP packet to an existing socket. This behavior allows off-path attackers to conduct a side-channel attack on the exception cache in order to discover the ephemeral port used by a connected UDP socket. Commit 4785305c05b2 ("ipv6: use siphash in rt6_exception_hash()") and commit a00df2caffed ("ipv6: make exception cache less predictible") tried to mitigate such attacks by making it harder for attackers to discover hash collisions in the exception cache and by randomizing the number of exceptions a hash bucket can hold, respectively. Unfortunately, both of the mitigations can be bypassed. Instead, mitigate such attacks by always creating an exception, even before trying to find a matching socket. Do that by calling ip6_update_pmtu() and ip6_redirect(), the helpers used when the quoted packet did not originate from a socket. This means that guesses (right or wrong) from an off-path attacker will always result in an exception being created or updated in the cache that the attacker can observe. Pass the ifindex of the ingress device and the default uid, in a similar fashion to icmpv6_err(). Unlike IPv4, an oif of 0 would not match any nexthop in ip6_redirect_nh_match() and no exception would be created in response to a Redirect Message. Note that this does not allow attackers to create exceptions that they could not create before, as both helpers can already be reached with little to no validation. For example, by sending an ICMPv6 error that quotes an ICMPv6 Echo Reply or one that quotes a UDP source port that matches a wildcard socket. Also note that in the good case (matched socket) the above scheme comes at the cost of an extra route lookup, as the no socket helpers perform their own lookup before the one performed by ip6_sk_update_pmtu() / ip6_sk_redirect(). When the two resolve to different nexthops, it also results in two exceptions being created for the same destination IP. One in the exception cache of the nexthop resolved by the no socket helpers and another in the exception cache of the nexthop used by the socket.
Title ipv6: udp: Create exceptions before socket matching
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-11-10T18:15:23.412Z

Reserved: 2026-09-25T10:25:14.389Z

Link: CVE-2026-99076

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-23T13:17:31.663

Modified: 2026-11-10T19:22:29.847

Link: CVE-2026-99076

cve-icon Redhat

Severity : Low

Publid Date: 2026-10-23T12:23:19Z

Links: CVE-2026-99076 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-11-03T04:00:14Z

Weaknesses
  • CWE-205

    Observable Behavioral Discrepancy