CVE-2026-99077 json
ipv4: udp: Create exceptions before socket matching
published 19d ago modified 12d ago also EUVD-2026-108743
- cvss
- 7.4
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 37%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv4: udp: Create exceptions before socket matching
Currently, when ICMP Fragmentation Needed and Redirect Message packets are locally delivered and quote a UDP packet, a FIB nexthop exception (FNHE) is only created 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 FNHE cache in order to discover the ephemeral port used by a connected UDP socket.
Commit 6457378fe796 ("ipv4: use siphash instead of Jenkins in fnhe_hashfun()") and commit 67d6d681e15b ("ipv4: make exception cache less predictible") tried to mitigate such attacks by making it harder for attackers to discover hash collisions in the FNHE 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 a FNHE, even before trying to find a matching socket. Do that by calling ipv4_update_pmtu() and ipv4_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 a FNHE being created or updated in the cache that the attacker can observe.
Pass an oif of 0, in a similar fashion to icmp_err(). This is also the oif used by the socket path for sockets that are not bound to a device.
Note that this does not allow attackers to create FNHEs that they could not create before, as both helpers can already be reached with little to no validation. For example, by sending an ICMP error that quotes an ICMP 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 ipv4_sk_update_pmtu() / ipv4_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 FNHE cache of the nexthop resolved by the no socket helpers and another in the FNHE cache of the nexthop used by the socket.
Patch / fix
- Linux Linux 7.3
- linux Debian 13 6.12.115-2
- linux Debian 14 7.2.11-1
debian advisories DEBIAN-CVE-2026-99077
- linux Ubuntu 26.04 LTS 7.0.0-43.43
- linux-aws Ubuntu 26.04 LTS 7.0.0-1017.18
- linux-gcp Ubuntu 26.04 LTS 7.0.0-1017.19
- linux-gke Ubuntu 26.04 LTS 7.0.0-1010.11
- linux-ibm Ubuntu 26.04 LTS 7.0.0-1018.18
- linux-azure Ubuntu 26.04 LTS 7.0.0-1020.21
- linux-oracle Ubuntu 26.04 LTS 7.0.0-1016.18
- linux-aws-7.0 Ubuntu 24.04 LTS 7.0.0-1017.18~24.04.1
ubuntu advisories UBUNTU-CVE-2026-99077
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel Azure Linux 3.0 6.6.161.1-1
azure linux advisories AZL-110972
Azure Linux vulnerability data, Copyright (c) Microsoft Corporation, from https://github.com/microsoft/AzureLinuxVulnerabilityData via OSV, under the MIT licence; changed: normalised to fixed package versions per release. MIT
- git.kernel.org/stable/c/e8f211a37396f1684af9ac81b3fc53538eb9c2f7 commit
- git.kernel.org/stable/c/9f97b01ee799bdf57d9183623f3987c8bbfd4f6f commit
- git.kernel.org/stable/c/e0cd4942831d4ef8f6d4b90b0d3510460fdfbceb commit
- git.kernel.org/stable/c/0cf0ff2f728f2a1434c56c0bcf267fe230abf124 commit
- git.kernel.org/stable/c/3b92e4349c6b0dd1e05d5f0483e71ef37691b1c3 commit
- git.kernel.org/stable/c/ecd7ead4bf05e221e90f18a29aec570a50fd1592 commit
- git.kernel.org/stable/c/be4fd05398f2b5e42029be70ee875fc749b8ce3a commit
- git.kernel.org/stable/c/4c3499f79f8c7e8561266bcc220a18538cec0458 commit
Is CVE-2026-99077 in your stack? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-99077 updated cvss 6.5
kernel: kernel: Information disclosure via routing exception cache side channel in IPv4 UDP
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 moreaffected: workaround, no fix planned “Out of support scope”
-
Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernel Red Hat OpenShift Container Platform 4 openshift/ose-rhel-coreos-8, openshift/ose-rhel-coreos-9 Red Hat OpenShift Container Platform 5 openshift/ose-rhel-coreos-9, openshift/ose-rhel-coreos-10affected: workaround, no fix available
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
0.43% chance of exploitation in the next 30 days, higher than 37% of all scored CVEs (FIRST EPSS, 2026-11-11).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.4 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N |
Affected products
- Linux Linux
Classification
- Technology feeds
References
- git.kernel.org /stable/c/e8f211a37396f1684af9ac81b3fc53538eb9c2f7
- git.kernel.org /stable/c/9f97b01ee799bdf57d9183623f3987c8bbfd4f6f
- git.kernel.org /stable/c/e0cd4942831d4ef8f6d4b90b0d3510460fdfbceb
- git.kernel.org /stable/c/0cf0ff2f728f2a1434c56c0bcf267fe230abf124
- git.kernel.org /stable/c/3b92e4349c6b0dd1e05d5f0483e71ef37691b1c3
- git.kernel.org /stable/c/ecd7ead4bf05e221e90f18a29aec570a50fd1592
- git.kernel.org /stable/c/be4fd05398f2b5e42029be70ee875fc749b8ce3a
- git.kernel.org /stable/c/4c3499f79f8c7e8561266bcc220a18538cec0458
Sources
- CVE List CVE-2026-99077
- NVD CVE-2026-99077
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.