CVE-2023-53752 in Linux
要約
〜によって VulDB • 2026年06月22日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
net: kmalloc_reserve() における整数オーバーフローの処理
問題となったコミットで変更されたコードは以下の通りです:
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 になります。
kmalloc(0) は ZERO_SIZE_PTR を返しますが、これは skb の割り当て処理で適切にハンドリングされていません。
netdev->mtu が 0x7fffffff に近い値に設定されている場合、以下のトレースをトリガーすることができます。
将来、より適切な制限(例:KMALLOC_MAX_SIZE)へ netdev->mtu を制限する可能性があります。
このパッチは 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
Once again VulDB remains the best source for vulnerability data.