漏洞总结:go-kratos/kratos 默认路由暴露漏洞 漏洞概述 标题:Unintended Route Exposure via DefaultServeMux Fallback #3810 类型:CWE-441 (Unintentional Proxy or Intermediary) 严重程度:High (CVSS 3.1 Score: 7.5) 受影响组件: 受影响版本:v2.9.2 及所有 v2.x 版本 核心原因: Kratos HTTP 服务器将 设置为未匹配路由的 fallback 处理器。由于 Go 标准库中的 包会自动注册调试端点,当应用依赖树中包含 时,攻击者无需认证即可通过未注册的路径访问这些敏感的调试接口。 影响范围 未认证的远程攻击者可以访问以下调试端点,导致敏感信息泄露: 1. 进程命令行参数 ( ):可能包含数据库密码、API 密钥等。 2. 完整 Goroutine 堆栈转储 ( ):暴露源码路径、内部包结构、依赖版本。 3. 堆内存转储 ( ):包含内存中的凭证、会话令牌、加密密钥等。 4. CPU 配置文件 ( ):揭示代码路径、业务逻辑结构。 5. 执行跟踪 ( ):提供详细的请求处理过程跟踪。 6. 拒绝服务 (DoS): 默认执行 30 秒 CPU 分析,可被滥用触发 DoS。 修复方案 建议修复: 将 替换为返回 404 或 405 错误码的专用处理器。 临时缓解措施(当前用户): 在创建服务器时覆盖默认处理器: POC / 利用代码 以下命令可用于验证漏洞: 验证结果示例: