vm.runInThisContext в вакууме мы уже помучалитеперь нормальный стенд под живого человека
навайбкодил отдельную лабу:
https://github.com/ghe770mvp/RSC_Vuln_Lab
тут вместо академического «давайте сразу дергать vm» — реальный серверный гаджет, похожий на то, что вы увидите в проде:
* есть
server.js, который дергает уязвимый decodeAction из react-server-dom-webpack 19.2.0 без патчей* есть
app/server-actions.js с уязвимым server action generateReport* есть
scripts/report.js, который изображает генератор отчётов и принимает аргументы командной строкитипичный бизнес-флоу уровня «сделай мне отчётик по проекту в pdf»
под капотом — классика жанра:
child_process.exec + конкатенация строквсё как мы любим в больших корпорациях
дальше магия rsc:
*
decodeAction по уязвимому протоколу проглатывает наши $ACTION_** мы подсовываем
generateReport параметры вроде pdf & whoami* отчёт внезапно «генерится» вместе с
whoami на хостеникаких искусственных
vm#runInThisContext, никаких «специальных учебных серверов»ровно тот уровень идиотизма, который легко встретить в enterprise:
«ну мы же всего лишь обёртку над
exec написали, что тут может пойти не так»лаба нужна для трёх вещей:
1. показать, как RSC-RCE может встраивается в реальный код
2. дать удобный стенд для отладки и анализа протокола / формата payload’ов
3. дать материал под нормальные демо
если хотите ресерчить CVE-2025-55182 не в вакууме, а на почти IRL-сценарии берите это репо и гоняйте, меняйте гаджеты, логами обмазывайтесь.
приятных снов.
👾
