{"dataType":"CVE_RECORD","cveMetadata":{"cveId":"CVE-2024-35848","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2024-05-17T13:50:33.105Z","datePublished":"2024-05-17T14:47:26.828Z","dateUpdated":"2026-08-05T11:30:17.634Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T11:30:17.634Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\neeprom: at24: fix memory corruption race condition\n\nIf the eeprom is not accessible, an nvmem device will be registered, the\nread will fail, and the device will be torn down. If another driver\naccesses the nvmem device after the teardown, it will reference\ninvalid memory.\n\nMove the failure point before registering the nvmem device."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The dangling nvmem provider is driven through local interfaces — the world-readable `/sys/bus/nvmem/devices/*/nvmem` and compat `eeprom` binary attributes (0444 for `at24_data_spd`/`24c02_vaio` via AT24_FLAG_IRUGO) reached by read(2), plus in-kernel nvmem consumer paths. There is no network exposure, and the exploitation interface is a local syscall rather than physical manipulation.\nAC:H - Exploitation requires the EEPROM's one-byte probe read to fail (an I2C/hardware condition a local unprivileged attacker cannot induce) while an nvmem consumer holds a reference across the devres teardown. The consumer half is deterministic on affected platforms (e.g. the NVMEM_ADD notifier in cp500.c fires inside nvmem_register itself), but the hardware-failure half is outside attacker control.\nPR:L - SPD and VAIO at24 chip data clear `root_only`, giving the nvmem and compat eeprom sysfs attributes mode 0444, so any unprivileged local account can invoke the freed `at24_read()` path with no capabilities, namespace tricks, or group membership.\nUI:N - No victim action is needed; the attacker simply reads the sysfs attribute, or an in-kernel consumer touches the stale nvmem device on its own.\nS:U - The use-after-free occurs in kernel memory and its impact is confined to the kernel's own security authority — no VM, IOMMU, or sandbox boundary is crossed.\nC:H - Reading the stale nvmem device dereferences a freed `at24_data`, and `at24_translate_offset()` indexes `client_regmaps[]` using an index bounded only by the freed `byte_len`, yielding out-of-bounds pointer fetches and regmap reads that return arbitrary reclaimed kernel memory into the user-visible read buffer.\nI:H - `at24_read()` calls `at24->read_post()` — a function pointer loaded from freed memory — and drives regmap op/lock tables out of a freed regmap, while `at24_write()` on a writable instance pushes attacker data through the same stale structures; heap grooming turns this into arbitrary write and control-flow hijack.\nA:H - Even without grooming, the use-after-free dereferences freed regmap and device pointers and locks a freed mutex, reliably producing an oops or panic, and the dangling nvmem device persists so the crash can be triggered repeatedly."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/misc/eeprom/at24.c"],"versions":[{"version":"b20eb4c1f0261eebe6e1b9221c0d6e4048837778","lessThan":"c850f71fca09ea41800ed55905980063d17e01da","status":"affected","versionType":"git"},{"version":"b20eb4c1f0261eebe6e1b9221c0d6e4048837778","lessThan":"26d32bec4c6d255a03762f33c637bfa3718be15a","status":"affected","versionType":"git"},{"version":"b20eb4c1f0261eebe6e1b9221c0d6e4048837778","lessThan":"c43e5028f5a35331eb25017f5ff6cc21735005c6","status":"affected","versionType":"git"},{"version":"b20eb4c1f0261eebe6e1b9221c0d6e4048837778","lessThan":"2af84c46b9b8f2d6c0f88d09ee5c849ae1734676","status":"affected","versionType":"git"},{"version":"b20eb4c1f0261eebe6e1b9221c0d6e4048837778","lessThan":"6d8b56ec0c8f30d5657382f47344a32569f7a9bc","status":"affected","versionType":"git"},{"version":"b20eb4c1f0261eebe6e1b9221c0d6e4048837778","lessThan":"f42c97027fb75776e2e9358d16bf4a99aeb04cf2","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/misc/eeprom/at24.c"],"versions":[{"version":"5.3","status":"affected"},{"version":"0","lessThan":"5.3","status":"unaffected","versionType":"semver"},{"version":"5.10.217","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.159","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.91","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.31","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.8.9","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":"5.3","versionEndExcluding":"5.10.217"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"5.15.159"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"6.1.91"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"6.6.31"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"6.8.9"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"6.9"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/c850f71fca09ea41800ed55905980063d17e01da"},{"url":"https://git.kernel.org/stable/c/26d32bec4c6d255a03762f33c637bfa3718be15a"},{"url":"https://git.kernel.org/stable/c/c43e5028f5a35331eb25017f5ff6cc21735005c6"},{"url":"https://git.kernel.org/stable/c/2af84c46b9b8f2d6c0f88d09ee5c849ae1734676"},{"url":"https://git.kernel.org/stable/c/6d8b56ec0c8f30d5657382f47344a32569f7a9bc"},{"url":"https://git.kernel.org/stable/c/f42c97027fb75776e2e9358d16bf4a99aeb04cf2"}],"title":"eeprom: at24: fix memory corruption race condition","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2024-35848","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2024-05-17T17:15:51.983063Z"}}}],"providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2024-06-04T17:34:04.173Z"}},{"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2024-08-02T03:21:48.632Z"},"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/c850f71fca09ea41800ed55905980063d17e01da","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/26d32bec4c6d255a03762f33c637bfa3718be15a","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/c43e5028f5a35331eb25017f5ff6cc21735005c6","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/2af84c46b9b8f2d6c0f88d09ee5c849ae1734676","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/6d8b56ec0c8f30d5657382f47344a32569f7a9bc","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/f42c97027fb75776e2e9358d16bf4a99aeb04cf2","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2024/06/msg00019.html","tags":["x_transferred"]}]}]},"dataVersion":"5.2"}