В механизме обновления дистрибутива Pardus Linux обнаружена комбинация из трёх дефектов, которые вместе дают неаутентифицированному локальному злоумышленнику полный контроль над системой. Уязвимости, объединённые идентификатором CVE-2026-5140, получили оценку 9,3 балла по шкале CVSS, что соответствует категории "критический". Инцидент затрагивает пользователей турецкой версии Linux, которая широко применяется в государственных учреждениях и образовательных заведениях Турции, но может быть интересна и зарубежным специалистам по безопасности, изучающим типовые ошибки в проектировании привилегированных компонентов.
Уязвимость CVE-2026-5140
Исследователь в области безопасности Чагры Эсер (псевдоним 0xc4gr1) обнаружил, что пакет pardus-update - центральный инструмент для установки обновлений в Pardus - содержит три отдельные проблемы, которые можно объединить в одну атаку. Первая проблема - это неправильная настройка политик Polkit (PolicyKit - фреймворк для управления привилегиями в Linux). В конфигурационном файле для трёх критических действий (обновление пакетов, запуск фонового обновления и запись параметров) было установлено значение allow_any=yes. Это означает, что любой пользователь может выполнять эти действия с правами root без ввода пароля.
Вторая уязвимость - CRLF-инъекция (Carriage Return Line Feed - инъекция символов возврата каретки и перевода строки) в скрипте SystemSettingsWrite.py. Разработчики отфильтровали символ новой строки (\n), но пропустили символ возврата каретки (\r). Злоумышленник может через командную строку передать значение, содержащее \r, и тем самым добавить в конфигурационный файл новую, контролируемую строку. Третья проблема - небезопасная обработка пути к файлам APT (Advanced Package Tool - система управления пакетами) в скрипте AutoAptUpgrade.py. Этот скрипт копирует файлы .list из пути, указанного в конфигурации, в каталог /etc/apt/sources.list.d/ без проверки того, находится ли источник в доверенном месте. В результате атакующий может подменить репозиторий и установить вредоносный пакет.
Цепочка атаки выглядит следующим образом: Сначала злоумышленник, имеющий локальный доступ к системе (например, через гостевую учётную запись или скомпрометированный аккаунт), выполняет команду через pkexec (утилита для запуска программ с повышенными привилегиями через Polkit), вызывая SystemSettingsWrite.py с аргументом, содержащим символ \r. В результате в конфигурационный файл дописывается строка custom_sourcesd_path=/tmp/pwn.list, указывающая на файл, содержащий адрес вредоносного репозитория. Затем запускается AutoAptUpgrade.py, который копирует этот файл в каталог APT и выполняет обновление системы. Во время обновления пакетов из подставного репозитория устанавливается фиктивный пакет, который, например, заменяет стандартный pardus-software. В скрипте после установки (postinst) этого пакета содержится команда, устанавливающая SUID-бит (Set User ID - атрибут файла, позволяющий запускать его от имени владельца) на /bin/bash. После этого любой локальный пользователь может запустить bash с ключом -p и получить root-оболочку.
Последствия такой атаки крайне серьёзны. Злоумышленник получает полный доступ ко всем файлам, включая /etc/shadow с хешами паролей. Он может изменить системные программы, установить бэкдоры, создать скрытые учётные записи и полностью взять управление над устройством. Область поражения - не отдельный пользователь, а вся операционная система. Особенно рискуют рабочие станции в общем доступе, учебные компьютеры и серверы, где возможна регистрация нескольких локальных пользователей.
Чтобы полностью устранить угрозу, администраторам необходимо применить три исправления. Во-первых, в файле политики Polkit заменить permissive-значение allow_any=yes на auth_admin, чтобы любое привилегированное действие требовало ввода пароля администратора. Во-вторых, в скрипте SystemSettingsWrite.py добавить очистку входных данных от символов \r и \n. В-третьих, в скрипте AutoAptUpgrade.py добавить проверку, разрешающую копирование файлов .list только из доверенных каталогов, например /usr/share/pardus/. Эти меры разрывают цепочку атак и предотвращают возможность эскалации.
Важно подчеркнуть, что каждая из трёх уязвимостей по отдельности уже представляла бы проблему, но вместе они образуют критический вектор. Данный случай служит наглядным примером того, как, на первый взгляд, незначительные недочёты в конфигурации и обработке ввода могут привести к полному компрометации системы. Организациям, использующим Pardus Linux, следует немедленно проверить свои системы на наличие уязвимых версий пакета pardus-update и применить описанные исправления. Мониторинг появления неавторизованных репозиториев APT и подозрительного повышения привилегий также должен стать частью повседневных процедур защиты. Исследование Чагры Эсера ещё раз напоминает о важности безопасных значений по умолчанию и тщательной валидации всех внешних данных в привилегированных сценариях.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2026-5140
- https://www.usom.gov.tr/bildirim/tr-26-0131
- https://nullsecurityx.medium.com/local-privilege-escalation-in-pardus-linux-how-three-bugs-chain-into-a-full-root-shell-b082b2ec5666