CVE-2026-34715Ewe是基于Gleam语言的Web服务器。在3.0.6版本之前,其`encode_headers`函数存在安全缺陷,直接将用户控制的数据插入原始HTTP响应头字节流中,且未对CRLF(\r\n)序列进行验证或剥离。如果应用程序将用户输入用于响应头(如根据请求参数设置Location重定向头),攻击者可注入任意HTTP响应内容,导致HTTP响应拆分、缓存中毒及潜在的跨站脚本攻击。尽管Ewe在请求解析器中验证了CRLF,但在响应头编码器中缺乏同等保护。该问题已在3.0.6版本中修复。
该漏洞的根本原因在于`src/ewe/internal/encoder.gleam`文件中的`encode_headers`函数直接进行字符串插值生成HTTP协议数据,而未对输出内容进行转义。当应用程序将未经净化的用户输入(如URL查询参数)直接传递给响应头字段时,攻击者可以注入`%0d%0a`(即CRLF字符)。这会欺骗HTTP解析器,使其认为当前头部结束,从而允许攻击者注入伪造的头部或响应体。这种机制被称为HTTP响应拆分。由于HTTP响应被攻击者控制,如果经过缓存服务器(如CDN或代理),恶意响应可能被缓存,导致后续访问该URL的普通用户受到攻击(缓存投毒),从而窃取敏感信息或执行恶意脚本。