{"id":"CVE-2024-35857","state":"PUBLISHED","title":"icmp: prevent possible NULL dereferences from icmp_build_probe()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nicmp: prevent possible NULL dereferences from icmp_build_probe()\n\nFirst problem is a double call to __in_dev_get_rcu(), because\nthe second one could return NULL.\n\nif (__in_dev_get_rcu(dev) && __in_dev_get_rcu(dev)->ifa_list)\n\nSecond problem is a read from dev->ip6_ptr with no NULL check:\n\nif (!list_empty(&rcu_dereference(dev->ip6_ptr)->addr_list))\n\nUse the correct RCU API to fix these.\n\nv2: add missing include <net/addrconf.h>","publishedAt":"2024-05-17T14:47:32.763Z","updatedAt":"2026-08-05T11:30:21.903Z","severity":{"score":7.5,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d329ea5bd8845f0b196bf41b18b6173340d6e0e4","status":"affected","lessThan":"23b7ee4a8d559bf38eac7ce5bb2f6ebf76f9c401","versionType":"git"},{"version":"d329ea5bd8845f0b196bf41b18b6173340d6e0e4","status":"affected","lessThan":"599c9ad5e1d43f5c12d869f5fd406ba5d8c55270","versionType":"git"},{"version":"d329ea5bd8845f0b196bf41b18b6173340d6e0e4","status":"affected","lessThan":"d68dc711d84fdcf698e5d45308c3ddeede586350","versionType":"git"},{"version":"d329ea5bd8845f0b196bf41b18b6173340d6e0e4","status":"affected","lessThan":"3e2979bf080c40da4f7c93aff8575ab8bc62b767","versionType":"git"},{"version":"d329ea5bd8845f0b196bf41b18b6173340d6e0e4","status":"affected","lessThan":"c58e88d49097bd12dfcfef4f075b43f5d5830941","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv4/icmp.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.13","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.13","versionType":"semver"},{"version":"5.15.158","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.90","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.30","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.8.9","status":"unaffected","lessThanOrEqual":"6.8.*","versionType":"semver"},{"version":"6.9","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv4/icmp.c"]}],"references":["https://git.kernel.org/stable/c/23b7ee4a8d559bf38eac7ce5bb2f6ebf76f9c401","https://git.kernel.org/stable/c/599c9ad5e1d43f5c12d869f5fd406ba5d8c55270","https://git.kernel.org/stable/c/d68dc711d84fdcf698e5d45308c3ddeede586350","https://git.kernel.org/stable/c/3e2979bf080c40da4f7c93aff8575ab8bc62b767","https://git.kernel.org/stable/c/c58e88d49097bd12dfcfef4f075b43f5d5830941"],"weaknesses":["CWE-476"],"ingestedAt":"2026-10-29T20:07:30.303Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/35xxx/CVE-2024-35857.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-35857","state":"PUBLISHED","datePublished":"2024-05-17T14:47:32.763Z","dateUpdated":"2026-08-05T11:30:21.903Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-05-17T13:50:33.106Z"},"containers":{"cna":{"title":"icmp: prevent possible NULL dereferences from icmp_build_probe()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nicmp: prevent possible NULL dereferences from icmp_build_probe()\n\nFirst problem is a double call to __in_dev_get_rcu(), because\nthe second one could return NULL.\n\nif (__in_dev_get_rcu(dev) && __in_dev_get_rcu(dev)->ifa_list)\n\nSecond problem is a read from dev->ip6_ptr with no NULL check:\n\nif (!list_empty(&rcu_dereference(dev->ip6_ptr)->addr_list))\n\nUse the correct RCU API to fix these.\n\nv2: add missing include <net/addrconf.h>"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d329ea5bd8845f0b196bf41b18b6173340d6e0e4","status":"affected","lessThan":"23b7ee4a8d559bf38eac7ce5bb2f6ebf76f9c401","versionType":"git"},{"version":"d329ea5bd8845f0b196bf41b18b6173340d6e0e4","status":"affected","lessThan":"599c9ad5e1d43f5c12d869f5fd406ba5d8c55270","versionType":"git"},{"version":"d329ea5bd8845f0b196bf41b18b6173340d6e0e4","status":"affected","lessThan":"d68dc711d84fdcf698e5d45308c3ddeede586350","versionType":"git"},{"version":"d329ea5bd8845f0b196bf41b18b6173340d6e0e4","status":"affected","lessThan":"3e2979bf080c40da4f7c93aff8575ab8bc62b767","versionType":"git"},{"version":"d329ea5bd8845f0b196bf41b18b6173340d6e0e4","status":"affected","lessThan":"c58e88d49097bd12dfcfef4f075b43f5d5830941","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv4/icmp.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.13","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.13","versionType":"semver"},{"version":"5.15.158","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.90","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.30","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.8.9","status":"unaffected","lessThanOrEqual":"6.8.*","versionType":"semver"},{"version":"6.9","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv4/icmp.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/23b7ee4a8d559bf38eac7ce5bb2f6ebf76f9c401"},{"url":"https://git.kernel.org/stable/c/599c9ad5e1d43f5c12d869f5fd406ba5d8c55270"},{"url":"https://git.kernel.org/stable/c/d68dc711d84fdcf698e5d45308c3ddeede586350"},{"url":"https://git.kernel.org/stable/c/3e2979bf080c40da4f7c93aff8575ab8bc62b767"},{"url":"https://git.kernel.org/stable/c/c58e88d49097bd12dfcfef4f075b43f5d5830941"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","baseScore":7.5,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:N - The faulting code is reached directly from `icmp_rcv()`/`icmpv6_rcv()` on receipt of an RFC 8335 ICMP_EXT_ECHO (type 42) or ICMPV6_EXT_ECHO_REQUEST packet, so any remote host that can route a unicast IP packet to the target triggers it.\nAC:L - A single crafted ICMP packet is sufficient and the attacker fully chooses the target netdevice via the Interface Identification Object (by name, ifindex, or address); on CONFIG_IPV6=n, ipv6-disabled, or low-MTU-interface systems `dev->ip6_ptr` is unconditionally NULL, making the crash 100% deterministic with no race to win and no memory layout to groom.\nPR:N - The PROBE handler runs in softirq packet-receive context with no socket, no authentication, and no capability or credential check anywhere on the path from `ip_local_deliver()` to `icmp_build_probe()`.\nUI:N - The kernel processes the incoming ICMP Extended Echo Request autonomously in the receive path; no local user or administrator action is needed at attack time.\nS:U - The fault occurs in the kernel's own networking receive path and its impact is confined to the same kernel security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:N - The bug is a read-only dereference at a fixed small offset from NULL that oopses before any value is used; at most a single status bit could be reflected, yielding no kernel memory contents or address disclosure.\nI:N - There is no write primitive — only NULL-pointer loads (`list_empty(&NULL->addr_list)` and `NULL->ifa_list`) — so no kernel memory or control flow can be modified.\nA:H - The NULL dereference oopses in NET_RX softirq context, killing the softirq and panicking the box on `panic_on_oops` systems; an unauthenticated remote attacker can repeat it at will for a persistent remote denial of service."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T11:30:21.903Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13","versionEndExcluding":"5.15.158"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13","versionEndExcluding":"6.1.90"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13","versionEndExcluding":"6.6.30"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13","versionEndExcluding":"6.8.9"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13","versionEndExcluding":"6.9"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":5.3,"attackVector":"NETWORK","baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","integrityImpact":"NONE","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"LOW","privilegesRequired":"NONE","confidentialityImpact":"NONE"}},{"other":{"type":"ssvc","content":{"timestamp":"2024-05-17T16:57:35.906301Z","id":"CVE-2024-35857","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-476","type":"CWE","lang":"en","description":"CWE-476 NULL Pointer Dereference"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-11-07T21:12:11.212Z"}},{"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/23b7ee4a8d559bf38eac7ce5bb2f6ebf76f9c401","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/599c9ad5e1d43f5c12d869f5fd406ba5d8c55270","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/d68dc711d84fdcf698e5d45308c3ddeede586350","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/3e2979bf080c40da4f7c93aff8575ab8bc62b767","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/c58e88d49097bd12dfcfef4f075b43f5d5830941","tags":["x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-02T03:21:47.567Z"}}]}}}