CVE-2026-72421 (GCVE-0-2026-72421)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-08-17 05:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv4: fib: Don't ignore error route in local/main tables.
When CONFIG_IP_MULTIPLE_TABLES is enabled but no rule is added,
fib_lookup() performs route lookup directly on two tables.
Since the first lookup does not properly bail out, the result
of an error route in the merged local/main table could be
overwritten by another route in the default table:
# unshare -n
# ip link set lo up
# ip route add 192.168.0.0/24 dev lo table 253
# ip route add unreachable 192.168.0.0/24
# ip route get 192.168.0.1
192.168.0.1 dev lo table default uid 0
cache <local>
Once a random rule is added, the error route is respected:
# ip rule add table 0
# ip rule del table 0
# ip route get 192.168.0.1
RTNETLINK answers: No route to host
Let's fix the inconsistent behaviour.
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f4530fa574df4d833506c53697ed1daa0d390bf4 Version: f4530fa574df4d833506c53697ed1daa0d390bf4 Version: f4530fa574df4d833506c53697ed1daa0d390bf4 Version: f4530fa574df4d833506c53697ed1daa0d390bf4 Version: f4530fa574df4d833506c53697ed1daa0d390bf4 Version: f4530fa574df4d833506c53697ed1daa0d390bf4 Version: f4530fa574df4d833506c53697ed1daa0d390bf4 Version: f4530fa574df4d833506c53697ed1daa0d390bf4 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/ip_fib.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a29e95fbc51e8a1b932773fd0e259b2080881443",
"status": "affected",
"version": "f4530fa574df4d833506c53697ed1daa0d390bf4",
"versionType": "git"
},
{
"lessThan": "5ae18d87a45698e8244d0fcba64c658c35a7dd3d",
"status": "affected",
"version": "f4530fa574df4d833506c53697ed1daa0d390bf4",
"versionType": "git"
},
{
"lessThan": "9127589aabdee588278e8d0d0bd3709a760a92c8",
"status": "affected",
"version": "f4530fa574df4d833506c53697ed1daa0d390bf4",
"versionType": "git"
},
{
"lessThan": "49eaf1403201357762d745a35882fb734107d763",
"status": "affected",
"version": "f4530fa574df4d833506c53697ed1daa0d390bf4",
"versionType": "git"
},
{
"lessThan": "fd25996f57a95d56bc568c89b4921edcf334b7d8",
"status": "affected",
"version": "f4530fa574df4d833506c53697ed1daa0d390bf4",
"versionType": "git"
},
{
"lessThan": "828fad4fd418bcdb9f5d66fec0d184c52a85ec31",
"status": "affected",
"version": "f4530fa574df4d833506c53697ed1daa0d390bf4",
"versionType": "git"
},
{
"lessThan": "a668fa160247d7bbe921548cb845f607b8b9305f",
"status": "affected",
"version": "f4530fa574df4d833506c53697ed1daa0d390bf4",
"versionType": "git"
},
{
"lessThan": "b72f0db64205d9ce462038ba995d5d31eff32dc1",
"status": "affected",
"version": "f4530fa574df4d833506c53697ed1daa0d390bf4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/ip_fib.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.6"
},
{
"lessThan": "3.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.97",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.40",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv4: fib: Don\u0027t ignore error route in local/main tables.\n\nWhen CONFIG_IP_MULTIPLE_TABLES is enabled but no rule is added,\nfib_lookup() performs route lookup directly on two tables.\n\nSince the first lookup does not properly bail out, the result\nof an error route in the merged local/main table could be\noverwritten by another route in the default table:\n\n # unshare -n\n # ip link set lo up\n # ip route add 192.168.0.0/24 dev lo table 253\n # ip route add unreachable 192.168.0.0/24\n # ip route get 192.168.0.1\n 192.168.0.1 dev lo table default uid 0\n cache \u003clocal\u003e\n\nOnce a random rule is added, the error route is respected:\n\n # ip rule add table 0\n # ip rule del table 0\n # ip route get 192.168.0.1\n RTNETLINK answers: No route to host\n\nLet\u0027s fix the inconsistent behaviour."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 10,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - fib_lookup() is on the IPv4 receive and transmit datapaths (ip_route_input_rcu, ip_route_output_key, forwarding) reached by remote packets on internet-facing routers, gateways, cloud hosts, and container nodes without any local syscall.\nAC:L - Once main/local holds an error route and default has an overlapping prefix (reproduced in the fix commit with basic ip-route commands), any matching packet or socket lookup deterministically hits the bypass; no race or attacker-independent memory layout is required.\nPR:N - Overlapping table layout is a deployment/CAP_NET_ADMIN prerequisite, but exploitation only requires sending traffic or using sockets; the remote attacker needs no credentials or privileges on the victim once the vulnerable routing state exists.\nUI:N - Route resolution runs automatically in the kernel networking stack during normal packet forwarding and connection setup; no victim mount, click, or file open is needed beyond ordinary network use.\nS:C - Bypassing unreachable/prohibit/blackhole routes can defeat network-namespace/pod egress blackholes and segmentation boundaries on multi-tenant hosts and routers, allowing access outside the intended isolated security scope.\nC:H - Ignored error routes let traffic reach destinations deliberately isolated (internal networks, metadata endpoints, sinkholed ranges), exposing data that routing policy was designed to keep inaccessible.\nI:H - Packets that should be dropped or rejected are instead forwarded via the default-table route, enabling injection of traffic into networks marked unreachable, prohibited, or blackhole.\nA:N - The defect is incorrect route selection only; it does not corrupt memory, panic the kernel, deadlock, or inherently exhaust resources, so availability impact is none."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:44:01.658Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a29e95fbc51e8a1b932773fd0e259b2080881443"
},
{
"url": "https://git.kernel.org/stable/c/5ae18d87a45698e8244d0fcba64c658c35a7dd3d"
},
{
"url": "https://git.kernel.org/stable/c/9127589aabdee588278e8d0d0bd3709a760a92c8"
},
{
"url": "https://git.kernel.org/stable/c/49eaf1403201357762d745a35882fb734107d763"
},
{
"url": "https://git.kernel.org/stable/c/fd25996f57a95d56bc568c89b4921edcf334b7d8"
},
{
"url": "https://git.kernel.org/stable/c/828fad4fd418bcdb9f5d66fec0d184c52a85ec31"
},
{
"url": "https://git.kernel.org/stable/c/a668fa160247d7bbe921548cb845f607b8b9305f"
},
{
"url": "https://git.kernel.org/stable/c/b72f0db64205d9ce462038ba995d5d31eff32dc1"
}
],
"title": "ipv4: fib: Don\u0027t ignore error route in local/main tables.",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72421",
"datePublished": "2026-08-15T05:56:40.466Z",
"dateReserved": "2026-08-09T03:40:39.927Z",
"dateUpdated": "2026-08-17T05:44:01.658Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.
Loading…
Loading…