项目状态:实验性 / 概念验证
本仓库作为一个受控的研究环境和概念验证(PoC)框架,用于分析 CVE-2025-55182。它展示了 Next.js Server Actions 上下文中的原型污染漏洞,特别针对不安全的递归合并操作。
核心漏洞存在于 Next.js Server Action(syncConfiguration)中实现的一个自定义 deepMerge 工具函数。该函数缺乏对特殊对象键(特别是 __proto__ 和 constructor)的充分清理。这一疏忽允许未经身份验证的攻击者向全局 Object.prototype 注入任意属性。
在服务器端 Node.js 运行时中,成功的原型污染可能导致:
isAdmin)或配置设置。toString 或 valueOf)破坏应用稳定性。child_process 或模板引擎中的工具)链式利用,实现任意代码执行。lab/next-app/:一个存在漏洞的 Next.js 15 应用,用于模拟安全缺陷。
src/app/actions.jsx:包含易受攻击的 deepMerge 实现的服务器端代码。exploits/:用于测试和利用的 Python 自动化脚本。
rce.py:自动化注入恶意 JSON 载荷以演示服务器状态污染的脚本。get-shell.py:探索 RSC Flight 协议反序列化向量的高级 PoC。docs/PAYLOADS.md:包含各种 JSON 载荷的参考文档,用于手动测试和分析。您可以使用 Docker(推荐)或本地运行该实验室。
确保已安装 Docker 和 Docker Compose。
docker-compose up --build
应用将在 http://localhost:3000 可访问。
需要 Node.js 20+。
cd lab/next-app
npm install
npm run dev
应用将在 http://localhost:3000 可访问。
http://localhost:3000。docs/PAYLOADS.md 中选择一个载荷(例如,基本载荷)。提供的 Python 脚本允许以编程方式验证漏洞。
前提条件: 从浏览器网络标签页(查找 POST 请求头 Next-Action)或服务器终端输出中获取 Next-Action ID。
docker exec -it exploit-runner bash
export ACTION_ID="your_action_id_here"
python3 rce.py "id"
pip install -r exploits/requirements.txt
export ACTION_ID="your_action_id_here"
python3 exploits/rce.py "id"
注意:rce.py 脚本配置为演示成功的状态污染。完整的 shell 执行取决于具体的环境工具,可能会有所不同。
本项目仅用于教育目的和安全研究。
请勿在未获得明确书面授权的系统上使用此处提供的代码或技术。作者不对因使用本材料而导致的任何误用或损害负责。