Sploitus

Exploit for CVE-2025-55183-poc

kitploit · 2026-09-03

Exploit Code

MARKDOWN66 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-KIMTRUTH-CVE-2025-55183-POC
# CVE-2025-55183-poc – Раскрытие исходного кода серверных функций React Server Components Next.js

Этот репозиторий содержит инструменты для обнаружения уязвимости раскрытия исходного кода в **Next.js React Server Components (RSC)** / **Server Actions** , отслеживаемой как `CVE-2025-55183`.

В уязвимых приложениях специально сформированный HTTP-запрос к серверной функции может привести к тому, что сервер **вернет полный исходный код JavaScript** этой функции, когда ссылка преобразуется в строку (например, через шаблонные литералы или неявное приведение типов в запросах к базе данных).

Исправление React добавляет переопределение `toString()` для серверных ссылок, которое возвращает постоянную строку-заглушку вместо реального тела функции. Приложения, работающие на старых сборках, все еще могут утекать исходный код, если серверные ссылки прямо или косвенно преобразуются в строку и отражаются обратно клиенту.

> ⚠️ **Юридическое уведомление:**  
>  Эти инструменты предназначены для тестирования безопасности и исследований на системах, которыми вы владеете или на тестирование которых у вас есть явное разрешение. Несанкционированное сканирование или эксплуатация может быть незаконной.

* * *

## Содержимое репозитория

  * `CVE-2025-55183.yaml`  
Шаблон Nuclei, который: 
    1. Обнаруживает файлы `_next/static/chunks/*.js`
    2. Извлекает из этих чанков потенциальные идентификаторы серверных действий
    3. Отправляет RSC-запросы, нацеленные на каждое действие
    4. Помечает ответы, которые, по-видимому, содержат исходный код серверных функций



* * *

## Краткое описание уязвимости

  * **ID:** CVE-2025-55183

  * **Компонент:** React Server Components / Server Actions в приложениях Next.js

  * **Влияние:** Раскрытие серверного исходного кода JavaScript

  * **Основная причина:**  
Серверные ссылки (Server Functions) не переопределяли `toString()`. Когда такая ссылка передавалась в качестве аргумента коду, который преобразовывал её в строку, её полный исходный код мог быть возвращён клиенту (например, через путь ошибки, логирование или логику построения запросов).

  * **Исправление (вышестоящее):** React теперь устанавливает дескриптор `toString` для серверных ссылок, который возвращает постоянную строку-заглушку, например:




root@kitploit:~
    
    
      function () { [omitted code] }
    

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

Подробнее об изменениях в React см.:

  * Коммит React: `894bc73cb493487c48d57f4508e6278db58e673a`
  * Блог React: “Denial of service and source code exposure in React Server Components”



* * *

## Обнаружение с помощью Nuclei

### Требования

  * Nuclei v3+
  * Сетевой доступ к целевому приложению Next.js