{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-36019","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2024-05-17T13:50:33.157Z","datePublished":"2024-05-30T14:59:42.840Z","dateUpdated":"2026-08-05T11:31:39.239Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T11:31:39.239Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nregmap: maple: Fix cache corruption in regcache_maple_drop()\n\nWhen keeping the upper end of a cache block entry, the entry[] array\nmust be indexed by the offset from the base register of the block,\ni.e. max - mas.index.\n\nThe code was indexing entry[] by only the register address, leading\nto an out-of-bounds access that copied some part of the kernel\nmemory over the cache contents.\n\nThis bug was not detected by the regmap KUnit test because it only\ntests with a block of registers starting at 0, so mas.index == 0."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The vulnerable code is a regmap register-cache operation reached only through local device interfaces — a GPIO line read via /dev/gpiochipN ioctl or /sys/class/gpio, driver ops, or suspend/resume. There is no network or adjacent-network path into regcache_drop_region().\nAC:L - The trigger is fully deterministic: the 0xC00–0xC04 cache block is created at probe from static reg_defaults, so a single read of an Arizona GPIO line configured as input reliably executes the out-of-bounds kmemdup with no race and no memory-layout precondition the attacker must win.\nPR:L - An unprivileged local user with access to the GPIO character device or legacy sysfs GPIO interface — routinely granted to a gpio group or system user on the Android phones and embedded boards that carry WM5102/WM5110 codecs — can invoke the path repeatedly. No root or capability check guards regcache_drop_region() itself.\nUI:N - The attacker performs the GPIO read directly; no victim action, mount, or file open is needed. Cache corruption is also propagated to hardware autonomously on the next suspend/resume cycle.\nS:U - The out-of-bounds read, the corrupted cache, and the resulting hardware misconfiguration are all managed by the same kernel security authority. No VM, IOMMU, or sandbox boundary is crossed.\nC:H - Up to 32 bytes of arbitrary kernel heap memory roughly 24 KB beyond a known slab object are copied into the register cache and then read back by userspace (per-bit via GPIO line values, whole registers via regmap debugfs), and the read offset is unbounded in general since it scales with the block's base register address. Repeated triggering samples fresh heap contents, enabling kernel pointer and data disclosure that defeats KASLR.\nI:H - The commit is titled \"Fix cache corruption\" — kernel memory overwrites the authoritative register cache, and those attacker-uncontrolled values are subsequently written to the real device by regmap_update_bits() and regcache_sync(), reconfiguring physical codec GPIO direction, level, polarity, and pin function. This is uncontrolled modification of both kernel state and hardware state.\nA:H - The far out-of-bounds read can dereference unmapped memory and oops — guaranteed on KASAN builds and plausible on the sparse direct maps of the embedded/ARM systems these codecs ship in. Independently, garbage written into codec GPIO control registers can assert reset/enable lines and render the audio device or attached hardware inoperable."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/base/regmap/regcache-maple.c"],"versions":[{"version":"f033c26de5a5734625d2dd1dc196745fae186f1b","lessThan":"3af6c5ac72dc5b721058132a0a1d7779e443175e","status":"affected","versionType":"git"},{"version":"f033c26de5a5734625d2dd1dc196745fae186f1b","lessThan":"51c4440b9d3fd7c8234e6de9170a487c03506e53","status":"affected","versionType":"git"},{"version":"f033c26de5a5734625d2dd1dc196745fae186f1b","lessThan":"00bb549d7d63a21532e76e4a334d7807a54d9f31","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/base/regmap/regcache-maple.c"],"versions":[{"version":"6.4","status":"affected"},{"version":"0","lessThan":"6.4","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":"6.4","versionEndExcluding":"6.6.26"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.8.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.9"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/3af6c5ac72dc5b721058132a0a1d7779e443175e"},{"url":"https://git.kernel.org/stable/c/51c4440b9d3fd7c8234e6de9170a487c03506e53"},{"url":"https://git.kernel.org/stable/c/00bb549d7d63a21532e76e4a334d7807a54d9f31"}],"title":"regmap: maple: Fix cache corruption in regcache_maple_drop()","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2024-36019","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2024-05-30T16:11:04.952877Z"}}}],"providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2024-06-04T17:47:34.967Z"}},{"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2024-08-02T03:30:12.601Z"},"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/3af6c5ac72dc5b721058132a0a1d7779e443175e","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/51c4440b9d3fd7c8234e6de9170a487c03506e53","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/00bb549d7d63a21532e76e4a334d7807a54d9f31","tags":["x_transferred"]}]}]}}