In the Linux kernel, the following vulnerability has been resolved:
userfaultfd: don't BUG_ON() if khugepaged yanks our page table
Since khugepaged was changed to allow retracting page tables in file mappings without holding the mmap lock, these BUG_ON()s are wrong - get rid of them.
We could also remove the preceding "if (unlikely(...))" block, but then we could reach pteoffsetmap_lock() with transhuge pages not just for file mappings but also for anonymous mappings - which would probably be fine but I think is not necessarily expected.
[
{
"signature_type": "Function",
"id": "CVE-2024-46838-2b1534a6",
"digest": {
"length": 2372.0,
"function_hash": "18098536033945534800877059606035760453"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4a594acc12d5954cdc71d4450a386748bf3d136a",
"target": {
"function": "mfill_atomic",
"file": "mm/userfaultfd.c"
},
"signature_version": "v1"
},
{
"signature_type": "Function",
"id": "CVE-2024-46838-562c19cf",
"digest": {
"length": 2402.0,
"function_hash": "170389505882703913777074609827506956741"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@db978287e908d48b209e374b00d847b2d785e0a9",
"target": {
"function": "mfill_atomic",
"file": "mm/userfaultfd.c"
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"id": "CVE-2024-46838-7cd56796",
"digest": {
"threshold": 0.9,
"line_hashes": [
"96004666317817565490530309859873995859",
"241633244378867718815318597344981592374",
"141521045634378977496508178583805378610",
"337467240914743176470093672690867559397",
"306209937873552094189038798601210212862"
]
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4a594acc12d5954cdc71d4450a386748bf3d136a",
"target": {
"file": "mm/userfaultfd.c"
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"id": "CVE-2024-46838-8c8cb55e",
"digest": {
"threshold": 0.9,
"line_hashes": [
"96004666317817565490530309859873995859",
"241633244378867718815318597344981592374",
"141521045634378977496508178583805378610",
"337467240914743176470093672690867559397",
"306209937873552094189038798601210212862"
]
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@db978287e908d48b209e374b00d847b2d785e0a9",
"target": {
"file": "mm/userfaultfd.c"
},
"signature_version": "v1"
},
{
"signature_type": "Line",
"id": "CVE-2024-46838-ad2ede8f",
"digest": {
"threshold": 0.9,
"line_hashes": [
"96004666317817565490530309859873995859",
"241633244378867718815318597344981592374",
"141521045634378977496508178583805378610",
"337467240914743176470093672690867559397",
"306209937873552094189038798601210212862"
]
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4828d207dc5161dc7ddf9a4f6dcfd80c7dd7d20a",
"target": {
"file": "mm/userfaultfd.c"
},
"signature_version": "v1"
},
{
"signature_type": "Function",
"id": "CVE-2024-46838-fbd742b0",
"digest": {
"length": 2467.0,
"function_hash": "142792275286545535933077538691253461308"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4828d207dc5161dc7ddf9a4f6dcfd80c7dd7d20a",
"target": {
"function": "mfill_atomic",
"file": "mm/userfaultfd.c"
},
"signature_version": "v1"
}
]