CVE-2025-53092CVE-2025-53092是Strapi开源无头内容管理系统(Headless CMS)中存在的一个CORS(跨域资源共享)配置错误漏洞。该漏洞存在于Strapi 5.20.0之前的默认安装版本中。默认配置下,Strapi会将HTTP请求中的Origin头原样反射回Access-Control-Allow-Origin响应头中,而未进行任何验证或白名单过滤。这种不安全的配置使得任何外部恶意网站都可以向Strapi后端API发送携带用户凭证的跨域请求。攻击者可以通过在不同源(例如不同端口)托管恶意网站,利用浏览器自动携带Cookie等凭证的特性,窃取用户敏感数据或执行未授权操作。该漏洞的CVSS 3.1评分为6.5分,属于中危级别,主要影响机密性(高),对完整性和可用性无影响。该漏洞需要用户交互(如访问恶意网站)才能触发,但无需认证即可利用。Strapi官方已在5.20.0版本中修复了此问题,建议所有使用受影响版本的用户尽快升级。由于Strapi作为流行的开源CMS被广泛应用于各类网站和应用的内容管理,该漏洞可能影响大量部署实例,数据泄露风险较高。
CORS(Cross-Origin Resource Sharing,跨域资源共享)是浏览器实施的一种安全机制,用于控制不同源之间的资源访问。服务器通过Access-Control-Allow-Origin响应头来声明哪些外部域可以访问其资源。
在Strapi 5.20.0之前的默认安装中,服务器端的CORS中间件存在配置缺陷:当接收到带有Origin头的跨域请求时,Strapi直接将Origin头的值反射到Access-Control-Allow-Origin响应头中,而没有进行任何域名白名单验证或来源校验。
正常的CORS安全配置应当是:服务器预先定义一个可信域名白名单,仅当请求的Origin头匹配白名单中的域名时,才在Access-Control-Allow-Origin中返回对应的值,否则拒绝该跨域请求。
漏洞利用原理:
1. 攻击者在自己的恶意网站(attacker.com)上编写JavaScript代码
2. 该代码使用fetch()或XMLHttpRequest向目标Strapi服务器(victim-strapi.com)发起跨域请求
3. 请求设置withCredentials: true,浏览器会自动附加目标站点的Cookie
4. Strapi服务器收到请求后,将attacker.com原样写入Access-Control-Allow-Origin响应头
5. 浏览器检查响应头认为请求合法,允许JavaScript读取响应内容
6. 攻击者成功窃取用户数据或以用户身份执行API操作
此漏洞的危害在于:即使目标API需要认证,由于浏览器自动携带Cookie,攻击者可以在用户已登录的情况下冒充用户访问API,获取敏感数据如用户信息、API Token、内容数据等。