In the Linux kernel, the following vulnerability has been resolved:
do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak
syzbot identified a kernel information leak vulnerability in
do_sys_name_to_handle() and issued the following report [1].
[1]
"BUG: KMSAN: kernel-infoleak in instrument_copy_to_user include/linux/instrumented.h:114 [inline]
BUG: KMSAN: kernel-infoleak in _copy_to_user+0xbc/0x100 lib/usercopy.c:40
instrument_copy_to_user include/linux/instrumented.h:114 [inline]
_copy_to_user+0xbc/0x100 lib/usercopy.c:40
copy_to_user include/linux/uaccess.h:191 [inline]
do_sys_name_to_handle fs/fhandle.c:73 [inline]
__do_sys_name_to_handle_at fs/fhandle.c:112 [inline]
__se_sys_name_to_handle_at+0x949/0xb10 fs/fhandle.c:94
__x64_sys_name_to_handle_at+0xe4/0x140 fs/fhandle.c:94
…
Uninit was created at:
slab_post_alloc_hook+0x129/0xa70 mm/slab.h:768
slab_alloc_node mm/slub.c:3478 [inline]
__kmem_cache_alloc_node+0x5c9/0x970 mm/slub.c:3517
__do_kmalloc_node mm/slab_common.c:1006 [inline]
__kmalloc+0x121/0x3c0 mm/slab_common.c:1020
kmalloc include/linux/slab.h:604 [inline]
do_sys_name_to_handle fs/fhandle.c:39 [inline]
__do_sys_name_to_handle_at fs/fhandle.c:112 [inline]
__se_sys_name_to_handle_at+0x441/0xb10 fs/fhandle.c:94
__x64_sys_name_to_handle_at+0xe4/0x140 fs/fhandle.c:94
…
Bytes 18-19 of 20 are uninitialized
Memory access of size 20 starts at ffff888128a46380
Data copied to user address 0000000020000240"
Per Chuck Lever’s suggestion, use kzalloc() instead of kmalloc() to
solve the problem.
[
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"fs/fhandle.c"
],
"versions": [
{
"version": "990d6c2d7aee",
"lessThan": "4bac28f441e3",
"status": "affected",
"versionType": "git"
},
{
"version": "990d6c2d7aee",
"lessThan": "772a7def9868",
"status": "affected",
"versionType": "git"
},
{
"version": "990d6c2d7aee",
"lessThan": "cde76b3af247",
"status": "affected",
"versionType": "git"
},
{
"version": "990d6c2d7aee",
"lessThan": "423b6bdf19bb",
"status": "affected",
"versionType": "git"
},
{
"version": "990d6c2d7aee",
"lessThan": "e6450d5e46a7",
"status": "affected",
"versionType": "git"
},
{
"version": "990d6c2d7aee",
"lessThan": "c1362eae861d",
"status": "affected",
"versionType": "git"
},
{
"version": "990d6c2d7aee",
"lessThan": "cba138f1ef37",
"status": "affected",
"versionType": "git"
},
{
"version": "990d6c2d7aee",
"lessThan": "bf9ec1b24ab4",
"status": "affected",
"versionType": "git"
},
{
"version": "990d6c2d7aee",
"lessThan": "3948abaa4e2b",
"status": "affected",
"versionType": "git"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"fs/fhandle.c"
],
"versions": [
{
"version": "2.6.39",
"status": "affected"
},
{
"version": "0",
"lessThan": "2.6.39",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.19.311",
"lessThanOrEqual": "4.19.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.4.273",
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.10.214",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.15.153",
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.1.83",
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.6.23",
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.7.11",
"lessThanOrEqual": "6.7.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.8.2",
"lessThanOrEqual": "6.8.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.9",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
]
git.kernel.org/stable/c/3948abaa4e2be938ccdfc289385a27342fb13d43
git.kernel.org/stable/c/423b6bdf19bbc5e1f7e7461045099917378f7e71
git.kernel.org/stable/c/4bac28f441e3cc9d3f1a84c8d023228a68d8a7c1
git.kernel.org/stable/c/772a7def9868091da3bcb0d6c6ff9f0c03d7fa8b
git.kernel.org/stable/c/bf9ec1b24ab4e94345aa1c60811dd329f069c38b
git.kernel.org/stable/c/c1362eae861db28b1608b9dc23e49634fe87b63b
git.kernel.org/stable/c/cba138f1ef37ec6f961baeab62f312dedc7cf730
git.kernel.org/stable/c/cde76b3af247f615447bcfecf610bb76c3529126
git.kernel.org/stable/c/e6450d5e46a737a008b4885aa223486113bf0ad6
lists.debian.org/debian-lts-announce/2024/06/msg00017.html
lists.debian.org/debian-lts-announce/2024/06/msg00020.html