CVE-2023-53344 in Linux
요약
\~에 의해 VulDB • 2026. 06. 13.
리눅스 커널에서 다음 취약점이 해결되었습니다:
can: bcm: bcm_tx_setup(): vfs_write에서 KMSAN uninit-value 수정
Syzkaller에서 다음 문제가 보고되었습니다:
===================================================== BUG: KMSAN: uninit-value in aio_rw_done fs/aio.c:1520 [inline]
BUG: KMSAN: uninit-value in aio_write+0x899/0x950 fs/aio.c:1600 aio_rw_done fs/aio.c:1520 [inline]
aio_write+0x899/0x950 fs/aio.c:1600 io_submit_one+0x1d1c/0x3bf0 fs/aio.c:2019 __do_sys_io_submit fs/aio.c:2078 [inline]
__se_sys_io_submit+0x293/0x770 fs/aio.c:2048 __x64_sys_io_submit+0x92/0xd0 fs/aio.c:2048 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd
Uninit was created at: slab_post_alloc_hook mm/slab.h:766 [inline]
slab_alloc_node mm/slub.c:3452 [inline]
__kmem_cache_alloc_node+0x71f/0xce0 mm/slub.c:3491 __do_kmalloc_node mm/slab_common.c:967 [inline]
__kmalloc+0x11d/0x3b0 mm/slab_common.c:981 kmalloc_array include/linux/slab.h:636 [inline]
bcm_tx_setup+0x80e/0x29d0 net/can/bcm.c:930 bcm_sendmsg+0x3a2/0xce0 net/can/bcm.c:1351 sock_sendmsg_nosec net/socket.c:714 [inline]
sock_sendmsg net/socket.c:734 [inline]
sock_write_iter+0x495/0x5e0 net/socket.c:1108 call_write_iter include/linux/fs.h:2189 [inline]
aio_write+0x63a/0x950 fs/aio.c:1600 io_submit_one+0x1d1c/0x3bf0 fs/aio.c:2019 __do_sys_io_submit fs/aio.c:2078 [inline]
__se_sys_io_submit+0x293/0x770 fs/aio.c:2048 __x64_sys_io_submit+0x92/0xd0 fs/aio.c:2048 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd
CPU: 1 PID: 5034 Comm: syz-executor350 Not tainted 6.2.0-rc6-syzkaller-80422-geda666ff2276 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/12/2023 =====================================================
call chain을 따라가면 'bcm_tx_setup' 함수가 'op->frames'의 새로 할당된 프레임에 일부 내용을 복사하기 위해 'memcpy_from_msg'를 호출하는 것을 알 수 있습니다. 이후 복사된 구조체의 'len' 필드가 상수 값(64 또는 8)과 비교됩니다. 그러나 'memcpy_from_msg'가 오류를 반환하면 초기화되지 않은 메모리를 비교하게 됩니다. 이로 인해 'uninit-value' 문제가 발생합니다.
이 패치는 'memcpy_from_msg'의 가능한 오류 처리를 추가하여 uninit-value 문제를 방지합니다.
Syzkaller를 통해 테스트됨
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.