{"dataType":"CVE_RECORD","cveMetadata":{"cveId":"CVE-2024-38558","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2024-06-18T19:36:34.921Z","datePublished":"2024-06-19T13:35:28.226Z","dateUpdated":"2026-08-05T11:32:47.205Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T11:32:47.205Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: openvswitch: fix overwriting ct original tuple for ICMPv6\n\nOVS_PACKET_CMD_EXECUTE has 3 main attributes:\n - OVS_PACKET_ATTR_KEY - Packet metadata in a netlink format.\n - OVS_PACKET_ATTR_PACKET - Binary packet content.\n - OVS_PACKET_ATTR_ACTIONS - Actions to execute on the packet.\n\nOVS_PACKET_ATTR_KEY is parsed first to populate sw_flow_key structure\nwith the metadata like conntrack state, input port, recirculation id,\netc.  Then the packet itself gets parsed to populate the rest of the\nkeys from the packet headers.\n\nWhenever the packet parsing code starts parsing the ICMPv6 header, it\nfirst zeroes out fields in the key corresponding to Neighbor Discovery\ninformation even if it is not an ND packet.\n\nIt is an 'ipv6.nd' field.  However, the 'ipv6' is a union that shares\nthe space between 'nd' and 'ct_orig' that holds the original tuple\nconntrack metadata parsed from the OVS_PACKET_ATTR_KEY.\n\nND packets should not normally have conntrack state, so it's fine to\nshare the space, but normal ICMPv6 Echo packets or maybe other types of\nICMPv6 can have the state attached and it should not be overwritten.\n\nThe issue results in all but the last 4 bytes of the destination\naddress being wiped from the original conntrack tuple leading to\nincorrect packet matching and potentially executing wrong actions\nin case this packet recirculates within the datapath or goes back\nto userspace.\n\nND fields should not be accessed in non-ND packets, so not clearing\nthem should be fine.  Executing memset() only for actual ND packets to\navoid the issue.\n\nInitializing the whole thing before parsing is needed because ND packet\nmay not contain all the options.\n\nThe issue only affects the OVS_PACKET_CMD_EXECUTE path and doesn't\naffect packets entering OVS datapath from network interfaces, because\nin this case CT metadata is populated from skb after the packet is\nalready parsed."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","baseScore":10,"baseSeverity":"CRITICAL"},"scenarios":[{"lang":"en","value":"AV:N - The corrupted field is driven by the content of an ICMPv6 packet processed by the OVS datapath; in real deployments (the reported Antrea/OVN case) that packet arrives from a remote host and reaches the buggy parser via the standard flow-miss → upcall → OVS_PACKET_CMD_EXECUTE re-injection cycle performed by the trusted vswitchd. OVS is the data plane on hypervisors and Kubernetes nodes handling untrusted tenant and internet traffic.\nAC:L - Any ordinary non-ND ICMPv6 packet (e.g. an Echo Request) carrying conntrack state deterministically wipes the original tuple — there is no race, no memory-layout dependency, and no condition outside the attacker's control. CONFIG_OPENVSWITCH with conntrack/ct_orig matching is the default configuration in OVN, OpenStack and Antrea deployments.\nPR:N - The remote sender of the ICMPv6 packet needs no credentials; the privileged netlink call is issued by the trusted ovs-vswitchd on the packet's behalf as part of normal slow-path processing. Even the direct local trigger only needs CAP_NET_ADMIN in a user namespace (GENL_UNS_ADMIN_PERM with netnsok=true), i.e. no more than PR:L.\nUI:N - Triggering requires only that the packet traverse the OVS datapath; no administrator or user action is needed beyond the normal operation of the virtual switch.\nS:C - The OVS datapath is the enforcement point for isolation and ACLs between separate VMs, containers and tenants, so mismatched flows cause traffic to be handled under a different security authority's policy. The corrupted key is additionally exported to the userspace control plane, which installs datapath flows for other workloads based on it.\nC:H - Wiping the conntrack original tuple makes stateful ACLs and un-DNAT rules keyed on ct_ipv6_src/ct_ipv6_dst fail to match, so packets can fall through to a different flow and be output to an unintended port or allowed through to a protected endpoint, exposing traffic and services to parties that should not reach them.\nI:H - The kernel destroys control-plane-supplied conntrack metadata, so the datapath executes actions the controller never intended, and the bogus tuple returned on upcall causes a wrong megaflow to be installed for subsequent traffic — a persistent subversion of the virtual switch's forwarding and filtering policy.\nA:H - Affected connections are mis-forwarded or black-holed because the reply traffic no longer matches the established/un-DNAT flow, and the wrong megaflow installed from the corrupted key keeps denying connectivity for the whole class of traffic it wildcards until it is evicted."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/openvswitch/flow.c"],"versions":[{"version":"9dd7f8907c3705dc7a7a375d1c6e30b06e6daffc","lessThan":"6a51ac92bf35d34b4996d6eb67e2fe469f573b11","status":"affected","versionType":"git"},{"version":"9dd7f8907c3705dc7a7a375d1c6e30b06e6daffc","lessThan":"0b532f59437f688563e9c58bdc1436fefa46e3b5","status":"affected","versionType":"git"},{"version":"9dd7f8907c3705dc7a7a375d1c6e30b06e6daffc","lessThan":"5ab6aecbede080b44b8e34720ab72050bf1e6982","status":"affected","versionType":"git"},{"version":"9dd7f8907c3705dc7a7a375d1c6e30b06e6daffc","lessThan":"483eb70f441e2df66ade78aa7217e6e4caadfef3","status":"affected","versionType":"git"},{"version":"9dd7f8907c3705dc7a7a375d1c6e30b06e6daffc","lessThan":"9ec8b0ccadb908d92f7ee211a4eff05fd932f3f6","status":"affected","versionType":"git"},{"version":"9dd7f8907c3705dc7a7a375d1c6e30b06e6daffc","lessThan":"78741b4caae1e880368cb2f5110635f3ce45ecfd","status":"affected","versionType":"git"},{"version":"9dd7f8907c3705dc7a7a375d1c6e30b06e6daffc","lessThan":"431e9215576d7b728f3f53a704d237a520092120","status":"affected","versionType":"git"},{"version":"9dd7f8907c3705dc7a7a375d1c6e30b06e6daffc","lessThan":"d73fb8bddf89503c9fae7c42e50d44c89909aad6","status":"affected","versionType":"git"},{"version":"9dd7f8907c3705dc7a7a375d1c6e30b06e6daffc","lessThan":"7c988176b6c16c516474f6fceebe0f055af5eb56","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/openvswitch/flow.c"],"versions":[{"version":"4.11","status":"affected"},{"version":"0","lessThan":"4.11","status":"unaffected","versionType":"semver"},{"version":"4.19.316","lessThanOrEqual":"4.19.*","status":"unaffected","versionType":"semver"},{"version":"5.4.278","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.219","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.161","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.93","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.33","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.8.12","lessThanOrEqual":"6.8.*","status":"unaffected","versionType":"semver"},{"version":"6.9.3","lessThanOrEqual":"6.9.*","status":"unaffected","versionType":"semver"},{"version":"6.10","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.11","versionEndExcluding":"4.19.316"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"5.4.278"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"5.10.219"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"5.15.161"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"6.1.93"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"6.6.33"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"6.8.12"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"6.9.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.11","versionEndExcluding":"6.10"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/6a51ac92bf35d34b4996d6eb67e2fe469f573b11"},{"url":"https://git.kernel.org/stable/c/0b532f59437f688563e9c58bdc1436fefa46e3b5"},{"url":"https://git.kernel.org/stable/c/5ab6aecbede080b44b8e34720ab72050bf1e6982"},{"url":"https://git.kernel.org/stable/c/483eb70f441e2df66ade78aa7217e6e4caadfef3"},{"url":"https://git.kernel.org/stable/c/9ec8b0ccadb908d92f7ee211a4eff05fd932f3f6"},{"url":"https://git.kernel.org/stable/c/78741b4caae1e880368cb2f5110635f3ce45ecfd"},{"url":"https://git.kernel.org/stable/c/431e9215576d7b728f3f53a704d237a520092120"},{"url":"https://git.kernel.org/stable/c/d73fb8bddf89503c9fae7c42e50d44c89909aad6"},{"url":"https://git.kernel.org/stable/c/7c988176b6c16c516474f6fceebe0f055af5eb56"}],"title":"net: openvswitch: fix overwriting ct original tuple for ICMPv6","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2024-06-24T18:25:00.443395Z","id":"CVE-2024-38558","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":"2024-06-24T18:25:07.878Z"}},{"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/6a51ac92bf35d34b4996d6eb67e2fe469f573b11","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/0b532f59437f688563e9c58bdc1436fefa46e3b5","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/5ab6aecbede080b44b8e34720ab72050bf1e6982","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/483eb70f441e2df66ade78aa7217e6e4caadfef3","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/9ec8b0ccadb908d92f7ee211a4eff05fd932f3f6","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/78741b4caae1e880368cb2f5110635f3ce45ecfd","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/431e9215576d7b728f3f53a704d237a520092120","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/d73fb8bddf89503c9fae7c42e50d44c89909aad6","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/7c988176b6c16c516474f6fceebe0f055af5eb56","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html"}],"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2025-11-04T17:21:25.696Z"}},{"x_adpType":"supplier","providerMetadata":{"orgId":"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e","shortName":"siemens-SADP","dateUpdated":"2026-05-12T11:54:37.352Z"},"affected":[{"vendor":"Siemens","product":"RUGGEDCOM RST2428P","versions":[{"status":"affected","version":"0","lessThan":"V3.1","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family","versions":[{"status":"unaffected","version":"0","lessThan":"*","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SCALANCE XCM-/XRM-/XCH-/XRH-300 family","versions":[{"status":"affected","version":"0","lessThan":"V3.1","versionType":"custom"}],"defaultStatus":"unknown"},{"vendor":"Siemens","product":"SIMATIC S7-1500 TM MFP - GNU/Linux subsystem","versions":[{"status":"affected","version":"0","lessThan":"*","versionType":"custom"}],"defaultStatus":"unknown"}],"references":[{"url":"https://cert-portal.siemens.com/productcert/html/ssa-265688.html"},{"url":"https://cert-portal.siemens.com/productcert/html/ssa-613116.html"}]}]},"dataVersion":"5.2"}