CVE-2026-23846Tugtainer是一款自托管的Docker容器自动化更新应用。在1.16.1之前的版本中,该应用存在严重的安全漏洞:密码认证机制错误地将用户密码通过URL查询参数进行传输,而非使用标准的HTTP请求体。这种不安全的认证实现方式导致敏感凭证信息被暴露在多个潜在的风险点。首先,服务器访问日志会完整记录包含密码的完整URL;其次,浏览器历史记录会永久保存这些敏感信息;此外,HTTP Referer头在页面跳转时会将URL传递给第三方网站;最后,企业代理服务器和CDN日志也会记录这些敏感数据。攻击者只需获取这些日志的访问权限,即可窃取用户凭证,从而接管Tugtainer管理账户,进一步控制所有Docker容器的更新操作,可能导致容器被植入恶意代码或服务中断。
该漏洞源于Tugtainer在实现用户认证时采用了不当的密码传输方式。正常的认证流程应将敏感凭证放在HTTP POST请求的body中或使用Authorization头,而此漏洞版本却将密码作为URL查询参数附加在GET请求中。例如:GET /api/login?username=admin&password=secret123 HTTP/1.1。这种实现方式违反了安全最佳实践,因为URL参数会被记录在多处:1) Web服务器访问日志(Apache/Nginx等);2) 代理服务器日志;3) 浏览器历史记录;4) HTTP Referer头(当用户点击外部链接时);5) 前端JavaScript的location.href或document.referrer;6) 网络监控设备日志。攻击者可通过日志审计、社工攻击或中间人攻击获取这些凭证。成功利用后,攻击者获得管理员权限,可修改容器镜像源、注入恶意更新脚本、获取宿主机的Docker API访问权限。