漏洞概述 当启用前向代理身份验证时,Isaiah 仅根据配置的 HTTP 头值对 websocket 会话进行身份验证。如果 Isaiah 后端可以直接由未受信任的客户端访问,或者反向代理转发而不是覆盖配置的头部,客户端可以在 websocket 握手期间提供头部,并绕过正常的密码身份验证流程。 影响范围 配置敏感:严格隔离的后端,仅从受信任的代理可达,通过代理覆盖或剥离用户提供的身份验证头,可以缓解此问题。应用程序本身目前不强制执行此边界。 受影响配置: - - 设置为代理身份验证头,例如 - 为静态期望值 - Isaiah 后端 可由未受信任的客户端访问,或代理转发用户控制的身份验证头 修复方案 预期行为:前向代理身份验证应仅在请求来源是配置的受信任代理时信任身份头,部署应防止直接后端访问或用户控制的转发配置头。默认行为在 在受信任代理路径外可达时尤其危险。 代码路径:在 中,websocket 连接钩子从 读取配置的头部,并在值非空且匹配配置值或配置值为 时将会话设置为已认证。 安全影响:如果利用,未经身份验证的网络客户端可能会获得对正常认证应用程序功能的访问权限。由于 Isaiah 管理 Docker 资源,这可能会暴露容器元数据、日志、环境变量和 Docker 管理操作。根据部署和 Docker 守护进程访问,这可能成为高影响的管理员妥协。 代码块