CVE-2026-42554Go Fiber是一款流行的Go语言Web框架。在2.52.12和3.1.0版本之前,该框架存在一个跨站脚本漏洞。当应用程序使用AutoFormat()功能处理用户输入的数据时,攻击者可以通过发送带有Accept: text/html请求头的请求,诱导Fiber返回原始HTML格式,从而注入任意恶意脚本代码。该漏洞源于框架对内容协商的处理逻辑缺陷,未正确限制HTML输出的触发条件。
该漏洞的核心在于Go Fiber框架中AutoFormat()方法的内容协商机制存在逻辑缺陷。AutoFormat()设计初衷是根据客户端请求的Accept头自动将数据序列化为JSON、XML或HTML等格式。然而,与其他格式(如JSON)默认会对特殊字符进行转义不同,HTML分支直接返回未经转义的原始数据。当开发者在处理接口中调用AutoFormat()并传入受攻击者影响的数据时,并未意识到这会暴露XSS风险。攻击者只需在HTTP请求中添加或修改Accept头为“text/html”,即可诱导服务器端逻辑进入HTML渲染分支,将本应作为数据传输的内容解析为网页代码。这种攻击利用了客户端可控输入绕过了服务端的格式预期,导致恶意JavaScript代码在受害者浏览器中执行,进而窃取Cookie或会话令牌。