
Intentionally vulnerable Next.js corporate landing page demonstrating CVE-2025-55182, a JSON injection leading to RCE/SSRF via unsafe deserialization in React Server Components.
This repository contains an example of a multi-page corporate landing page built with Next.js 15.0.0 + React 19.0.0. The site mimics a structure similar to t1.ru: home, products, cases, media, about, contacts. We use React Server Components (RSC), Tailwind CSS, Framer Motion for animations, lucide-react for icons, shadcn/ui for badges, and Prisma with SQLite for the database (the contact form saves messages).
The project is intentionally made vulnerable to demonstrate PT-2025-48817 — JSON injection through the contact form, which can lead to RCE/SSRF due to unsafe deserialization in react-server-dom-webpack
Clone the repo:
git clone <repo-url>
cd <directory>
Install dependencies:
npm install
If you encounter version issues (e.g., build errors), try:
npm install --legacy-peer-deps
Or update Node.js:
sudo apt remove --purge nodejs npm -y
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt update
sudo apt install -y nodejs
node -v # should be v20.x.x
rm -rf node_modules package-lock.json
npm install
Initialize Prisma (if needed from scratch):
npx prisma init
npx prisma migrate dev --name init
In .env it should contain: DATABASE_URL="file:./prisma/dev.db".
Dev mode:
npm run dev
Open http://localhost:3000.
Build and production:
npm run build
npm run start
View the database:
npx prisma studio
{ "type": "system", "payload": { "action": "ls" } }, then exec will run the command. This simulates a deserialization attack for RSC