关键漏洞信息 漏洞标题 Arbitrary executable upload via authenticated endpoint without authorization 影响版本 受影响版本: =3.0.6 修复版本: 2.9.5, 3.0.6 漏洞描述 攻击者可以通过在juju控制器中安装代理二进制文件来利用此漏洞,而无需拥有模型或任何权限。只需使用具有控制器访问权限的简单用户帐户即可。 漏洞细节 上传处理程序仅检查上传代理二进制文件的请求是否来自控制器机器。 管理员操作(如升级或迁移)会将二进制文件复制到所有模型和控制器机器上。 攻击者可以利用此漏洞在受影响的模型或控制器中获取持久性访问权限。 漏洞代码片段 上传处理程序定义:https://github.com/juju/juju/blob/3.0/src/server/server.go#L766-L767 认证检查:https://github.com/juju/juju/blob/3.0/src/api/base/apihttpcontext.go#L101 控制器注册:https://github.com/juju/juju/blob/3.0/src/api/uniter/hookcontext_test.go#L280-L284 漏洞利用步骤 1. 创建新控制器。 2. 添加无权限用户。 3. 使用 命令查看注册字符串。 4. 获取敏感凭据和信息。 5. 使用新密码登录控制器。 6. 应用补丁并构建更改。 7. 验证控制器代理二进制文件已被篡改。 影响 此漏洞允许无权限用户最终消耗整个juju控制器,并获得对所有基础设施和机密的访问权限。通过模型迁移,还可能影响其他控制器。