Sploitus

Exploit for cve-2024-21626 CVE-2024-21626

kitploit · 2026-08-27

Exploit Code

MARKDOWN60 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-DORSER-CVE-2024-21626
# CVE-2024-21626

## Обзор

Этот репозиторий содержит примеры кода для приложения, уязвимого к CVE-2024-21626, а также eBPF-гаджет для обнаружения попыток эксплуатации.

Этот репозиторий был создан в рамках этой записи в блоге.

**Гаджет, используемый для обнаружения данной уязвимости, предназначен только для демонстрационных целей. Он не является полноценным средством обнаружения CVE-2024-21626.**

## Описание уязвимости

CVE-2024-21626 — это уязвимость в среде выполнения контейнеров runc, присутствующая в версиях до v1.1.12. Она основана на том, что runc не закрывает «утекший» файловый дескриптор своевременно при создании или выполнении команд внутри контейнера, в результате чего контейнер наследует этот файловый дескриптор и получает доступ к файловой системе хоста.

Существует несколько способов эксплуатации этой уязвимости. Этот репозиторий показывает, как данную уязвимость можно эксплуатировать во время выполнения.

Подробнее можно почитать здесь.

## Использование

Для работы этой демонстрации убедитесь, что на вашей машине установлена версия runc <= 1.1.11.

`leaky-app` — это приложение на Go, которое создаёт символическую ссылку на потенциально утекший файловый дескриптор. Для сборки образа Docker:

root@kitploit:~
    
    
    make leaky-app
    

Чтобы собрать eBPF-гаджет, вам понадобится инструмент [`ig`]. Собрать гаджет можно с помощью:

root@kitploit:~
    
    
    make gadget
    

После сборки обоих компонентов запустите гаджет командой:

root@kitploit:~
    
    
    IG_EXPERIMENTAL=true sudo -E ig run trace-symlink:latest
    

Откройте другой терминал и запустите контейнер leaky-app:

root@kitploit:~
    
    
    docker run --rm --name leaky-app leaky-app
    

Вы должны увидеть, как гаджет выводит контейнер, вызвавший системный вызов symlink.

## Отказ от ответственности

Этот репозиторий содержит демонстрационное приложение, предназначенное для демонстрации обнаружения CVE-2024-21626. Важно отметить, что эта демонстрация предназначена исключительно для образовательных целей и не должна рассматриваться как практическое средство обнаружения. Механизмы обнаружения, реализованные в этой демонстрации, не охватывают все сценарии и не отражают всей сложности обнаружения данной уязвимости.