哪吒探针爆出漏洞

来源: https://github.com/nezhahq/nezha/security/advisories/GHSA-5c25-7vpj-9mqh

概括

fallbackToFrontend 仪表盘的NoRoute 处理程序会将任何原始字符串<url> 开头的 URL视为/dashboard 管理前端资源请求。该检查使用 <url>``strings.HasPrefix 而不是路径段匹配,因此输入/dashboard../data/config.yaml 会被接受;strings.TrimPrefix 保留 <url> …/data/config.yaml ;并将其path.Join("admin-dist", "../data/config.yaml") 规范化为<url> data/config.yaml ——这样os.Stat 就能找到并http.ServeFile 返回 <url>。无需身份验证。

在默认部署中(项目中提供的值model/config.go 和布局Dockerfile ) ,包含用于对每个仪表盘会话 cookie 进行签名的data/config.yaml HS256 密钥。未经授权的攻击者读取该密钥,伪造管理员 JWT,并以任何用户身份登录——只需一个 GET 请求即可完全控制仪表盘。jwt_secret_key cmd/dashboard/controller/jwt.go