Новости и события » Hi-Tech » Уязвимость в systemd, которую можно использовать для блокирования работы системы

Уязвимость в systemd, которую можно использовать для блокирования работы системы

В systemd найдена уязвимость (CVE-2019-6454), позволяющая вызвать крах управляющего процесса инициализации (PID1) через отправку непривилегированным пользователем специально оформленного сообщения через шину D-Bus. Разработчики из Red Hat также не не исключают возможность применения уязвимости для организации выполнения кода с привилегиями root, но окончательно возможность такой атаки пока не определена.

Атакующий может манипулируя размером сообщения сместить указатель за границы выделенной для стека памяти, обойдя защиту "stack guard-page" (подстановка на границе со стеком страниц памяти, обращение к которым приводит к генерации исключения (page-fault)). Судя по всему возможно смещение указателя только на неиспользуемые страницы памяти (unmapped), что позволяет атакующему только инициировать крах PID1 с последующим переходом ядра Linux в состояние "panic" (в случае краха обработчика PID 1, происходит крах всей системы). Следует отметить, что в 2014 году автор системной библиотеки musl выделял среди основных архитектурных проблем systemd излишнюю раздутость обработчика PID1 и ставил под сомнение целесообразность реализации обработчика DBus API на уровне PID1.

В systemd устанавливается обработчик сигналов, пытающийся перехватить крахи процесса PID1 (segmentation fault) и запускающий shell для восстановления. Но так как в ходе атаки обращение производится к неотраженным страницам памяти (unmapped), ядро не может вызвать данный обработчик сигнала и просто завершает процесс с PID 1, что, в свою очередь, приводит к невозможности продолжения дальнейшей работы и переходу в состояние "panic", требующего перезапуска системы.

Обновления пакетов с устранением уязвимости опубликованы для SUSE/openSUSE, Fedora и частично в Debian (только в Debian Stretch). Проблема остается неисправленной в RHEL и Ubuntu. Успешная атака продемонстрирована в Ubuntu 18.10 с systemd v239 и в CentOS 7.6 с systemd v219. В качестве обходного пути защиты может использоваться сборка c включением опции "-fstack-clash-protection" в GCC, которая по умолчанию применяется в Fedora 28 и 29.


Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх