CVE-2026-93173 in Linux
Сводка
по VulDB • 18.09.2026
В ядре Linux была устранена следующая уязвимость:
bpf,lsm: Удалить вызов bpf_prog_free из функций LSM, допускающих сон (sleepable_lsm_hooks)
__bpf_prog_put_rcu() является callback-функцией для call_rcu() для программ, не поддерживающих режим сна. Вызов security_bpf_prog_free(), осуществляемый оттуда, запускает bpf_prog_free в контексте softirq; если к этому хуку присоединена программа LSM с поддержкой режима сна (sleepable), это может привести к ошибке BUGs:
BUG: sleeping function called from invalid context in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 5038 preempt_count: 101, expected: 0 Call Trace: <IRQ> __bpf_prog_enter_sleepable+0x1cd/0x320 kernel/bpf/trampoline.c:1255 bpf_trampoline_6442549705+0x53/0xd7 security_bpf_prog_free+0xde/0x130 security/security.c:5465 __bpf_prog_put_rcu+0xab/0xd0 kernel/bpf/syscall.c:2365 rcu_do_batch kernel/rcu/tree.c:2617 [inline]
handle_softirqs+0x236/0x800 kernel/softirq.c:622 </IRQ>
Разделение вызовов call_rcu и call_rcu_tasks_trace отражает возможность использования режима сна (sleepability) освобожденной программы, а не любого присоединенного наблюдателя.
security_bpf_prog_free() также освобождает prog->aux->security, который должен оставаться в памяти после завершения периода грейса (grace period), поэтому следует удалить bpf_prog_free из sleepable_lsm_hooks вместо перемещения вызова. Неспящие наблюдатели по-прежнему выполняются там.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.