漏洞概述 该漏洞涉及在HTTP请求头中处理包含下划线的键名时,Go语言的Header包未能正确规范化这些键名。攻击者可以利用这一点,通过发送带有下划线的请求头(如 )来绕过某些后端系统的验证机制。 影响范围 受影响的后端系统:所有使用Go语言处理HTTP请求的后端系统,特别是那些依赖于Header键名进行身份验证或授权的系统。 具体场景:在Tomcat、ASGI/WSGI框架等环境中,如果后端系统对Header键名进行了规范化处理(如将 转换为 ),则可能受到此漏洞的影响。 修复方案 新增选项:在 的HTTP配置中新增一个名为 的选项,默认值为 ,保持当前行为。当设置为 时,任何包含下划线的请求头或尾部都将在路由前被移除。 代码变更:在 的代码中实现了对包含下划线的请求头的处理逻辑,确保在需要时可以安全地移除这些头。 POC代码 总结 此漏洞允许攻击者通过发送带有下划线的请求头来绕过某些后端系统的验证机制。修复方案是通过新增配置选项来控制是否允许包含下划线的请求头,并在需要时移除这些头。