Обнаружена уязвимость в rt-ядре RHEL и Debian

В ядре kernel-rt c реализацией режима реального времени для Red Hat Enterprise Linux выявлена проблема с безопасностью, позволяющая организовать атаку по выполнению произвольных команд SysRq (например, инициировать перезагрузку) через отправку специально оформленных пакетов ICMP echo.

Проблема связана с недоработкой в реализации функции отправки команд SysRq по сети, которая не была принята в состав основного ядра, но вошла в состав пакета kernel-rt с набором патчей PREEMPT_RT. Патч также используется в пакетах с ядром в некоторых других дистрибутивах, например проблема присутствует в ядре из состава Debian. Обычное (не "-rt") ядро RHEL проблеме не подвержено, пишет opennet.ru.

Патч отправки SysRq по сети был создан для реагирования на зависания системы, при которых система никак не реагирует на клавиатурный ввод, но продолжает отвечать на запросы ping. Патч предлагает опцию CONFIG_SYSRQ_PING при активации которой пользователь может добавить в файл /sys/kernel/debug/network_sysrq_magic секретную кодовую последовательность, которая в дальнейшем может использоваться в качестве ключа для удалённого выполнения команд SysRq. Например, команду SysRq можно отправить через "ping -c 1 -p 1623a06f554d46d676d 192.168.1.1", где 1623a06f554d46d67 - ключ, а 6d - код команды sysrq-m.

Реализация имеет две проблемы: Размер ключа составляет не более 30 шестнадцатеричных цифр (на практике может быть указано существенно меньше цифр), что с учётом легковесности пакетов icmp позволяет удалённому злоумышленнику совершить bruteforce-атаку и методом подбора определить нужный ключ. Для пользователей локальной системы не составляет труда получить ключ без подбора, файл /sys/kernel/debug/network_sysrq_magic, в котором записан ключ, доступен на чтение всем пользователям системы.