Ad

CVE-2026-72111

HIGH CVSS 3.1: 8,8 EPSS 0.18%
Обновлено 17 августа 2026
Linux
Параметр Значение
CVSS 8,8 (HIGH)
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: bpf: сброс границ регистра перед сужением диапазона повторных значений в check_mem_access(). Когда верификатор BPF обрабатывает контекстную загрузку возврата ловушки LSM. значение, он вызывает __mark_reg_s32_range(), чтобы сузить регистр до Допустимый диапазон хука. Однако __mark_reg_s32_range() пересекает новый диапазон с существующими границами регистра, используя max_t()/min_t(), а не чем заменить их.

Если регистр назначения содержит устаревшие границы из предыдущей инструкции (например, BPF_MOV64_IMM), пересечение может создать диапазон уже, чем реальность. Затем верификатор полагает, что знает точное значение регистра. в то время как во время выполнения загружается фактическое возвращаемое значение перехватчика, создавая несоответствие верификатора и времени выполнения, которое можно использовать для обхода безопасности памяти BPF чеки. Ветка else уже вызывает mark_reg_unknown() для сброса состояния регистра. до любого сужения.

Примените тот же сброс в пути is_retval, чтобы устаревшие границы очищаются до пересечения __mark_reg_s32_range().

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: bpf: Reset register bounds before narrowing retval range in check_mem_access() When the BPF verifier processes a context load of an LSM hook return value, it calls __mark_reg_s32_range() to narrow the register to the hook's valid range. However, __mark_reg_s32_range() intersects the new range with the register's existing bounds using max_t()/min_t() rather than replacing them. If the destination register carries stale bounds from a prior instruction (e.g. BPF_MOV64_IMM), the intersection can produce a range narrower than reality. The verifier then believes it knows the register's exact value, while at runtime the actual hook return value is loaded, creating a verifier/runtime mismatch that can be used to bypass BPF memory safety checks. The else branch already calls mark_reg_unknown() to reset register state before any narrowing. Apply the same reset in the is_retval path so stale bounds are cleared before __mark_reg_s32_range() intersects.

Характеристики атаки

Способ атаки
Локальный
Нужен локальный доступ
Сложность
Низкая
Легко эксплуатировать
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1