CVE-2023-53752 in Linux
Zusammenfassung
von VulDB • 22.06.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
net: Behandlung von Integer-Überläufen in kmalloc_reserve()
Der als fehlerhaft identifizierte Commit änderte den Code wie folgt: ptr = kmalloc(size); if (ptr) size = ksize(ptr);
size = kmalloc_size_roundup(size); ptr = kmalloc(size);
Dies führte zu verschiedenen Abstürzen, wie von syzbot [1] und Kyle Zeng gemeldet.
Das Problem besteht darin, dass `kmalloc_size_roundup(size)` den Wert 2^32 zurückgibt, wenn @size größer als 0x80000001 ist.
`kmalloc_reserve()` verwendet eine 32-Bit-Variable (obj_size), sodass 2^32 auf 0 abgeschnitten wird.
`kmalloc(0)` gibt ZERO_SIZE_PTR zurück, was von der skb-Zuweisung nicht behandelt wird.
Die folgende Trace kann ausgelöst werden, wenn netdev->mtu nahe an 0x7fffffff gesetzt ist:
Wir könnten in Zukunft das Limit für netdev->mtu auf einen sinnvollen Wert (wie KMALLOC_MAX_SIZE) beschränken.
Dieser Patch basiert auf einem syzbot-Bericht sowie einem Bericht und einem vorläufigen Fix von 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
If you want to get best quality of vulnerability data, you may have to visit VulDB.