用户希望我总结网页截图中的漏洞信息。 我需要提取以下关键信息: 1. **漏洞概述 (Overview):** 标题是 "Resource poisoning"。描述部分提到,任何经过身份验证的用户、机器或控制器都可以通过Jujutsu控制器修改整个控制器中应用程序的资源。 2. **影响范围 (Impact):** 任何部署的charm都可以通过引入安全漏洞来影响另一个工作流。最危险的是OCI容器,因为获取执行代码(exec)时,如果资源没有安全控制,可能会被利用。 3. **修复方案 (Fix/Mitigation):** 页面中提到了 "Step 1" 和 "Step 2"。 * Step 1: 在代码中定义 `required: true` 来强制要求资源。 * Step 2: 如果charm没有定义资源,可以发布一个空的yaml文件(例如 `foo.yaml`)来覆盖它。 * 还有一个关于 "PoC" 的部分,提到没有提供具体的PoC代码,因为从代码中显而易见。 4. **POC/利用代码:** 页面中明确写着 "I have not done a proof of concept for this because it is so obvious from the code read I don't feel as though it necessary."(我没有做概念验证,因为从代码阅读中太明显了,我觉得没必要)。但是,在 "Step 2" 中提到了一个利用方法:发布一个空的yaml文件。在 "PoC" 部分提到了一个概念性的利用场景:压缩一个包含恶意脚本的docker镜像,然后将其作为资源上传。 **整理信息:** * **漏洞名称:** Resource poisoning (资源投毒) * **概述:** 任何经过身份验证的用户、机器或控制器都可以通过Jujutsu控制器修改整个控制器中应用程序的资源。 * **影响:** 任何charm部署都可能被修改,从而引入安全漏洞影响其他工作流。特别是OCI容器,如果资源没有安全控制,攻击者可以通过获取执行代码(exec)来利用。 * **修复/缓解:** * 在代码中定义 `required: true` 来强制要求资源。 * 发布一个空的yaml文件(例如 `foo.yaml`)来覆盖现有的资源定义。 * **POC:** 页面没有提供具体的代码块,但描述了利用方法:压缩一个包含恶意脚本的docker镜像,将其作为资源上传,从而在容器启动时执行恶意脚本。 **最终输出格式:** 简洁的中文markdown。 * **漏洞概述:** 任何经过身份验证的用户、机器或控制器都可以通过Jujutsu控制器修改整个控制器中应用程序的资源。 * **影响范围:** 任何charm部署都可能被修改,从而引入安全漏洞影响其他工作流。特别是OCI容器,如果资源没有安全控制,攻击者可以通过获取执行代码(exec)来利用。 * **修复方案:** * 在代码中定义 `required: true` 来强制要求资源。 * 发布一个空的yaml文件(例如 `foo.yaml`)来覆盖现有的资源定义。 * **POC/利用代码:** 页面未提供具体代码,但描述了利用方法:压缩一个包含恶意脚本的docker镜像,将其作为资源上传,从而在容器启动时执行恶意脚本。 再检查一下是否有遗漏。 - 标题: Resource poisoning - 描述: Any authenticated user, machine or controller using a juju controller can modify the resources of an application within the entire controller. - Step 1: The authorisation mechanism for the resource handler is defined here. You are only required to have been authed as either a user, machine or controller to pass this check, you required no permissions on the controller nor do you need any further permissions on the models themselves. - Step 2: If you pass the very basic auth check of step 1 you are now allowed free run for "UI" and "GET" methods to the handler. This security report will only focus on "UI" as it is most interesting. The "UI" handler will gladly share whatever is uploaded to it as long as it has the same file extension defined by the model. - PoC: I have not done a proof of concept for this because it is so obvious from the code read I don't feel as though it necessary. A realistic example of how this can be used. If you have a compromised workload in juju that has machine access then you can modify the resources for any other model in the controller. For example if the workload was running a k8s charm you could change the docker image to use in your trigger base container that allows you to get root access to all the eval secrets. Once this poison has been performed the attacker can then leverage off the vault access to go other places. 好的,信息提取完整。现在生成最终回复。 ### 漏洞概述 **漏洞名称:** Resource poisoning (资源投毒) **描述:** 任何经过身份验证的用户、机器或控制器都可以通过Jujutsu控制器修改整个控制器中应用程序的资源。攻击者只需通过基本的身份验证检查,即可利用“UI”和“GET”方法上传或修改资源。 ### 影响范围 * **受影响组件:** 任何部署的charm(Charm是Juju中的软件包)。 * **具体风险:** 任何charm部署都可能被修改,从而引入安全漏洞影响其他工作流。 * **高危场景:** 最危险的是OCI容器。如果获取执行代码(exec)时,资源没有安全控制,攻击者可以修改Docker镜像,从而在容器启动时执行恶意脚本,获取root权限并访问所有评估密钥(eval secrets)。 ### 修复方案 1. **强制资源定义:** 在代码中定义 `required: true`,强制要求资源存在,防止未定义的资源被随意修改。 2. **覆盖资源:** 如果charm没有定义资源,可以发布一个空的yaml文件(例如 `foo.yaml`)来覆盖现有的资源定义,阻止恶意上传。 ### POC/利用代码 页面未提供具体的代码块,但描述了利用方法: * **利用原理:** 攻击者可以压缩一个包含恶意脚本的Docker镜像,将其作为资源上传。 * **利用场景:** 如果攻击者已经控制了Juju中的某个工作负载(拥有机器访问权限),可以修改控制器中其他模型的资源。例如,修改K8s charm使用的Docker镜像,使其在启动时执行恶意脚本,从而获取root权限。