CVE-2026-97598
Full vulnerability record from the local CVENow database.
Description
In the Linux kernel, the following vulnerability has been resolved: ipv4: fib: bound automatic table ID allocation fib_empty_table() probes every table ID from 1 until it finds a free one. IPv4 tables are stored in a 256-bucket hash table, so a dense set of IDs makes each probe walk a growing hash chain while RTNL is held. Automatic table assignment ("ip rule ... table 0") is an IPv4-only legacy path. Bound the automatically allocated ID to 4096 so the RTNL hold stays bounded, without changing lookups of explicitly specified table IDs. This changes user-visible behavior. A table-0 rule previously received the lowest free ID in 1..RT_TABLE_MAX (0xFFFFFFFF). After this patch the search stops at 4096 and the rule add fails with ENOBUFS if that range is fully occupied. Explicit table IDs above 4096 remain usable. The automatic path is unused in practice: it is IPv4-only, not documented by ip-rule, uncovered by kernel selftests, and both NetworkManager and systemd refuse table 0.
View original CVE JSON
{
"id": "CVE-2026-97598",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"published": "2026-09-25T11:17:11.130",
"lastModified": "2026-10-19T10:17:29.457",
"vulnStatus": "Received",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv4: fib: bound automatic table ID allocation\n\nfib_empty_table() probes every table ID from 1 until it finds a\nfree one. IPv4 tables are stored in a 256-bucket hash table, so a\ndense set of IDs makes each probe walk a growing hash chain while\nRTNL is held.\n\nAutomatic table assignment (\"ip rule ... table 0\") is an IPv4-only\nlegacy path. Bound the automatically allocated ID to 4096 so the\nRTNL hold stays bounded, without changing lookups of explicitly\nspecified table IDs.\n\nThis changes user-visible behavior. A table-0 rule previously\nreceived the lowest free ID in 1..RT_TABLE_MAX (0xFFFFFFFF). After\nthis patch the search stops at 4096 and the rule add fails with\nENOBUFS if that range is fully occupied. Explicit table IDs above\n4096 remain usable.\n\nThe automatic path is unused in practice: it is IPv4-only, not\ndocumented by ip-rule, uncovered by kernel selftests, and both\nNetworkManager and systemd refuse table 0."
}
],
"affected": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"affectedData": [
{
"vendor": "Linux",
"product": "Linux",
"defaultStatus": "unaffected",
"programFiles": [
"net/ipv4/fib_rules.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"versions": [
{
"version": "b801f54917b7c6e8540f877ee562cd0725e62ebd",
"lessThan": "999bc00588cb305ab25065e8a8ac31da7465301c",
"versionType": "git",
"status": "affected"
},
{
"version": "b801f54917b7c6e8540f877ee562cd0725e62ebd",
"lessThan": "f1f2da33eaab54b4d5cdea6d70befb2e2fb49cb6",
"versionType": "git",
"status": "affected"
},
{
"version": "b801f54917b7c6e8540f877ee562cd0725e62ebd",
"lessThan": "125890702ef4417cd0ffac2e448c0cd4fbf0ac45",
"versionType": "git",
"status": "affected"
},
{
"version": "b801f54917b7c6e8540f877ee562cd0725e62ebd",
"lessThan": "3080f9e653d8c057d5652db5ced8137f81b3fcbd",
"versionType": "git",
"status": "affected"
},
{
"version": "b801f54917b7c6e8540f877ee562cd0725e62ebd",
"lessThan": "bc8d01d856db106f284b19961af6112e10c3e3b4",
"versionType": "git",
"status": "affected"
},
{
"version": "b801f54917b7c6e8540f877ee562cd0725e62ebd",
"lessThan": "fe9a906d2bff2d2707bafd6353b5e032a42aeb35",
"versionType": "git",
"status": "affected"
},
{
"version": "b801f54917b7c6e8540f877ee562cd0725e62ebd",
"lessThan": "2c29c053a6627dc4f12fcfe6b4860bcd9e5d7503",
"versionType": "git",
"status": "affected"
},
{
"version": "b801f54917b7c6e8540f877ee562cd0725e62ebd",
"lessThan": "efdfb1e27a3328085b79540dfe781d537b576ea1",
"versionType": "git",
"status": "affected"
}
]
},
{
"vendor": "Linux",
"product": "Linux",
"defaultStatus": "affected",
"programFiles": [
"net/ipv4/fib_rules.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"versions": [
{
"version": "2.6.19",
"status": "affected"
},
{
"version": "0",
"lessThan": "2.6.19",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "5.10.271",
"lessThanOrEqual": "5.10.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "5.15.222",
"lessThanOrEqual": "5.15.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "6.1.189",
"lessThanOrEqual": "6.1.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "6.6.158",
"lessThanOrEqual": "6.6.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "6.12.111",
"lessThanOrEqual": "6.12.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "6.18.53",
"lessThanOrEqual": "6.18.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "7.2.7",
"lessThanOrEqual": "7.2.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "7.3",
"lessThanOrEqual": "*",
"versionType": "original_commit_for_fix",
"status": "unaffected"
}
]
}
]
}
],
"metrics": {},
"references": [
{
"url": "https://git.kernel.org/stable/c/125890702ef4417cd0ffac2e448c0cd4fbf0ac45",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/2c29c053a6627dc4f12fcfe6b4860bcd9e5d7503",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/3080f9e653d8c057d5652db5ced8137f81b3fcbd",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/999bc00588cb305ab25065e8a8ac31da7465301c",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/bc8d01d856db106f284b19961af6112e10c3e3b4",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/efdfb1e27a3328085b79540dfe781d537b576ea1",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/f1f2da33eaab54b4d5cdea6d70befb2e2fb49cb6",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/fe9a906d2bff2d2707bafd6353b5e032a42aeb35",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
]
}