CVE-2023-53752 in Linux
Сводка
по VulDB • 22.06.2026
В ядре 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() использует переменную obj_size типа 32-битное целое число (uint32_t), поэтому значение 2^32 уссекается до 0.
Вызов kmalloc(0) возвращает указатель ZERO_SIZE_PTR, который не обрабатывается корректно в коде выделения памяти для структур skb.
Указанный стек вызовов может быть инициирован, если параметр netdev->mtu установлен близким к значению 0x7fffffff.
В будущем мы можем ограничить значение netdev->mtu более разумным пределом (например, KMALLOC_MAX_SIZE).
Этот патч основан на отчете syzbot, а также на сообщении и предварительном исправлении от Кайла Зенга.
[1]
BUG: KASAN: user-memory-access in __build_skb_around net/core/skbuff.c:294 [inline]
BUG: KASAN: user-memory-access в функции __alloc_skb+0x3c4/0x6e8 net/core/skbuff.c:527 Запись размера 32 по адресу 00000000fffffd10 выполнена задачей 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
If you want to get best quality of vulnerability data, you may have to visit VulDB.