{"id":"CVE-2024-41081","state":"PUBLISHED","title":"ila: block BH in ila_output()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nila: block BH in ila_output()\n\nAs explained in commit 1378817486d6 (\"tipc: block BH\nbefore using dst_cache\"), net/core/dst_cache.c\nhelpers need to be called with BH disabled.\n\nila_output() is called from lwtunnel_output()\npossibly from process context, and under rcu_read_lock().\n\nWe might be interrupted by a softirq, re-enter ila_output()\nand corrupt dst_cache data structures.\n\nFix the race by using local_bh_disable().","publishedAt":"2024-07-29T15:04:18.459Z","updatedAt":"2026-08-05T11:35:15.378Z","severity":{"score":9.8,"label":"Critical","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"79ff2fc31e0f6a52eeb67fb89fba87e822b9b7b5","status":"affected","lessThan":"7435bd2f84a25aba607030237261b3795ba782da","versionType":"git"},{"version":"79ff2fc31e0f6a52eeb67fb89fba87e822b9b7b5","status":"affected","lessThan":"96103371091c6476eb07f4c66624bdd1b42f758a","versionType":"git"},{"version":"79ff2fc31e0f6a52eeb67fb89fba87e822b9b7b5","status":"affected","lessThan":"a0cafb7b0b94d18e4813ee4b712a056f280e7b5a","versionType":"git"},{"version":"79ff2fc31e0f6a52eeb67fb89fba87e822b9b7b5","status":"affected","lessThan":"feac2391e26b086f73be30e9b1ab215eada8d830","versionType":"git"},{"version":"79ff2fc31e0f6a52eeb67fb89fba87e822b9b7b5","status":"affected","lessThan":"b4eb25a3d70df925a9fa4e82d17a958a0a228f5f","versionType":"git"},{"version":"79ff2fc31e0f6a52eeb67fb89fba87e822b9b7b5","status":"affected","lessThan":"522c3336c2025818fa05e9daf0ac35711e55e316","versionType":"git"},{"version":"79ff2fc31e0f6a52eeb67fb89fba87e822b9b7b5","status":"affected","lessThan":"9f9c79d8e527d867e0875868b14fb76e6011e70c","versionType":"git"},{"version":"79ff2fc31e0f6a52eeb67fb89fba87e822b9b7b5","status":"affected","lessThan":"cf28ff8e4c02e1ffa850755288ac954b6ff0db8c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv6/ila/ila_lwt.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.10","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.10","versionType":"semver"},{"version":"4.19.319","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.281","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.223","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.164","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.101","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.42","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.9.11","status":"unaffected","lessThanOrEqual":"6.9.*","versionType":"semver"},{"version":"6.10","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv6/ila/ila_lwt.c"]}],"references":["https://git.kernel.org/stable/c/7435bd2f84a25aba607030237261b3795ba782da","https://git.kernel.org/stable/c/96103371091c6476eb07f4c66624bdd1b42f758a","https://git.kernel.org/stable/c/a0cafb7b0b94d18e4813ee4b712a056f280e7b5a","https://git.kernel.org/stable/c/feac2391e26b086f73be30e9b1ab215eada8d830","https://git.kernel.org/stable/c/b4eb25a3d70df925a9fa4e82d17a958a0a228f5f","https://git.kernel.org/stable/c/522c3336c2025818fa05e9daf0ac35711e55e316","https://git.kernel.org/stable/c/9f9c79d8e527d867e0875868b14fb76e6011e70c","https://git.kernel.org/stable/c/cf28ff8e4c02e1ffa850755288ac954b6ff0db8c","https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html"],"weaknesses":[],"ingestedAt":"2026-10-29T20:07:39.287Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/41xxx/CVE-2024-41081.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-41081","state":"PUBLISHED","datePublished":"2024-07-29T15:04:18.459Z","dateUpdated":"2026-08-05T11:35:15.378Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-07-12T12:17:45.633Z"},"containers":{"cna":{"title":"ila: block BH in ila_output()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nila: block BH in ila_output()\n\nAs explained in commit 1378817486d6 (\"tipc: block BH\nbefore using dst_cache\"), net/core/dst_cache.c\nhelpers need to be called with BH disabled.\n\nila_output() is called from lwtunnel_output()\npossibly from process context, and under rcu_read_lock().\n\nWe might be interrupted by a softirq, re-enter ila_output()\nand corrupt dst_cache data structures.\n\nFix the race by using local_bh_disable()."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"79ff2fc31e0f6a52eeb67fb89fba87e822b9b7b5","status":"affected","lessThan":"7435bd2f84a25aba607030237261b3795ba782da","versionType":"git"},{"version":"79ff2fc31e0f6a52eeb67fb89fba87e822b9b7b5","status":"affected","lessThan":"96103371091c6476eb07f4c66624bdd1b42f758a","versionType":"git"},{"version":"79ff2fc31e0f6a52eeb67fb89fba87e822b9b7b5","status":"affected","lessThan":"a0cafb7b0b94d18e4813ee4b712a056f280e7b5a","versionType":"git"},{"version":"79ff2fc31e0f6a52eeb67fb89fba87e822b9b7b5","status":"affected","lessThan":"feac2391e26b086f73be30e9b1ab215eada8d830","versionType":"git"},{"version":"79ff2fc31e0f6a52eeb67fb89fba87e822b9b7b5","status":"affected","lessThan":"b4eb25a3d70df925a9fa4e82d17a958a0a228f5f","versionType":"git"},{"version":"79ff2fc31e0f6a52eeb67fb89fba87e822b9b7b5","status":"affected","lessThan":"522c3336c2025818fa05e9daf0ac35711e55e316","versionType":"git"},{"version":"79ff2fc31e0f6a52eeb67fb89fba87e822b9b7b5","status":"affected","lessThan":"9f9c79d8e527d867e0875868b14fb76e6011e70c","versionType":"git"},{"version":"79ff2fc31e0f6a52eeb67fb89fba87e822b9b7b5","status":"affected","lessThan":"cf28ff8e4c02e1ffa850755288ac954b6ff0db8c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv6/ila/ila_lwt.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.10","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.10","versionType":"semver"},{"version":"4.19.319","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.281","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.223","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.164","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.101","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.42","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.9.11","status":"unaffected","lessThanOrEqual":"6.9.*","versionType":"semver"},{"version":"6.10","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/ipv6/ila/ila_lwt.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/7435bd2f84a25aba607030237261b3795ba782da"},{"url":"https://git.kernel.org/stable/c/96103371091c6476eb07f4c66624bdd1b42f758a"},{"url":"https://git.kernel.org/stable/c/a0cafb7b0b94d18e4813ee4b712a056f280e7b5a"},{"url":"https://git.kernel.org/stable/c/feac2391e26b086f73be30e9b1ab215eada8d830"},{"url":"https://git.kernel.org/stable/c/b4eb25a3d70df925a9fa4e82d17a958a0a228f5f"},{"url":"https://git.kernel.org/stable/c/522c3336c2025818fa05e9daf0ac35711e55e316"},{"url":"https://git.kernel.org/stable/c/9f9c79d8e527d867e0875868b14fb76e6011e70c"},{"url":"https://git.kernel.org/stable/c/cf28ff8e4c02e1ffa850755288ac954b6ff0db8c"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":9.8,"baseSeverity":"CRITICAL"},"scenarios":[{"lang":"en","value":"AV:N - On a host with an ILA lwtunnel route configured, `ila_output()` is reached directly from packet processing — forwarded/routed packets execute it in NET_RX/NET_TX softirq context while locally-originated traffic (including replies a remote peer induces from a server on the host) executes it in process context, so a remote unauthenticated attacker sending IPv6 traffic drives the vulnerable code path.\nAC:L - The attacker drives both sides of the race by controlling traffic rate on the softirq path and the process-context path, and can flood to make the softirq land inside the unprotected `dst_cache` update window; per-CPU state can be targeted by sustained load, so no condition outside the attacker's influence is required.\nPR:N - No credentials or authentication are needed — merely emitting IPv6 packets that traverse the configured ILA route reaches `ila_output()`. The equivalent local path is likewise available to an unprivileged user (netns + traffic generation), so no elevated privilege is required under any reading.\nUI:N - Triggering requires only attacker-generated network traffic against an already-configured ILA route; no administrator or victim action is needed at exploit time.\nS:U - The corruption and its consequences are confined to the kernel's own memory and security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The race produces a use-after-free on `struct dst_entry` (stale per-CPU pointer taken and reused, or refcount underflow leading to premature free); a reclaimed and attacker-sprayed dst object can be leveraged to read arbitrary kernel memory.\nI:H - The freed `dst_entry` is immediately used for routing — `dst_output()` invokes `dst->output()` and `dst->ops` callbacks — so controlling the reclaimed object yields function-pointer hijack and arbitrary write, i.e. full kernel integrity loss.\nA:H - Even unexploited, the refcount corruption and use of a freed dst reliably cause oops/panic in the network output path, and the race can be retriggered continuously for repeated system crashes."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T11:35:15.378Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.10","versionEndExcluding":"4.19.319"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.10","versionEndExcluding":"5.4.281"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.10","versionEndExcluding":"5.10.223"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.10","versionEndExcluding":"5.15.164"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.10","versionEndExcluding":"6.1.101"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.10","versionEndExcluding":"6.6.42"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.10","versionEndExcluding":"6.9.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.10","versionEndExcluding":"6.10"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/7435bd2f84a25aba607030237261b3795ba782da","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/96103371091c6476eb07f4c66624bdd1b42f758a","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/a0cafb7b0b94d18e4813ee4b712a056f280e7b5a","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/feac2391e26b086f73be30e9b1ab215eada8d830","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/b4eb25a3d70df925a9fa4e82d17a958a0a228f5f","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/522c3336c2025818fa05e9daf0ac35711e55e316","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/9f9c79d8e527d867e0875868b14fb76e6011e70c","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/cf28ff8e4c02e1ffa850755288ac954b6ff0db8c","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2025-11-03T22:00:39.886Z"}},{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2024-41081","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2024-09-10T16:21:05.349089Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-09-11T17:33:59.351Z"}}]}}}