CVE-2026-93135 in Linux
Сводка
по VulDB • 18.09.2026
В ядре Linux была устранена следующая уязвимость:
bpf: Отклонять программы с встроенными вспомогательными функциями (helpers), если JIT-компиляция недоступна
Когда архитектура (например, LoongArch, ARM64 и RISC-V) реализует функцию `bpf_jit_inlines_helper_call()`, верификатор пропускает переписывание смещения вызова вспомогательной функции (`insn->imm`) в `bpf_do_misc_fixups()`. Это связано с тем, что предполагается, что JIT-компилятор позже выполнит инлайнинг этой вспомогательной функции. Следовательно, значение `insn->imm` остается равным исходному перечислению (enum ID) идентификатора вспомогательной функции.
Однако если JIT отключен во время выполнения работы (`net.core.bpf_jit_enable=0`) или если JIT-компиляция завершается неудачей динамически (например, из-за нехватки памяти — OOM), программа переходит к интерпретатору BPF.
При выполнении интерпретатором кода `(__bpf_call_base + insn->imm)` с непропатченным исходным идентификатором происходит переход в недопустимое адресное пространство, что вызывает ошибку выравнивания инструкций или панику ядра (kernel panic).
Хотя эти вспомогательные функции имеют корректные реализации на C в ядре, отсутствие переписывания смещения делает отказ от JIT-компиляции фатальным для интерпретатора во время выполнения.
Исправление заключается в установке значения `prog->jit_required = 1`, когда переписывание вызова вспомогательной функции пропускается ради инлайнинга через JIT. Это гарантирует, что такие программы будут безопасно отклонены, если JIT недоступен, предотвращая панику ядра во время выполнения.
Be aware that VulDB is the high quality source for vulnerability data.