hujiaozhuzhu/CVE-2025-29927__Next.js

GitHub: hujiaozhuzhu/CVE-2025-29927__Next.js

针对CVE-2025-29927 Next.js中间件授权绕过漏洞的POC检测工具,用于验证目标应用是否可通过伪造x-middleware-subrequest请求头绕过认证访问受保护路由。

Stars: 0 | Forks: 0

# CVE-2025-29927 - Next.js 中间件授权绕过 POC ## 📋 概述 **CVE-2025-29927** 是 Next.js 中的一个关键安全漏洞,攻击者可以通过利用 `x-middleware-subrequest` 标头的不当处理来绕过基于中间件的授权控制。 ### 🎯 漏洞详情 | 属性 | 值 | |-----------|--------| | **CVE ID** | CVE-2025-29927 | | **CVSS 评分** | 9.8 (严重) | | **受影响版本** | Next.js 13.4.0 - 15.2.3 | | **修复版本** | Next.js 14.2.25+, 15.2.3+ | | **发现日期** | 2025年3月21日 | | **漏洞类型** | 授权绕过 | ### 🔍 技术详情 **根本原因**: Next.js 中间件错误处理 `x-middleware-subrequest` 标头,将带有此标头的请求视为内部可信的子请求,从而绕过授权检查。 **影响**: 攻击者可以在未经身份验证的情况下访问受保护的路由(如 `/admin`、`/api/sensitive`)。 ## 🚀 功能特性 - ✅ 单文件 Python 利用工具 - ✅ 自动化漏洞检测 - ✅ 批量扫描支持 - ✅ 基于Docker的易受攻击环境 - ✅ 详细的日志记录和输出 - ✅ 无外部依赖(仅 `requests`) ## 📦 安装 # 克隆仓库 git clone https://github.com/hujiaozhuzhu/CVE-2025-29927-POC.git cd CVE-2025-29927-POC # 安装依赖 pip install -r requirements.txt ## 🎯 使用方法 ### 快速开始(利用单个目标) python exploit/cve_2025_29927.py -u http://127.0.0.1:3000 ### 高级选项 # 自定义管理路径 python exploit/cve_2025_29927.py -u http://target.com -p /admin # 详细输出 python exploit/cve_2025_29927.py -u http://target.com -v # 保存结果到文件 python exploit/cve_2025_29927.py -u http://target.com -o results.txt ### 批量扫描 # 从文件扫描多个目标 python exploit/batch_scanner.py -f targets.txt # 扫描IP范围 python exploit/batch_scanner.py --range 192.168.1.0-255 ## 🏗️ 搭建易受攻击环境 ### 使用Docker(推荐) cd target docker-compose up -d 访问易受攻击的应用: `http://localhost:3000` ### 手动搭建 cd target npm install npm run dev ## 📊 漏洞检测流程 1. **正常请求**: 发送不带利用标头的GET请求 - 预期: 302/401/403 (被中间件阻止) 2. **利用请求**: 发送带有 `x-middleware-subrequest: 1` 的GET请求 - 预期: 200 (绕过中间件) - 成功: 响应包含管理内容 ## 🛡️ 缓解与防御 ### 立即行动 1. **升级Next.js** npm install next@latest # 或 npm install next@14.2.25 2. **在反向代理中阻止易受攻击的标头** location / { deny x-middleware-subrequest; # ... 其余配置 } ### 长期建议 - 实施纵深防御(多层认证) - 定期安全审计 - 保持依赖更新 - 使用Web应用防火墙(WAF) ## 📚 文档 - [漏洞分析](docs/vuln_analysis.md) - [使用指南](docs/usage_guide.md) - [防御与修复](docs/defense.md) ## 🧪 测试 ### 手动测试 # 运行漏洞测试 python exploit/cve_2025_29927.py -u http://localhost:3000 -t ### 自动化测试 # 运行测试套件 python tests/test_exploit.py ## 🔬 研究参考 - [NVD条目](https://nvd.nist.gov/vuln/detail/CVE-2025-29927) - [Next.js安全公告](https://github.com/vercel/next.js/security/advisories) - [技术分析](https://securitylabs.datadoghq.com/articles/nextjs-middleware-auth-bypass/) ## 📝 更新日志 ### v1.0.0 (2025-04-02) - 初始发布 - 单目标利用 - 批量扫描支持 - Docker易受攻击环境 - 全面的文档 ## 👥 贡献者 - [您的姓名] - 初始实现 ## 📄 许可证 此项目采用MIT许可证 - 详见 [LICENSE](LICENSE) 文件。 ## ⚠️ 法律声明 **重要**: 此工具仅用于教育和授权安全测试目的。 - 仅在您拥有或获得明确许可的测试的系统上使用 - 未经授权访问计算机系统是非法的 - 向供应商负责任地报告漏洞 - 遵循负责任披露指南 **使用此工具,您同意:** - 遵守所有适用的法律和法规 - 仅用于授权的安全测试 - 负责任地报告发现的漏洞 - 不用于恶意目的 ## 📞 报告漏洞 如果您发现此工具的问题或发现新漏洞,请负责任地报告: 1. 联系供应商(Vercel/Next.js团队) 2. 遵循负责任披露指南 3. 考虑加入漏洞赏金计划 ## 🙏 致谢 - Vercel/Next.js团队的及时披露和修复 - 安全研究社区的分析和测试 - 漏洞发现者 **记住**: 安全研究应该始终是合乎道德和合法的。用您的技能使互联网更安全! 🛡️
标签:CISA项目, CVE-2025-29927, CVSS 9.8, Docker, exploits, Maven, MITM代理, Next.js漏洞, POC, Python, Web安全, Web报告查看器, x-middleware-subrequest, 中间件授权绕过, 安全测试, 安全防御评估, 授权绕过, 攻击性安全, 无后门, 无服务器架构, 暗色界面, 漏洞复现, 漏洞验证, 网络安全, 蓝队分析, 请求拦截, 越权访问, 逆向工具, 隐私保护