In the Linux kernel, the following vulnerability has been resolved:
ioviter: fix copypagefromiteratomic() if KMAPLOCALFORCEMAP
generic/077 on x8632 CONFIGDEBUGKMAPLOCALFORCEMAP=y with highmem, on huge=always tmpfs, issues a warning and then hangs (interruptibly):
WARNING: CPU: 5 PID: 3517 at mm/highmem.c:622 kunmaplocalindexed+0x62/0xc9 CPU: 5 UID: 0 PID: 3517 Comm: cp Not tainted 6.12.0-rc4 #2 ... copypagefromiteratomic+0xa6/0x5ec genericperformwrite+0xf6/0x1b4 shmemfilewrite_iter+0x54/0x67
Fix copypagefromiteratomic() by limiting it in that case (include/linux/skbuff.h skbfragmust_loop() does similar).
But going forward, perhaps CONFIGDEBUGKMAPLOCALFORCE_MAP is too surprising, has outlived its usefulness, and should just be removed?
[
{
"id": "CVE-2024-50222-02bf9cd9",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 577.0,
"function_hash": "156583866506050436154786463874547442457"
},
"target": {
"function": "copy_page_from_iter_atomic",
"file": "lib/iov_iter.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3a303409f271dfe0987b8f79595138340497a32d",
"signature_type": "Function"
},
{
"id": "CVE-2024-50222-043133fc",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"204972246202362863207905383777073537367",
"246107876875981700908941424477660087988",
"174320704423253348218438031595245682291",
"86461641576612492676174904531817766691",
"30793947236016922995300490101432796813",
"301654204034709378666805833207329851687",
"116021592185717417981460081231870204855",
"173233218498764649273264345427804000499",
"260235183764604311482225338324599230617",
"43309767394056860938572771738270871978",
"281850396471512723579099544858066762299",
"170308226958184604692635004641752574466"
],
"threshold": 0.9
},
"target": {
"file": "lib/iov_iter.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3a303409f271dfe0987b8f79595138340497a32d",
"signature_type": "Line"
},
{
"id": "CVE-2024-50222-2dc3a7df",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 577.0,
"function_hash": "156583866506050436154786463874547442457"
},
"target": {
"function": "copy_page_from_iter_atomic",
"file": "lib/iov_iter.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c749d9b7ebbc5716af7a95f7768634b30d9446ec",
"signature_type": "Function"
},
{
"id": "CVE-2024-50222-579eb6f8",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"204972246202362863207905383777073537367",
"246107876875981700908941424477660087988",
"174320704423253348218438031595245682291",
"86461641576612492676174904531817766691",
"30793947236016922995300490101432796813",
"301654204034709378666805833207329851687",
"116021592185717417981460081231870204855",
"173233218498764649273264345427804000499",
"260235183764604311482225338324599230617",
"43309767394056860938572771738270871978",
"281850396471512723579099544858066762299",
"170308226958184604692635004641752574466"
],
"threshold": 0.9
},
"target": {
"file": "lib/iov_iter.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c749d9b7ebbc5716af7a95f7768634b30d9446ec",
"signature_type": "Line"
},
{
"id": "CVE-2024-50222-e6f2b5ef",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 683.0,
"function_hash": "146291071841828578165762968178562262701"
},
"target": {
"function": "copy_page_from_iter_atomic",
"file": "lib/iov_iter.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4f7ffa83fa79dd52efbaef366c850aaaae06a469",
"signature_type": "Function"
},
{
"id": "CVE-2024-50222-f7f895e7",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"204972246202362863207905383777073537367",
"246107876875981700908941424477660087988",
"174320704423253348218438031595245682291",
"86461641576612492676174904531817766691",
"30793947236016922995300490101432796813",
"301654204034709378666805833207329851687",
"116021592185717417981460081231870204855",
"173233218498764649273264345427804000499",
"260235183764604311482225338324599230617",
"43309767394056860938572771738270871978",
"281850396471512723579099544858066762299",
"170308226958184604692635004641752574466"
],
"threshold": 0.9
},
"target": {
"file": "lib/iov_iter.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4f7ffa83fa79dd52efbaef366c850aaaae06a469",
"signature_type": "Line"
}
]