IPBUF安全漏洞报告
English
CVE-2026-42554 CVSS 6.1 中危

CVE-2026-42554 Go Fiber跨站脚本漏洞

披露日期: 2026-05-11

漏洞信息

漏洞编号
CVE-2026-42554
漏洞类型
跨站脚本 (XSS)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Go Fiber

相关标签

XSS跨站脚本Go FiberGoWeb FrameworkCVE-2026-42554Content Negotiation

漏洞概述

Go 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或会话令牌。

攻击链分析

STEP 1
侦察识别
攻击者识别出目标Web应用使用了Go Fiber框架,并发现了使用了AutoFormat()方法处理数据的API端点。
STEP 2
构造载荷
攻击者构造包含恶意JavaScript代码的Payload(例如:<img src=x onerror=alert(1)>)。
STEP 3
发送恶意请求
攻击者向目标端点发送HTTP请求,将Payload放入参数中,并特意设置HTTP请求头Accept为text/html。
STEP 4
触发漏洞
服务器端的AutoFormat()检测到Accept头为text/html,选择HTML渲染分支,直接将未经转义的Payload作为响应体返回。
STEP 5
执行攻击
受害者的浏览器接收到服务器响应,解析HTML并执行其中的恶意脚本,导致XSS攻击成功。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Vulnerable Server Code Example package main import "github.com/gofiber/fiber/v2" func main() { app := fiber.New() app.Get("/api/profile", func(c *fiber.Ctx) error { // Attacker controlled data, e.g., from query parameter or database userInput := c.Query("name", "Guest") // Vulnerable usage of AutoFormat return c.AutoFormat(userInput) }) app.Listen(":3000") } /* PoC Request: GET /api/profile?name=<script>alert(1)</script> HTTP/1.1 Host: target.com Accept: text/html Connection: close Explanation: By sending 'Accept: text/html', the server is tricked into rendering the input value directly as HTML without escaping, triggering the XSS payload. */

影响范围

Go Fiber < 2.52.12
Go Fiber < 3.1.0

防御指南

临时缓解措施
如果无法立即升级框架,建议开发者临时禁用AutoFormat()功能,或者在使用该方法前手动验证并过滤HTTP请求头中的Accept字段,拒绝包含“text/html”的请求,强制使用JSON等安全格式进行响应。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表