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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-55182 — Анализ на основе CodeQL уязвимости загрязнения прототипа CVE-2025-55182 в React Server Components, с POC-эксплойтом и статическими запросами обнаружения для небезопасного обхода свойств. | Kitploit
Инструменты/GitHubGitHub/klassiker/cve-2025-55182
Статический анализАнализ уязвимостейАнализ КодаВеб-безопасностьСтатьи и ИсследованияОбучение и Образование
GitHubklassiker/cve-2025-55182

CVE-2025-55182

Анализ на основе CodeQL уязвимости загрязнения прототипа CVE-2025-55182 в React Server Components, с POC-эксплойтом и статическими запросами обнаружения для небезопасного обхода свойств.

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

Популярное

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

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

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

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

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

CVE-2025-55182

Уязвимое приложение

Сборка и запуск:

root@kitploit:~
docker compose build
docker compose run --rm --entrypoint 'npm install' node
docker compose run --rm --entrypoint 'npm run build' node
docker compose up

POC (из https://github.com/msanft/CVE-2025-55182):

root@kitploit:~
node poc.js

Эксперименты с unbundled:

root@kitploit:~
yarn --immutable

node --conditions react-server app.js

CodeQL

Клонируйте facebook/react и создайте unbundled:

root@kitploit:~
yarn --immutable

yarn cross-env RELEASE_CHANNEL=experimental node ./scripts/rollup/build.js react-server-dom-webpack/ --type=NODE_DEV

cp ./build/node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js \
    codeql/${version}/

Подготовьте CodeQL:

root@kitploit:~
codeql database create db -l javascript -s codeql

cd queries && codeql pack install

codeql query run ./queries/PrototypeTraversal.ql -d db

TODO

  • Добавьте запрос для поиска Promise.resolve(userData)
    • должен находить все асинхронные функции, которые разрешаются с помощью пользовательского объекта
    • это непосредственное место проблем с выполнением кода
  • Добавьте запрос для поиска await non-native-promise
    • должен находить все await функций, которые не возвращают нативное обещание
    • вызывающий может ошибочно использовать await на методе, который (иногда) возвращает необработанные данные

Результаты

Он выявил исправленное использование в getOutlinedModel (добавлен hasOwnProperty.call) и удалённое в createModelResolver (теперь fulfillReference).

filenamesourcesink
./19.2.0/react-server-dom-webpack-server.node.unbundled.development.jsparentObject[reference[key]]parentObject[reference[key]]Небезопасный обход прототипа: Переменная 'parentObject' обновляется собственным свойством внутри цикла.
./19.2.0/react-server-dom-webpack-server.node.unbundled.development.jsparentObject[reference[key]]parentObject[reference[key]]Небезопасный обход прототипа: Переменная 'parentObject' обновляется собственным свойством внутри цикла.
./19.2.0/react-server-dom-webpack-server.node.unbundled.development.jsvalue[path[i]]value[path[i]]Небезопасный обход прототипа: Переменная 'value' обновляется собственным свойством внутри цикла.
./tests.jsvalue[path[i]]cНебезопасный обход прототипа: Переменная 'value' обновляется собственным свойством внутри цикла.
./tests.jsvalue[path[i]]cНебезопасный обход прототипа: Переменная 'value' обновляется собственным свойством внутри цикла.
./tests.jsvalue[path[i]]value[path[i]]Небезопасный обход прототипа: Переменная 'value' обновляется собственным свойством внутри цикла.
./vuln.jsparentObject[reference[key]]parentObject[reference[key]]Небезопасный обход прототипа: Переменная 'parentObject' обновляется собственным свойством внутри цикла.
./vuln.jsvalue[path[i]]value[path[i]]Небезопасный обход прототипа: Переменная 'value' обновляется собственным свойством внутри цикла.

Я не знаю, почему первый и второй указывают на одно и то же место, а выделенный в vuln.js — нет.

Примеры

В codeql/tests.js есть эти три варианта:

root@kitploit:~
var value = {};
for (let i = 0; i < path.length; i++) {
  value = value[path[i]] // VarAccess
}

var value = {};
for (let i = 0; i < path.length; i++) {
  let c = value[path[i]] // VarDecl
  value = c
}

var value = {};
for (let i = 0; i < path.length; i++) {
  let c
  c = value[path[i]] // use VarRef
  value = c
}

Ссылка: https://codeql.github.com/docs/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-javascript-and-typescript-programs/

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