CVE-2026-41322该漏洞存在于Astro的Node适配器@astrojs/node中。在10.0.5版本之前,当对_astro路径下的静态资源(如JS/CSS)发送带有畸形的If-Match头的请求时,服务器会返回500错误而非预期的412错误。由于该错误响应被设置了长达一年的缓存时间,导致后续对该资源的所有请求(无论头部如何)都会被缓存拦截并返回5xx错误,从而造成服务不可用,直到缓存过期。
漏洞的核心在于服务器处理HTTP条件请求(If-Match)时的异常处理不当以及缓存头配置错误。通常情况下,If-Match用于验证资源的实体标签,若不匹配应返回412状态码。在受影响版本中,当攻击者构造特定的畸形请求头时,服务端逻辑崩溃并返回500错误。更为严重的是,该错误响应携带了Cache-Control头,指示客户端或中间代理(如CDN)缓存该响应长达一年。攻击者利用这一机制,可以通过一次请求污染缓存。由于静态资源(JS/CSS)对网站渲染至关重要,一旦这些资源被缓存为500错误,将导致所有访问该页面的用户无法加载关键文件,从而引发拒绝服务。