Уязвимость в rt-ядре RHEL и Debian, позволяющая выполнить команду SysRq, отправив пакет ICMP
В ядре kernel-rt c реализацией режима реального времени для Red Hat Enterprise Linux выявлена проблема с безопасностью, позволяющая организовать атаку по выполнению произвольных команд SysRq через отправку специально оформленных пакетов ICMP echo. Проблема связана с недоработкой в реализации функции отправки команд SysRq по сети, которая не была принята в состав основного ядра, но вошла в состав пакета kernel-rt с набором патчей PREEMPT_RT. Патч также используется в пакетах с ядром для некоторых других дистрибутив, например проблема присутствует в ядре из состава Debian. Обычное (не "-rt") ядро RHEL проблеме не подвержено.
Патч отправки 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, в котором записан ключ, доступен на чтение всем пользователям системы.