CVE-2025-64525CVE-2025-64525是Astro web框架中的一个中危安全漏洞,影响版本2.16.0至5.15.5(不包含5.15.5)。该漏洞存在于使用on-demand渲染模式的Astro应用中,根源在于请求头x-forwarded-proto和x-forwarded-port被直接用于构建URL而未经过适当消毒处理。攻击者可以通过精心构造的HTTP请求头绕过中间件保护的路由,发动缓存投毒导致拒绝服务(DoS),发起服务端请求伪造(SSRF)攻击,污染URL导致潜在的存储型跨站脚本(SXSS),以及绕过Web应用防火墙(WAF)的安全检测。由于该漏洞利用无需认证且可远程触发,构成了严重的安全风险。建议受影响用户尽快升级到5.15.5或更高版本以修复此问题。
Astro框架在处理HTTP请求时,存在请求头注入漏洞。在packages/astro/src/core/app/node.ts文件的第97行和第121行,代码直接使用x-forwarded-proto和x-forwarded-port请求头来构建URL对象,而没有对这些用户可控的输入进行充分的验证和消毒。具体问题包括:1) x-forwarded-proto头可能被攻击者设置为非预期的协议值(如data:或javascript:),导致URL解析异常或SSRF攻击;2) x-forwarded-port头可被篡改,影响URL的端口部分;3) 当存在CDN或反向代理时,这些头部的污染可导致缓存投毒,使恶意内容被缓存并分发给其他用户;4) 污染的URL可能绕过基于路径的访问控制,实现路由绕过。在on-demand渲染模式下,Astro使用node adapter处理请求,该适配器直接信任代理传递的请求头,使得攻击者可以在客户端直接构造恶意请求头。攻击者通过发送包含伪造x-forwarded-proto和x-forwarded-port头的HTTP请求,即可触发上述安全问题。