In the Linux kernel, the following vulnerability has been resolved:
regmap: maple: Fix cache corruption in regcachemapledrop()
When keeping the upper end of a cache block entry, the entry[] array must be indexed by the offset from the base register of the block, i.e. max - mas.index.
The code was indexing entry[] by only the register address, leading to an out-of-bounds access that copied some part of the kernel memory over the cache contents.
This bug was not detected by the regmap KUnit test because it only tests with a block of registers starting at 0, so mas.index == 0.
[
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"261634973619414196851073597423524809018",
"21829914733511672846640986199256058219",
"31095460310810572729856662061952303095",
"11243971616920950489603965285998616020"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@51c4440b9d3fd7c8234e6de9170a487c03506e53",
"target": {
"file": "drivers/base/regmap/regcache-maple.c"
},
"id": "CVE-2024-36019-5ca97e7b"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1288.0,
"function_hash": "241457492932166659035510546032314728241"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@51c4440b9d3fd7c8234e6de9170a487c03506e53",
"target": {
"file": "drivers/base/regmap/regcache-maple.c",
"function": "regcache_maple_drop"
},
"id": "CVE-2024-36019-8cd515b2"
}
]