
针对 CVE-2025-55182(React2Shell)的可运行概念验证(PoC)——通过 React Server Components 在 Next.js 15.0.0 中实现未认证远程代码执行
⚠️ 仅供教育用途
本仓库的创建严格限于教育和研究目的。它演示了 React Server Components (Next.js) 中的一个严重漏洞,以帮助开发者理解相关风险以及更新依赖的重要性。
请勿在生产环境中使用此代码,或将其用于您不拥有的系统。
本项目复现了 CVE-2025-55182(又称“React2Shell”),这是一个影响 Next.js 应用中 React Server Components 的远程代码执行 (RCE) 漏洞。
multipart/form-data 请求,利用 React Server Components 的反序列化逻辑在服务器上执行任意 JavaScript 代码。
app/page.js:包含交互式利用仪表盘。此客户端组件允许您直接在浏览器中运行 RCE 命令。app/actions.js:包含一个标准的服务器操作。漏洞存在于该操作执行之前框架的解析逻辑中。exploit.js:一个独立的 Node.js 脚本,用于以编程方式演示该利用。克隆仓库:
git clone https://github.com/pkrasulia/CVE-2025-55182-NextJS-RCE-PoC.git
cd react-cve-test
(可选)使用正确的 Node.js 版本:
nvm use
安装依赖(这将安装存在漏洞的版本):
npm ci --legacy-peer-deps
# OR
npm install --force
启动开发服务器:
npm run dev
服务器应在 http://localhost:3000 上启动。
http://localhost:3000。whoami、ls -la 或 cat package.json)。您可以直接在终端中运行利用脚本:
# Basic usage
node exploit.js http://localhost:3000 "whoami"
# Open Calculator (Linux) - use '&' to run in background
node exploit.js http://localhost:3000 "gnome-calculator &"
要在您自己的项目中修复此漏洞:
npm install next@latest react@latest react-dom@latest
作者对此信息的任何滥用概不负责。本项目旨在帮助安全研究人员和开发者提高其应用程序的安全性。