{"api_version":"1","generated_at":"2026-10-01T05:52:28+00:00","cve":"CVE-2026-97598","urls":{"html":"https://cve.report/CVE-2026-97598","api":"https://cve.report/api/cve/CVE-2026-97598.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-97598","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-97598"},"summary":{"title":"ipv4: fib: bound automatic table ID allocation","description":"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.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-09-25 11:17:11","updated_at":"2026-09-25 11:17:11"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/efdfb1e27a3328085b79540dfe781d537b576ea1","name":"https://git.kernel.org/stable/c/efdfb1e27a3328085b79540dfe781d537b576ea1","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/fe9a906d2bff2d2707bafd6353b5e032a42aeb35","name":"https://git.kernel.org/stable/c/fe9a906d2bff2d2707bafd6353b5e032a42aeb35","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/bc8d01d856db106f284b19961af6112e10c3e3b4","name":"https://git.kernel.org/stable/c/bc8d01d856db106f284b19961af6112e10c3e3b4","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/2c29c053a6627dc4f12fcfe6b4860bcd9e5d7503","name":"https://git.kernel.org/stable/c/2c29c053a6627dc4f12fcfe6b4860bcd9e5d7503","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-97598","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-97598","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected b801f54917b7c6e8540f877ee562cd0725e62ebd bc8d01d856db106f284b19961af6112e10c3e3b4 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected b801f54917b7c6e8540f877ee562cd0725e62ebd fe9a906d2bff2d2707bafd6353b5e032a42aeb35 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected b801f54917b7c6e8540f877ee562cd0725e62ebd 2c29c053a6627dc4f12fcfe6b4860bcd9e5d7503 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected b801f54917b7c6e8540f877ee562cd0725e62ebd efdfb1e27a3328085b79540dfe781d537b576ea1 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 2.6.19","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 2.6.19 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.111 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.53 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2.7 7.2.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.3-rc3 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"97598","cve":"CVE-2026-97598","epss":"0.002000000","percentile":"0.088250000","score_date":"2026-09-27","updated_at":"2026-09-28 00:02:24"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["net/ipv4/fib_rules.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"bc8d01d856db106f284b19961af6112e10c3e3b4","status":"affected","version":"b801f54917b7c6e8540f877ee562cd0725e62ebd","versionType":"git"},{"lessThan":"fe9a906d2bff2d2707bafd6353b5e032a42aeb35","status":"affected","version":"b801f54917b7c6e8540f877ee562cd0725e62ebd","versionType":"git"},{"lessThan":"2c29c053a6627dc4f12fcfe6b4860bcd9e5d7503","status":"affected","version":"b801f54917b7c6e8540f877ee562cd0725e62ebd","versionType":"git"},{"lessThan":"efdfb1e27a3328085b79540dfe781d537b576ea1","status":"affected","version":"b801f54917b7c6e8540f877ee562cd0725e62ebd","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["net/ipv4/fib_rules.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"2.6.19"},{"lessThan":"2.6.19","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.111","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.53","versionType":"semver"},{"lessThanOrEqual":"7.2.*","status":"unaffected","version":"7.2.7","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.3-rc3","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.111","versionStartIncluding":"2.6.19","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.53","versionStartIncluding":"2.6.19","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2.7","versionStartIncluding":"2.6.19","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.3-rc3","versionStartIncluding":"2.6.19","vulnerable":true}],"negate":false,"operator":"OR"}]}],"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."}],"providerMetadata":{"dateUpdated":"2026-09-25T10:22:12.972Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/bc8d01d856db106f284b19961af6112e10c3e3b4"},{"url":"https://git.kernel.org/stable/c/fe9a906d2bff2d2707bafd6353b5e032a42aeb35"},{"url":"https://git.kernel.org/stable/c/2c29c053a6627dc4f12fcfe6b4860bcd9e5d7503"},{"url":"https://git.kernel.org/stable/c/efdfb1e27a3328085b79540dfe781d537b576ea1"}],"title":"ipv4: fib: bound automatic table ID allocation","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-97598","datePublished":"2026-09-25T10:22:12.972Z","dateReserved":"2026-09-24T16:01:01.157Z","dateUpdated":"2026-09-25T10:22:12.972Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-09-25 11:17:11","lastModifiedDate":"2026-09-25 11:17:11","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"97598","Ordinal":"1","Title":"ipv4: fib: bound automatic table ID allocation","CVE":"CVE-2026-97598","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"97598","Ordinal":"1","NoteData":"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.","Type":"Description","Title":"ipv4: fib: bound automatic table ID allocation"}]}}}