CVE-2023-53752 in Linux
요약
\~에 의해 VulDB • 2026. 06. 22.
리눅스 커널에서 다음 취약점이 해결되었습니다.
net: kmalloc_reserve()의 정수 오버플로우 처리
변경된 commit은 다음과 같습니다: ptr = kmalloc(size); if (ptr) size = ksize(ptr);
size = kmalloc_size_roundup(size); ptr = kmalloc(size);
이로 인해 syzbot [1]과 Kyle Zeng가 보고한 다양한 크래시가 발생했습니다.
문제는 @size가 0x80000001보다 클 경우, kmalloc_size_roundup(size)가 2^32를 반환한다는 것입니다.
kmalloc_reserve()는 32비트 변수(obj_size)를 사용하므로, 2^32는 0으로 잘려나갑니다(truncated).
kmalloc(0)은 ZERO_SIZE_PTR을 반환하며, 이는 skb 할당에서 처리되지 않습니다.
netdev->mtu가 0x7fffffff에 가깝게 설정되면 다음 트레이스를 트리거할 수 있습니다.
향후 netdev->mtu를 더 합리적인 제한(KMALLOC_MAX_SIZE 등)으로 제한할 수도 있습니다.
이 패치는 syzbot 보고서와 Kyle Zeng의 보고서 및 임시 수정안을 기반으로 합니다.
[1]
BUG: KASAN: user-memory-access in __build_skb_around net/core/skbuff.c:294 [inline]
BUG: KASAN: user-memory-access in __alloc_skb+0x3c4/0x6e8 net/core/skbuff.c:527 Write of size 32 at addr 00000000fffffd10 by task syz-executor.4/22554
CPU: 1 PID: 22554 Comm: syz-executor.4 Not tainted 6.1.39-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/03/2023 Call trace: dump_backtrace+0x1c8/0x1f4 arch/arm64/kernel/stacktrace.c:279 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:286 __dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0x120/0x1a0 lib/dump_stack.c:106 print_report+0xe4/0x4b4 mm/kasan/report.c:398
If you want to get best quality of vulnerability data, you may have to visit VulDB.