
В мире Linux нашли парочку неприятных багов — один позволяет почти без усилий получить к системе доступ root, а второй взламывает её через XML с возможностью выполнения произвольного кода. Разбираемся, что к чему.
Уязвимости в libblockdev и PAM: получение прав root
Специалисты Qualys обнаружили две критические уязвимости:
- в библиотеке libblockdev (CVE-2025-6019) — позволяет повысить привилегии до root через udisks,
- в PAM (CVE-2025-6018) — даёт аналогичные возможности в openSUSE и SUSE Linux Enterprise.
Как это работает. Утилита udisks, которая используется в большинстве дистрибутивов Linux, по умолчанию разрешает операции с накопителями только пользователям с доступом allow_active (локальные сеансы). Однако злоумышленник может обойти это ограничение двумя путями:
- Через systemctl, создав пользовательский сервис, который polkitd воспримет как локальный сеанс (требуется активный локальный пользователь).
- Через уязвимость в PAM (актуально для openSUSE и SUSE), которую обнаружили в ходе анализа уязвимости в libblockdev. В этом случае локальный доступ имитирует подмена переменных XDG_SEAT и XDG_VTNR в ~/.pam_environment. То есть уязвимость позволяет любому пользователю, в том числе подключившемуся по SSH, выполнять операции в контексте "allow_active".
Создается loop-устройство с XFS-образом, содержащим SUID-файл. При изменении размера ФС libblockdev временно монтирует её без nosuid/nodev, позволяя выполнить вредоносный код. Обновления пока выпущены не для всех дистрибутивов — проверить статус можно на страницах Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo и Arch (1, 2).
Временное решение: изменить правило polkit, заменив allow_active=yes на auth_admin в файле /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy.
Критические уязвимости в libxml2: угроза выполнения произвольного кода
В популярной библиотеке libxml2, используемой для обработки XML-данных в проектах GNOME и сотнях Linux-пакетов (например, в 800+ компонентах Ubuntu), обнаружено пять уязвимостей, две из которых позволяют выполнить произвольный код.
Ключевые уязвимости:
- CVE-2025-6170 — вызвана переполнением буфера в утилите xmllint, которое возникает за счет использования небезопасной функции strcpy() без проверки длины входных данных. Атакующий должен контролировать аргументы, передаваемые в xmllint. Патч пока не выпущен.
- CVE-2025-6021 — вызывается целочисленным переполнением в функции xmlBuildQName(), записывая, как следствие, данные за пределами выделенного буфера. Исправления включены в выпуск libxml2 2.14.4.
К дополнительным уязвимостям относятся:
- CVE-2025-49794: аварийное завершение из-за обращения к уже освобождённой области памяти в функции xmlSchematronGetNode,
- CVE-2025-49795: разыменование NULL-указателя в xmlXPathCompiledEval,
- CVE-2025-49796: неправильная обработка типов (Type Confusion) в функции xmlSchematronFormatReport.
Для их устранения оценивается возможность полного удаления поддержки Schematron из библиотеки.
Кроме этого, в libxslt (не поддерживаемой библиотеке) обнаружены три неисправленные уязвимости, детали которых обещают раскрыть 9, 13 июля и 6 августа 2025 года. Рекомендуем, следить за обновлениями libxml2 в нужном дистрибутиве и ограничить использование xmllint для обработки ненадёжных данных.