{"id":"CVE-2025-68813","state":"PUBLISHED","title":"ipvs: fix ipv4 null-ptr-deref in route error path","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nipvs: fix ipv4 null-ptr-deref in route error path\n\nThe IPv4 code path in __ip_vs_get_out_rt() calls dst_link_failure()\nwithout ensuring skb->dev is set, leading to a NULL pointer dereference\nin fib_compute_spec_dst() when ipv4_link_failure() attempts to send\nICMP destination unreachable messages.\n\nThe issue emerged after commit ed0de45a1008 (\"ipv4: recompile ip options\nin ipv4_link_failure\") started calling __ip_options_compile() from\nipv4_link_failure(). This code path eventually calls fib_compute_spec_dst()\nwhich dereferences skb->dev. An attempt was made to fix the NULL skb->dev\ndereference in commit 0113d9c9d1cc (\"ipv4: fix null-deref in\nipv4_link_failure\"), but it only addressed the immediate dev_net(skb->dev)\ndereference by using a fallback device. The fix was incomplete because\nfib_compute_spec_dst() later in the call chain still accesses skb->dev\ndirectly, which remains NULL when IPVS calls dst_link_failure().\n\nThe crash occurs when:\n1. IPVS processes a packet in NAT mode with a misconfigured destination\n2. Route lookup fails in __ip_vs_get_out_rt() before establishing a route\n3. The error path calls dst_link_failure(skb) with skb->dev == NULL\n4. ipv4_link_failure() → ipv4_send_dest_unreach() →\n   __ip_options_compile() → fib_compute_spec_dst()\n5. fib_compute_spec_dst() dereferences NULL skb->dev\n\nApply the same fix used for IPv6 in commit 326bf17ea5d4 (\"ipvs: fix\nipv6 route unreach panic\"): set skb->dev from skb_dst(skb)->dev before\ncalling dst_link_failure().\n\nKASAN: null-ptr-deref in range [0x0000000000000328-0x000000000000032f]\nCPU: 1 PID: 12732 Comm: syz.1.3469 Not tainted 6.6.114 #2\nRIP: 0010:__in_dev_get_rcu include/linux/inetdevice.h:233\nRIP: 0010:fib_compute_spec_dst+0x17a/0x9f0 net/ipv4/fib_frontend.c:285\nCall Trace:\n  <TASK>\n  spec_dst_fill net/ipv4/ip_options.c:232\n  spec_dst_fill net/ipv4/ip_options.c:229\n  __ip_options_compile+0x13a1/0x17d0 net/ipv4/ip_options.c:330\n  ipv4_send_dest_unreach net/ipv4/route.c:1252\n  ipv4_link_failure+0x702/0xb80 net/ipv4/route.c:1265\n  dst_link_failure include/net/dst.h:437\n  __ip_vs_get_out_rt+0x15fd/0x19e0 net/netfilter/ipvs/ip_vs_xmit.c:412\n  ip_vs_nat_xmit+0x1d8/0xc80 net/netfilter/ipvs/ip_vs_xmit.c:764","publishedAt":"2026-01-13T15:29:18.483Z","updatedAt":"2026-10-19T18:05:08.415Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"ed0de45a1008991fdaa27a0152befcb74d126a8b","status":"affected","lessThan":"dd72a93c80408f06327dd2d956eb1a656d0b5903","versionType":"git"},{"version":"ed0de45a1008991fdaa27a0152befcb74d126a8b","status":"affected","lessThan":"312d7cd88882fc6cadcc08b02287497aaaf94bcd","versionType":"git"},{"version":"ed0de45a1008991fdaa27a0152befcb74d126a8b","status":"affected","lessThan":"cdeff10851c37a002d87a035818ebd60fdb74447","versionType":"git"},{"version":"ed0de45a1008991fdaa27a0152befcb74d126a8b","status":"affected","lessThan":"4729ff0581fbb7ad098b6153b76b6f5aac94618a","versionType":"git"},{"version":"ed0de45a1008991fdaa27a0152befcb74d126a8b","status":"affected","lessThan":"25ab24df31f7af843c96a38e0781b9165216e1a8","versionType":"git"},{"version":"ed0de45a1008991fdaa27a0152befcb74d126a8b","status":"affected","lessThan":"689a627d14788ad772e0fa24c2e57a23dbc7ce90","versionType":"git"},{"version":"ed0de45a1008991fdaa27a0152befcb74d126a8b","status":"affected","lessThan":"ad891bb3d079a46a821bf2b8867854645191bab0","versionType":"git"},{"version":"6c2fa855d8178699706b1192db2f1f8102b0ba1e","status":"affected","versionType":"git"},{"version":"fbf569d2beee2a4a7a0bc8b619c26101d1211a88","status":"affected","versionType":"git"},{"version":"ff71f99d5fb2daf54340e8b290d0bc4e6b4c1d38","status":"affected","versionType":"git"},{"version":"3d988fcddbe7b8673a231958bd2fba61b5a7ced9","status":"affected","versionType":"git"},{"version":"8a430e56a6485267a1b2d3747209d26c54d1a34b","status":"affected","versionType":"git"},{"version":"6bd1ee0a993fc9574ae43c1994c54a60cb23a380","status":"affected","versionType":"git"},{"version":"3.18.139","status":"affected","lessThan":"3.19","versionType":"semver"},{"version":"4.4.179","status":"affected","lessThan":"4.5","versionType":"semver"},{"version":"4.9.171","status":"affected","lessThan":"4.10","versionType":"semver"},{"version":"4.14.114","status":"affected","lessThan":"4.15","versionType":"semver"},{"version":"4.19.37","status":"affected","lessThan":"4.20","versionType":"semver"},{"version":"5.0.10","status":"affected","lessThan":"5.1","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netfilter/ipvs/ip_vs_xmit.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.1","versionType":"semver"},{"version":"5.10.248","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.198","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.160","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.120","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.64","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.3","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netfilter/ipvs/ip_vs_xmit.c"]}],"references":["https://git.kernel.org/stable/c/dd72a93c80408f06327dd2d956eb1a656d0b5903","https://git.kernel.org/stable/c/312d7cd88882fc6cadcc08b02287497aaaf94bcd","https://git.kernel.org/stable/c/cdeff10851c37a002d87a035818ebd60fdb74447","https://git.kernel.org/stable/c/4729ff0581fbb7ad098b6153b76b6f5aac94618a","https://git.kernel.org/stable/c/25ab24df31f7af843c96a38e0781b9165216e1a8","https://git.kernel.org/stable/c/689a627d14788ad772e0fa24c2e57a23dbc7ce90","https://git.kernel.org/stable/c/ad891bb3d079a46a821bf2b8867854645191bab0"],"weaknesses":["CWE-476"],"ingestedAt":"2026-10-29T20:09:56.034Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/68xxx/CVE-2025-68813.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-68813","state":"PUBLISHED","datePublished":"2026-01-13T15:29:18.483Z","dateUpdated":"2026-10-19T18:05:08.415Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-12-24T10:30:51.047Z"},"containers":{"cna":{"title":"ipvs: fix ipv4 null-ptr-deref in route error path","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nipvs: fix ipv4 null-ptr-deref in route error path\n\nThe IPv4 code path in __ip_vs_get_out_rt() calls dst_link_failure()\nwithout ensuring skb->dev is set, leading to a NULL pointer dereference\nin fib_compute_spec_dst() when ipv4_link_failure() attempts to send\nICMP destination unreachable messages.\n\nThe issue emerged after commit ed0de45a1008 (\"ipv4: recompile ip options\nin ipv4_link_failure\") started calling __ip_options_compile() from\nipv4_link_failure(). This code path eventually calls fib_compute_spec_dst()\nwhich dereferences skb->dev. An attempt was made to fix the NULL skb->dev\ndereference in commit 0113d9c9d1cc (\"ipv4: fix null-deref in\nipv4_link_failure\"), but it only addressed the immediate dev_net(skb->dev)\ndereference by using a fallback device. The fix was incomplete because\nfib_compute_spec_dst() later in the call chain still accesses skb->dev\ndirectly, which remains NULL when IPVS calls dst_link_failure().\n\nThe crash occurs when:\n1. IPVS processes a packet in NAT mode with a misconfigured destination\n2. Route lookup fails in __ip_vs_get_out_rt() before establishing a route\n3. The error path calls dst_link_failure(skb) with skb->dev == NULL\n4. ipv4_link_failure() → ipv4_send_dest_unreach() →\n   __ip_options_compile() → fib_compute_spec_dst()\n5. fib_compute_spec_dst() dereferences NULL skb->dev\n\nApply the same fix used for IPv6 in commit 326bf17ea5d4 (\"ipvs: fix\nipv6 route unreach panic\"): set skb->dev from skb_dst(skb)->dev before\ncalling dst_link_failure().\n\nKASAN: null-ptr-deref in range [0x0000000000000328-0x000000000000032f]\nCPU: 1 PID: 12732 Comm: syz.1.3469 Not tainted 6.6.114 #2\nRIP: 0010:__in_dev_get_rcu include/linux/inetdevice.h:233\nRIP: 0010:fib_compute_spec_dst+0x17a/0x9f0 net/ipv4/fib_frontend.c:285\nCall Trace:\n  <TASK>\n  spec_dst_fill net/ipv4/ip_options.c:232\n  spec_dst_fill net/ipv4/ip_options.c:229\n  __ip_options_compile+0x13a1/0x17d0 net/ipv4/ip_options.c:330\n  ipv4_send_dest_unreach net/ipv4/route.c:1252\n  ipv4_link_failure+0x702/0xb80 net/ipv4/route.c:1265\n  dst_link_failure include/net/dst.h:437\n  __ip_vs_get_out_rt+0x15fd/0x19e0 net/netfilter/ipvs/ip_vs_xmit.c:412\n  ip_vs_nat_xmit+0x1d8/0xc80 net/netfilter/ipvs/ip_vs_xmit.c:764"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"ed0de45a1008991fdaa27a0152befcb74d126a8b","status":"affected","lessThan":"dd72a93c80408f06327dd2d956eb1a656d0b5903","versionType":"git"},{"version":"ed0de45a1008991fdaa27a0152befcb74d126a8b","status":"affected","lessThan":"312d7cd88882fc6cadcc08b02287497aaaf94bcd","versionType":"git"},{"version":"ed0de45a1008991fdaa27a0152befcb74d126a8b","status":"affected","lessThan":"cdeff10851c37a002d87a035818ebd60fdb74447","versionType":"git"},{"version":"ed0de45a1008991fdaa27a0152befcb74d126a8b","status":"affected","lessThan":"4729ff0581fbb7ad098b6153b76b6f5aac94618a","versionType":"git"},{"version":"ed0de45a1008991fdaa27a0152befcb74d126a8b","status":"affected","lessThan":"25ab24df31f7af843c96a38e0781b9165216e1a8","versionType":"git"},{"version":"ed0de45a1008991fdaa27a0152befcb74d126a8b","status":"affected","lessThan":"689a627d14788ad772e0fa24c2e57a23dbc7ce90","versionType":"git"},{"version":"ed0de45a1008991fdaa27a0152befcb74d126a8b","status":"affected","lessThan":"ad891bb3d079a46a821bf2b8867854645191bab0","versionType":"git"},{"version":"6c2fa855d8178699706b1192db2f1f8102b0ba1e","status":"affected","versionType":"git"},{"version":"fbf569d2beee2a4a7a0bc8b619c26101d1211a88","status":"affected","versionType":"git"},{"version":"ff71f99d5fb2daf54340e8b290d0bc4e6b4c1d38","status":"affected","versionType":"git"},{"version":"3d988fcddbe7b8673a231958bd2fba61b5a7ced9","status":"affected","versionType":"git"},{"version":"8a430e56a6485267a1b2d3747209d26c54d1a34b","status":"affected","versionType":"git"},{"version":"6bd1ee0a993fc9574ae43c1994c54a60cb23a380","status":"affected","versionType":"git"},{"version":"3.18.139","status":"affected","lessThan":"3.19","versionType":"semver"},{"version":"4.4.179","status":"affected","lessThan":"4.5","versionType":"semver"},{"version":"4.9.171","status":"affected","lessThan":"4.10","versionType":"semver"},{"version":"4.14.114","status":"affected","lessThan":"4.15","versionType":"semver"},{"version":"4.19.37","status":"affected","lessThan":"4.20","versionType":"semver"},{"version":"5.0.10","status":"affected","lessThan":"5.1","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netfilter/ipvs/ip_vs_xmit.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.1","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.1","versionType":"semver"},{"version":"5.10.248","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.198","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.160","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.120","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.64","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.3","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/netfilter/ipvs/ip_vs_xmit.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/dd72a93c80408f06327dd2d956eb1a656d0b5903"},{"url":"https://git.kernel.org/stable/c/312d7cd88882fc6cadcc08b02287497aaaf94bcd"},{"url":"https://git.kernel.org/stable/c/cdeff10851c37a002d87a035818ebd60fdb74447"},{"url":"https://git.kernel.org/stable/c/4729ff0581fbb7ad098b6153b76b6f5aac94618a"},{"url":"https://git.kernel.org/stable/c/25ab24df31f7af843c96a38e0781b9165216e1a8"},{"url":"https://git.kernel.org/stable/c/689a627d14788ad772e0fa24c2e57a23dbc7ce90"},{"url":"https://git.kernel.org/stable/c/ad891bb3d079a46a821bf2b8867854645191bab0"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-23T16:02:55.189Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"5.10.248"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"5.15.198"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"6.1.160"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"6.6.120"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"6.12.64"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"6.18.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.1","versionEndExcluding":"6.19"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.18.139"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.4.179"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9.171"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14.114"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.19.37"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0.10"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2025-68813","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2026-06-16T19:15:40.029608Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-476","lang":"en","type":"CWE","description":"CWE-476 NULL Pointer Dereference"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T18:05:08.415Z"}}]}}}