{"id":"CVE-2026-74657","state":"PUBLISHED","title":"ipv4: Fix fib_nlmsg_size() for RTA_VIA nexthops","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nipv4: Fix fib_nlmsg_size() for RTA_VIA nexthops\n\nfib_nlmsg_size() still estimates nexthop space as if every gateway is\nencoded as an IPv4 RTA_GATEWAY attribute. IPv4 routes can also carry an\nIPv6 gateway, which fib_nexthop_info() dumps as RTA_VIA.\n\nAs a result, route notifications can allocate an skb that is too small.\nfib_dump_info() then fails with -EMSGSIZE and rtmsg_fib() hits the\nWARN_ON() that marks such failures as a fib_nlmsg_size() bug. With\npanic_on_warn set, this becomes a kernel panic.\n\nMirror the actual nexthop dump layout in fib_nlmsg_size(): account for\nIPv6 nexthop gateways dumped as RTA_VIA, for the no-header rtnexthop\nlayout used inside RTA_MULTIPATH, and for RTA_FLOW only when it is\nactually present.","publishedAt":"2026-08-22T15:32:31.458Z","updatedAt":"2026-08-27T12:39:57.259Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d15662682db232da77136cd348f4c9df312ca6f9","status":"affected","lessThan":"57195f0ab5cfbb5ee0864e5aff15ceb48f5a5e28","versionType":"git"},{"version":"d15662682db232da77136cd348f4c9df312ca6f9","status":"affected","lessThan":"0f0ca602941d0a81ae9514943ca06c55159c6385","versionType":"git"},{"version":"d15662682db232da77136cd348f4c9df312ca6f9","status":"affected","lessThan":"5307a53599fa762c06e475ee4a375252074fd324","versionType":"git"},{"version":"d15662682db232da77136cd348f4c9df312ca6f9","status":"affected","lessThan":"7f80ad373ce4a7af5367ff273cea0f16e91387f3","versionType":"git"},{"version":"d15662682db232da77136cd348f4c9df312ca6f9","status":"affected","lessThan":"4a5dfbae5179f6574695012a980476254df2d295","versionType":"git"},{"version":"d15662682db232da77136cd348f4c9df312ca6f9","status":"affected","lessThan":"a59edda6eda1252340354322d8ab318b2e9052fb","versionType":"git"},{"version":"d15662682db232da77136cd348f4c9df312ca6f9","status":"affected","lessThan":"9b22f13524fa0de0d963bbd3002df6c28bae3395","versionType":"git"},{"version":"d15662682db232da77136cd348f4c9df312ca6f9","status":"affected","lessThan":"4ff9548d84945d2cbf9e4c207288063a200ea397","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv4/fib_semantics.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.2","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.2","versionType":"semver"},{"version":"5.10.267","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.216","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.183","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.152","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.104","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.45","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.9","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv4/fib_semantics.c"]}],"references":["https://git.kernel.org/stable/c/57195f0ab5cfbb5ee0864e5aff15ceb48f5a5e28","https://git.kernel.org/stable/c/0f0ca602941d0a81ae9514943ca06c55159c6385","https://git.kernel.org/stable/c/5307a53599fa762c06e475ee4a375252074fd324","https://git.kernel.org/stable/c/7f80ad373ce4a7af5367ff273cea0f16e91387f3","https://git.kernel.org/stable/c/4a5dfbae5179f6574695012a980476254df2d295","https://git.kernel.org/stable/c/a59edda6eda1252340354322d8ab318b2e9052fb","https://git.kernel.org/stable/c/9b22f13524fa0de0d963bbd3002df6c28bae3395","https://git.kernel.org/stable/c/4ff9548d84945d2cbf9e4c207288063a200ea397"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/74xxx/CVE-2026-74657.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-74657","state":"PUBLISHED","datePublished":"2026-08-22T15:32:31.458Z","dateUpdated":"2026-08-27T12:39:57.259Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-15T05:44:03.923Z"},"containers":{"cna":{"title":"ipv4: Fix fib_nlmsg_size() for RTA_VIA nexthops","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nipv4: Fix fib_nlmsg_size() for RTA_VIA nexthops\n\nfib_nlmsg_size() still estimates nexthop space as if every gateway is\nencoded as an IPv4 RTA_GATEWAY attribute. IPv4 routes can also carry an\nIPv6 gateway, which fib_nexthop_info() dumps as RTA_VIA.\n\nAs a result, route notifications can allocate an skb that is too small.\nfib_dump_info() then fails with -EMSGSIZE and rtmsg_fib() hits the\nWARN_ON() that marks such failures as a fib_nlmsg_size() bug. With\npanic_on_warn set, this becomes a kernel panic.\n\nMirror the actual nexthop dump layout in fib_nlmsg_size(): account for\nIPv6 nexthop gateways dumped as RTA_VIA, for the no-header rtnexthop\nlayout used inside RTA_MULTIPATH, and for RTA_FLOW only when it is\nactually present."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d15662682db232da77136cd348f4c9df312ca6f9","status":"affected","lessThan":"57195f0ab5cfbb5ee0864e5aff15ceb48f5a5e28","versionType":"git"},{"version":"d15662682db232da77136cd348f4c9df312ca6f9","status":"affected","lessThan":"0f0ca602941d0a81ae9514943ca06c55159c6385","versionType":"git"},{"version":"d15662682db232da77136cd348f4c9df312ca6f9","status":"affected","lessThan":"5307a53599fa762c06e475ee4a375252074fd324","versionType":"git"},{"version":"d15662682db232da77136cd348f4c9df312ca6f9","status":"affected","lessThan":"7f80ad373ce4a7af5367ff273cea0f16e91387f3","versionType":"git"},{"version":"d15662682db232da77136cd348f4c9df312ca6f9","status":"affected","lessThan":"4a5dfbae5179f6574695012a980476254df2d295","versionType":"git"},{"version":"d15662682db232da77136cd348f4c9df312ca6f9","status":"affected","lessThan":"a59edda6eda1252340354322d8ab318b2e9052fb","versionType":"git"},{"version":"d15662682db232da77136cd348f4c9df312ca6f9","status":"affected","lessThan":"9b22f13524fa0de0d963bbd3002df6c28bae3395","versionType":"git"},{"version":"d15662682db232da77136cd348f4c9df312ca6f9","status":"affected","lessThan":"4ff9548d84945d2cbf9e4c207288063a200ea397","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv4/fib_semantics.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.2","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.2","versionType":"semver"},{"version":"5.10.267","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.216","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.183","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.152","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.104","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.45","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.9","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv4/fib_semantics.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/57195f0ab5cfbb5ee0864e5aff15ceb48f5a5e28"},{"url":"https://git.kernel.org/stable/c/0f0ca602941d0a81ae9514943ca06c55159c6385"},{"url":"https://git.kernel.org/stable/c/5307a53599fa762c06e475ee4a375252074fd324"},{"url":"https://git.kernel.org/stable/c/7f80ad373ce4a7af5367ff273cea0f16e91387f3"},{"url":"https://git.kernel.org/stable/c/4a5dfbae5179f6574695012a980476254df2d295"},{"url":"https://git.kernel.org/stable/c/a59edda6eda1252340354322d8ab318b2e9052fb"},{"url":"https://git.kernel.org/stable/c/9b22f13524fa0de0d963bbd3002df6c28bae3395"},{"url":"https://git.kernel.org/stable/c/4ff9548d84945d2cbf9e4c207288063a200ea397"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-27T12:39:57.259Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.2","versionEndExcluding":"5.10.267"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.2","versionEndExcluding":"5.15.216"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.2","versionEndExcluding":"6.1.183"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.2","versionEndExcluding":"6.6.152"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.2","versionEndExcluding":"6.12.104"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.2","versionEndExcluding":"6.18.45"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.2","versionEndExcluding":"7.1.9"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.2","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}