Локальная root-уязвимость в реализации SCTP в ядре Linux

В реализации протокола SCTP, предлагаемой в ядре Linux, выявлена уязвимость (CVE-2019-8956), потенциально позволяющая локальному пользователю получить root привилегии в системе (выполнить код в контексте ядра). Прототип эксплоита пока не подготовлен.

Проблема вызвана ошибкой в коде функции sctp_sendmesg(), которая позволяет через манипуляцию с локально открытым сокетом создать условия для обращения к уже освобождённой области памяти (use-after-free). В частности, проблема проявляется при обработке списка ассоциаций получателей, привязанных к сообщению, отправленному по нескольким адресам в режиме SCTP_SENDALL. В случае удаления ассоциации во время перебора продолжается обработка повреждённого списка, в то время как в ранее используемой для элементов списка памяти могут находиться уже другие структуры ядра.

Проблема проявляется начиная с ядра 4.17 и исправлена в обновлениях 4.20.8 и 4.19.21, а также в тестовом выпуске 5.0rc6. Уязвимость не затрагивает дистрибутивы с версией ядра меньше 4.17, например, проблеме не подвержены Debian (кроме тестовых веток sid и buster), SUSE/openSUSE и RHEL/CentOS. Обновления пакетов уже выпущены для Arch Linux и Fedora. В Ubuntu 18.10 применяется ядро 4.18 и обновление пока недоступно.

Источник: OpenNET