Эксплойт-доказательство концепции для CVE-2025-55182, критической неаутентифицированной RCE в React Server Components. Включает автоматизированный Python-эксплойт, технический анализ, правила обнаружения и настройку лабораторной среды для авторизованного тестирования безопасности.
Полноценный proof-of-concept эксплойт и образовательный ресурс для CVE-2025-55182, критической уязвимости удалённого выполнения кода, затрагивающей React Server Components, с оценкой CVSS 10.0.
ТОЛЬКО ДЛЯ ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ И АВТОРИЗОВАННОГО ТЕСТИРОВАНИЯ
Этот инструмент предоставляется исключительно для образовательных целей и авторизованного тестирования безопасности. Неавторизованный доступ к компьютерным системам является незаконным согласно различным законам, включая Закон о компьютерном мошенничестве и злоупотреблениях (CFAA) в США и аналогичное законодательство по всему миру.
Вы обязаны:
Автор и участники:
Используя этот инструмент, вы подтверждаете, что понимаете и соглашаетесь с этими условиями.
React2Shell — это критическая уязвимость, обнаруженная в декабре 2025 года, которая затрагивает React Server Components (RSC) и фреймворки, реализующие их, особенно Next.js. Уязвимость позволяет неаутентифицированное удалённое выполнение кода с помощью одного специально сформированного HTTP-запроса.
Этот репозиторий содержит:
| Поле | Детали |
|---|---|
| Идентификатор CVE | CVE-2025-55182 |
| Оценка CVSS | 10.0 (критическая) |
| Вектор атаки | Сетевой |
| Сложность атаки | Низкая |
| Требуемые привилегии | Отсутствуют |
| Взаимодействие с пользователем | Не требуется |
| Воздействие | Полная компрометация системы (RCE) |
| Дата раскрытия | Декабрь 2025 г. |
create-next-app, эксплуатируемыУязвимые версии:
react-server-dom-webpack: 19.0.0, 19.1.0, 19.1.1, 19.2.0react-server-dom-parcel: 19.0.0, 19.1.0, 19.1.1, 19.2.0react-server-dom-turbopack: 19.0.0, 19.1.0, 19.1.1, 19.2.0Исправленные версии:
Уязвимые версии:
Исправленные версии:
Уязвимость находится в функции requireModule в логике десериализации React Server Components:
function requireModule(metadata) {
var moduleExports = __webpack_require__(metadata[0]);
return moduleExports[metadata[2]]; // VULNERABLE LINE - Prototype chain traversal
}
Уязвимость позволяет атакующим обходить прототипную цепочку JavaScript через протокол React Flight, получая доступ к конструктору Function через свойства вида constructor.constructor, что приводит к выполнению произвольного кода.
__proto__ для создания самореферентной структурыconstructor.constructor, чтобы добраться до Function()child_process.execSync()┌─────────────────────────────────────────────────────────────┐
│ Attacker sends multipart/form-data with Next-Action header │
└──────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Server deserializes payload via React Flight protocol │
└──────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Fake chunk object with __proto__ pollution processed │
└──────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Blob handler invokes _formData.get(_prefix + id) │
└──────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Resolves to Function("malicious_code") │
└──────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Arbitrary code executed with Node.js process privileges │
└─────────────────────────────────────────────────────────────┘
requests# Clone the repository
git clone https://github.com/yourusername/react2shell-poc.git
cd react2shell-poc
# Install dependencies
pip install -r requirements.txt
# Make script executable (Linux/macOS)
chmod +x react2shell.py
requests>=2.31.0
urllib3>=2.0.0
python3 react2shell.py
╔═══════════════════════════════════════════════════════════╗
║ React2Shell (CVE-2025-55182) PoC ║
║ CVSS 10.0 - Critical RCE ║
║ ║
║ Affected: React 19.0.0, 19.1.0, 19.1.1, 19.2.0 ║
║ Next.js ≥14.3.0-canary.77, 15.x, 16.x ║
║ ║
║ Cerberus Secure - Lab Use Only ║
╚═══════════════════════════════════════════════════════════╝
[?] Enter target information:
Host (e.g., localhost or 192.168.1.100): localhost
Port (e.g., 3000): 3000