In the Linux kernel, the following vulnerability has been resolved:
fs/proc/taskmmu: prevent integer overflow in pagemapscangetargs()
The "arg->veclen" variable is a u64 that comes from the user at the start of the function. The "arg->veclen * sizeof(struct pageregion))" multiplication can lead to integer wrapping. Use sizemul() to avoid that.
Also the sizeadd/mul() functions work on unsigned long so for 32bit systems we need to ensure that "arg->veclen" fits in an unsigned long.
[
{
"id": "CVE-2024-53107-0c395931",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"file": "fs/proc/task_mmu.c",
"function": "pagemap_scan_get_args"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@adee03f8903c58a6a559f21388a430211fac8ce9",
"digest": {
"length": 1130.0,
"function_hash": "143371125680926656847668414153246809088"
},
"deprecated": false
},
{
"id": "CVE-2024-53107-397c58d7",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"file": "fs/proc/task_mmu.c",
"function": "pagemap_scan_get_args"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@669b0cb81e4e4e78cff77a5b367c7f70c0c6c05e",
"digest": {
"length": 1130.0,
"function_hash": "143371125680926656847668414153246809088"
},
"deprecated": false
},
{
"id": "CVE-2024-53107-3995ec31",
"signature_type": "Line",
"signature_version": "v1",
"target": {
"file": "fs/proc/task_mmu.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@adee03f8903c58a6a559f21388a430211fac8ce9",
"digest": {
"line_hashes": [
"60735432893787126327322046856811503279",
"298882871847214045658408957375185218183",
"117842439130220713928877887690812462318",
"304078933149785200820302257241112466607",
"66596199589917412133739644238914756694",
"236473760494547819444731037753579219106"
],
"threshold": 0.9
},
"deprecated": false
},
{
"id": "CVE-2024-53107-743f5d20",
"signature_type": "Line",
"signature_version": "v1",
"target": {
"file": "fs/proc/task_mmu.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@669b0cb81e4e4e78cff77a5b367c7f70c0c6c05e",
"digest": {
"line_hashes": [
"60735432893787126327322046856811503279",
"298882871847214045658408957375185218183",
"117842439130220713928877887690812462318",
"304078933149785200820302257241112466607",
"66596199589917412133739644238914756694",
"236473760494547819444731037753579219106"
],
"threshold": 0.9
},
"deprecated": false
}
]