{"dataType":"CVE_RECORD","cveMetadata":{"cveId":"CVE-2024-35888","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2024-05-17T13:50:33.113Z","datePublished":"2024-05-19T08:34:44.428Z","dateUpdated":"2026-08-05T11:30:42.343Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T11:30:42.343Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nerspan: make sure erspan_base_hdr is present in skb->head\n\nsyzbot reported a problem in ip6erspan_rcv() [1]\n\nIssue is that ip6erspan_rcv() (and erspan_rcv()) no longer make\nsure erspan_base_hdr is present in skb linear part (skb->head)\nbefore getting @ver field from it.\n\nAdd the missing pskb_may_pull() calls.\n\nv2: Reload iph pointer in erspan_rcv() after pskb_may_pull()\n    because skb->head might have changed.\n\n[1]\n\n BUG: KMSAN: uninit-value in pskb_may_pull_reason include/linux/skbuff.h:2742 [inline]\n BUG: KMSAN: uninit-value in pskb_may_pull include/linux/skbuff.h:2756 [inline]\n BUG: KMSAN: uninit-value in ip6erspan_rcv net/ipv6/ip6_gre.c:541 [inline]\n BUG: KMSAN: uninit-value in gre_rcv+0x11f8/0x1930 net/ipv6/ip6_gre.c:610\n  pskb_may_pull_reason include/linux/skbuff.h:2742 [inline]\n  pskb_may_pull include/linux/skbuff.h:2756 [inline]\n  ip6erspan_rcv net/ipv6/ip6_gre.c:541 [inline]\n  gre_rcv+0x11f8/0x1930 net/ipv6/ip6_gre.c:610\n  ip6_protocol_deliver_rcu+0x1d4c/0x2ca0 net/ipv6/ip6_input.c:438\n  ip6_input_finish net/ipv6/ip6_input.c:483 [inline]\n  NF_HOOK include/linux/netfilter.h:314 [inline]\n  ip6_input+0x15d/0x430 net/ipv6/ip6_input.c:492\n  ip6_mc_input+0xa7e/0xc80 net/ipv6/ip6_input.c:586\n  dst_input include/net/dst.h:460 [inline]\n  ip6_rcv_finish+0x955/0x970 net/ipv6/ip6_input.c:79\n  NF_HOOK include/linux/netfilter.h:314 [inline]\n  ipv6_rcv+0xde/0x390 net/ipv6/ip6_input.c:310\n  __netif_receive_skb_one_core net/core/dev.c:5538 [inline]\n  __netif_receive_skb+0x1da/0xa00 net/core/dev.c:5652\n  netif_receive_skb_internal net/core/dev.c:5738 [inline]\n  netif_receive_skb+0x58/0x660 net/core/dev.c:5798\n  tun_rx_batched+0x3ee/0x980 drivers/net/tun.c:1549\n  tun_get_user+0x5566/0x69e0 drivers/net/tun.c:2002\n  tun_chr_write_iter+0x3af/0x5d0 drivers/net/tun.c:2048\n  call_write_iter include/linux/fs.h:2108 [inline]\n  new_sync_write fs/read_write.c:497 [inline]\n  vfs_write+0xb63/0x1520 fs/read_write.c:590\n  ksys_write+0x20f/0x4c0 fs/read_write.c:643\n  __do_sys_write fs/read_write.c:655 [inline]\n  __se_sys_write fs/read_write.c:652 [inline]\n  __x64_sys_write+0x93/0xe0 fs/read_write.c:652\n do_syscall_64+0xd5/0x1f0\n entry_SYSCALL_64_after_hwframe+0x6d/0x75\n\nUninit was created at:\n  slab_post_alloc_hook mm/slub.c:3804 [inline]\n  slab_alloc_node mm/slub.c:3845 [inline]\n  kmem_cache_alloc_node+0x613/0xc50 mm/slub.c:3888\n  kmalloc_reserve+0x13d/0x4a0 net/core/skbuff.c:577\n  __alloc_skb+0x35b/0x7a0 net/core/skbuff.c:668\n  alloc_skb include/linux/skbuff.h:1318 [inline]\n  alloc_skb_with_frags+0xc8/0xbf0 net/core/skbuff.c:6504\n  sock_alloc_send_pskb+0xa81/0xbf0 net/core/sock.c:2795\n  tun_alloc_skb drivers/net/tun.c:1525 [inline]\n  tun_get_user+0x209a/0x69e0 drivers/net/tun.c:1846\n  tun_chr_write_iter+0x3af/0x5d0 drivers/net/tun.c:2048\n  call_write_iter include/linux/fs.h:2108 [inline]\n  new_sync_write fs/read_write.c:497 [inline]\n  vfs_write+0xb63/0x1520 fs/read_write.c:590\n  ksys_write+0x20f/0x4c0 fs/read_write.c:643\n  __do_sys_write fs/read_write.c:655 [inline]\n  __se_sys_write fs/read_write.c:652 [inline]\n  __x64_sys_write+0x93/0xe0 fs/read_write.c:652\n do_syscall_64+0xd5/0x1f0\n entry_SYSCALL_64_after_hwframe+0x6d/0x75\n\nCPU: 1 PID: 5045 Comm: syz-executor114 Not tainted 6.9.0-rc1-syzkaller-00021-g962490525cff #0"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","baseScore":7.3,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:N - The vulnerable read is in the IPv6 GRE receive path (`gre_rcv` → `ip6erspan_rcv`), reached by any IPv6 packet with next-header 47, a flagless 4-byte GRE header, and protocol 0x88BE delivered to the host. The packet can be unicast to the target's address from anywhere on the internet, so no adjacency or local access is needed.\nAC:L - The attacker fully controls the packet and simply omits the payload after the GRE header, deterministically driving `skb_headlen()` to zero before `ver = ershdr->ver` executes. The read occurs before `ip6gre_tunnel_lookup()`, so no matching tunnel, key, or address pairing needs to be guessed.\nPR:N - No authentication, credentials, or local account exist on this path — the bug fires in `ip6_protocol_deliver_rcu()` during plain packet reception, before any tunnel lookup or policy check.\nUI:N - The vulnerability triggers purely on packet arrival; no administrator or user on the target needs to open, mount, or configure anything beyond the ip6_gre module already being loaded.\nS:U - The stray read, the resulting misparse, and the metadata exposure are all confined to the kernel networking stack's own security authority. No VM, IOMMU, or sandbox boundary is crossed.\nC:L - The out-of-bounds read is strictly bounded to one byte (four bits of `ver`) of uninitialized slab memory, which the rubric classes as a small bounded read. Those bits are observable — stored as `md->version` in the tunnel metadata that `bpf_skb_get_tunnel_opt()` and OVS export to userspace — but no arbitrary or large-scale memory disclosure is achievable.\nI:L - Uninitialized kernel memory propagates into the `ip_tunnel_info` ERSPAN options and determines how many bytes `__iptunnel_pull_header()` strips, so attacker-uncontrolled garbage modifies kernel-held tunnel state and the framing of the decapsulated inner packet. This is limited modification only — there is no out-of-bounds write, and every downstream `memcpy()` remains inside a `pskb_may_pull()`-validated region.\nA:L - Because `skb->data <= skb->tail <= skb->end`, the stray byte is always inside the skb's own slab allocation, so the bug cannot fault or panic. It does degrade the service: a garbage `ver` makes `erspan_hdr_len()` strip 0, 8, or 12 bytes at random, so genuine ERSPAN type-I mirrored traffic is nondeterministically dropped or mangled on every receive."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv4/ip_gre.c","net/ipv6/ip6_gre.c"],"versions":[{"version":"0a198e0bb8bef51ced179702ad1af6f9e3715b64","lessThan":"06a939f72a24a7d8251f84cf4c042df86c6666ac","status":"affected","versionType":"git"},{"version":"cb73ee40b1b381eaf3749e6dbeed567bb38e5258","lessThan":"e54a0c79cdc2548729dd7e2e468b08c5af4d0df5","status":"affected","versionType":"git"},{"version":"cb73ee40b1b381eaf3749e6dbeed567bb38e5258","lessThan":"b14b9f9503ec823ca75be766dcaeff4f0bfeca85","status":"affected","versionType":"git"},{"version":"cb73ee40b1b381eaf3749e6dbeed567bb38e5258","lessThan":"ee0088101beee10fa809716d6245d915b09c37c7","status":"affected","versionType":"git"},{"version":"cb73ee40b1b381eaf3749e6dbeed567bb38e5258","lessThan":"1db7fcb2b290c47c202b79528824f119fa28937d","status":"affected","versionType":"git"},{"version":"cb73ee40b1b381eaf3749e6dbeed567bb38e5258","lessThan":"4e3fdeecec5707678b0d1f18c259dadb97262e9d","status":"affected","versionType":"git"},{"version":"cb73ee40b1b381eaf3749e6dbeed567bb38e5258","lessThan":"0ac328a5a4138a6c03dfc3f46017bd5c19167446","status":"affected","versionType":"git"},{"version":"cb73ee40b1b381eaf3749e6dbeed567bb38e5258","lessThan":"17af420545a750f763025149fa7b833a4fc8b8f0","status":"affected","versionType":"git"},{"version":"5195acd38ae48b7b5c186f522cd4351441297859","status":"affected","versionType":"git"},{"version":"4.19.20","lessThan":"4.19.312","status":"affected","versionType":"semver"},{"version":"4.20.7","lessThan":"4.21","status":"affected","versionType":"semver"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv4/ip_gre.c","net/ipv6/ip6_gre.c"],"versions":[{"version":"5.0","status":"affected"},{"version":"0","lessThan":"5.0","status":"unaffected","versionType":"semver"},{"version":"4.19.312","lessThanOrEqual":"4.19.*","status":"unaffected","versionType":"semver"},{"version":"5.4.274","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.215","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.154","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.85","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.26","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.8.5","lessThanOrEqual":"6.8.*","status":"unaffected","versionType":"semver"},{"version":"6.9","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.19.20","versionEndExcluding":"4.19.312"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"5.4.274"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"5.10.215"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"5.15.154"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"6.1.85"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"6.6.26"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"6.8.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.0","versionEndExcluding":"6.9"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.20.7"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/06a939f72a24a7d8251f84cf4c042df86c6666ac"},{"url":"https://git.kernel.org/stable/c/e54a0c79cdc2548729dd7e2e468b08c5af4d0df5"},{"url":"https://git.kernel.org/stable/c/b14b9f9503ec823ca75be766dcaeff4f0bfeca85"},{"url":"https://git.kernel.org/stable/c/ee0088101beee10fa809716d6245d915b09c37c7"},{"url":"https://git.kernel.org/stable/c/1db7fcb2b290c47c202b79528824f119fa28937d"},{"url":"https://git.kernel.org/stable/c/4e3fdeecec5707678b0d1f18c259dadb97262e9d"},{"url":"https://git.kernel.org/stable/c/0ac328a5a4138a6c03dfc3f46017bd5c19167446"},{"url":"https://git.kernel.org/stable/c/17af420545a750f763025149fa7b833a4fc8b8f0"}],"title":"erspan: make sure erspan_base_hdr is present in skb->head","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"problemTypes":[{"descriptions":[{"type":"CWE","lang":"en","description":"CWE-noinfo Not enough information"}]}],"metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":5.5,"attackVector":"LOCAL","baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","integrityImpact":"NONE","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"LOW","confidentialityImpact":"NONE"}},{"other":{"type":"ssvc","content":{"timestamp":"2025-05-07T19:58:41.579179Z","id":"CVE-2024-35888","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2025-05-07T19:58:44.817Z"}},{"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2024-08-02T03:21:48.504Z"},"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/06a939f72a24a7d8251f84cf4c042df86c6666ac","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/e54a0c79cdc2548729dd7e2e468b08c5af4d0df5","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/b14b9f9503ec823ca75be766dcaeff4f0bfeca85","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/ee0088101beee10fa809716d6245d915b09c37c7","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/1db7fcb2b290c47c202b79528824f119fa28937d","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/4e3fdeecec5707678b0d1f18c259dadb97262e9d","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/0ac328a5a4138a6c03dfc3f46017bd5c19167446","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/17af420545a750f763025149fa7b833a4fc8b8f0","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html","tags":["x_transferred"]}]},{"x_adpType":"supplier","providerMetadata":{"orgId":"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e","shortName":"siemens-SADP","dateUpdated":"2026-05-12T11:52:27.203Z"},"affected":[{"vendor":"Siemens","product":"SIMATIC S7-1500 TM MFP - GNU/Linux subsystem","versions":[{"status":"affected","version":"0","lessThan":"*","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.0","lessThan":"V3.1.5","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.0","lessThan":"V3.1.5","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.0","lessThan":"V3.1.5","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.0","lessThan":"V3.1.5","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIPLUS S7-1500 CPU 1518-4 PN/DP MFP","versions":[{"status":"affected","version":"V3.1.0","lessThan":"V3.1.5","versionType":"custom"}],"defaultStatus":"unknown"}],"references":[{"url":"https://cert-portal.siemens.com/productcert/html/ssa-398330.html"},{"url":"https://cert-portal.siemens.com/productcert/html/ssa-265688.html"}]}]},"dataVersion":"5.2"}