
Концептуальное доказательство и образовательный отчёт, демонстрирующие локальное повышение привилегий до root через членство в группе LXD по умолчанию на Ubuntu Server, со скриптами обнаружения и смягчения последствий.
Повышение локальных привилегий до root через членство в группе lxd по умолчанию
и пакет lxd-installer в Ubuntu.

Демонстрация выполняется на AWS EC2 Ubuntu Server 26.04
Ошибка в том, что установка Ubuntu Server 26.04 по умолчанию молча предоставляет
основному пользователю членство в группе lxd, которая согласно модели доверия LXD
равнозначна root без пароля, при этом преподносится как безобидная возможность
«управления контейнерами». Более того, этот непривилегированный пользователь может
самостоятельно установить и настроить LXD без каких-либо дополнительных привилегий,
так что группа, эквивалентная root, становится доступна от начала до конца без
необходимости ввода пароля sudo.
Хост уязвим, если выполняются оба условия: непривилегированный пользователь состоит
в группе lxd, и доступен путь LXD, запущенный от root (установленный демон или
сокет lxd-installer).
Проверьте и выполните poc/check-vulnerable.sh:
cd poc && chmod +x check-vulnerable.sh && ./check-vulnerable.sh
cd poc && chmod +x exploit.sh && ./exploit.sh # запускать от непривилегированного пользователя в группе lxd
Смотрите poc/README.md для требований, ожидаемого вывода,
ручного воспроизведения и очистки.
Исправление должно быть на стороне дистрибутива: Ubuntu Server не должен помещать
основного пользователя в группу lxd по умолчанию. Эта группа эквивалентна root,
поэтому она заслуживает такого же явного и осознанного предоставления, как sudo,
а не молчаливого значения по умолчанию. Требование пароля sudo перед запуском
lxd-installer по запросу также закрыло бы вектор до установки, но само по себе
оставляет уже установленный LXD уязвимым.
Пока это не реализовано, удалите все непривилегированные учётные записи из группы lxd.
Изменение вступит в силу при следующем входе участника в систему.
getent group lxd # вывести текущих участников
sudo gpasswd -d "$USER" lxd # удалить одного участника; повторить для каждого
Затем относитесь к членству в lxd как к sudo без пароля: предоставляйте его только
тем пользователям, которым вы уже доверяете root.
swing) — STAR Labs SG Pte. Ltd.Мы ответственно сообщили об этой проблеме команде безопасности Ubuntu, и после их рассмотрения было решено, что это не является уязвимостью безопасности.
Данный материал предоставлен исключительно для авторизованных исследований безопасности, тестирования и образовательных целей. Его следует использовать только на системах, которыми вы владеете, или на которые получили явное разрешение на оценку. Авторы не несут ответственности за любое неправомерное использование, ущерб или последствия, возникающие в результате использования этой информации.