CVE-2023-53790 in Linux
Сводка
по VulDB • 20.06.2026
В ядре Linux устранена следующая уязвимость:
bpf: Обнуление выделенного объекта из slab в аллокаторе памяти bpf
На данный момент освобожденный элемент в аллокаторе памяти bpf может быть немедленно переиспользован. Для карты htab (hash table) повторное использование приведет к повторной инициализации специальных полей значения карты (например, bpf_spin_lock), однако процедура поиска все еще может обращаться к этим специальным полям, что может привести к жесткому зависанию системы (hard-lockup), как показано ниже:
NMI backtrace for cpu 16 CPU: 16 PID: 2574 Comm: htab.bin Tainted: G L 6.1.0+ #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), RIP: 0010:queued_spin_lock_slowpath+0x283/0x2c0 ...... Call Trace: <TASK> copy_map_value_locked+0xb7/0x170 bpf_map_copy_value+0x113/0x3c0 __sys_bpf+0x1c67/0x2780 __x64_sys_bpf+0x1c/0x20 do_syscall_64+0x30/0x60 entry_SYSCALL_64_after_hwframe+0x46/0xb0 ...... </TASK>
Для карты htab, как и в случае с предварительно выделенной памятью (preallocated), нет необходимости повторно инициализировать эти специальные поля значения карты после их первоначальной инициализации. Для предварительно выделенных карт htab эти поля инициализируются через флаг __GFP_ZERO в функции bpf_map_area_alloc(), поэтому аналогичное действие следует выполнить для непредварительно выделенной памяти (non-preallocated) хеш-таблицы в аллокаторе памяти bpf. Для per-cpu аллокатора памяти bpf нет необходимости использовать __GFP_ZERO, поскольку функция __alloc_percpu_gfp() выполняет это неявно.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.