Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
cve-2026-103956-loom-unauth — CVE-2026-103956 - Loom for AWS - 严重 - 认证绕过 - 未配置 IdP 时可未授权获得超级管理员权限 | Kitploit
工具/GitHubGitHub/abraxas/cve-2026-103956-loom-unauth
漏洞分析漏洞利用Web应用程序漏洞利用安全虚拟化渗透测试云安全身份验证实验室与实践

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
GitHub
abraxas/cve-2026-103956-loom-unauth

cve-2026-103956-loom-unauth

CVE-2026-103956 - Loom for AWS - 严重 - 认证绕过 - 未配置 IdP 时可未授权获得超级管理员权限

查看仓库
318小时50分前尚未审核
分享

Abraxas Labs - cve-2026-103956-loom-unauth

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  cve-2026-103956-loom-unauth

cve-2026-103956-loom-unauth

Loom for AWS < 1.6.1 - AWS Labs

当 Cognito 未设置且没有外部 IdP 处于活动状态时,get_current_user 会给每个请求赋予 t-admin / g-admins-super。这包括没有 Authorization 头的请求。在 IdP 设置之前的新部署就是一个开放的管理面板。

IDCVE-2026-103956
CWECWE-306 / CWE-1188
CVSS严重:10.0 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
产品Loom for AWS
受影响版本< 1.6.1。实验环境锁定 v1.6.0(8c658d61)。已在 v1.6.1(ccad5665)中修复。
认证未认证
许可证GNU Affero GPL v3.0
实验环境仅 127.0.0.1

攻击者能做什么

攻击者以零凭据掌控了代理控制平面。

  • 以超级管理员身份进入。 不带任何头的 GET /api/auth/me 返回 username=local-dev、sub=local、组 t-admin 和 g-admins-super。GROUP_SCOPES 中的每个作用域都随该身份一同获得。
  • 注册工具服务器。 未认证的 POST /api/mcp/servers 返回 201。MCP、A2A、代理、记忆、安全、设置、凭据和管理审计都位于同一依赖之后。
  • 读取存储的集成密钥。 GET /api/mcp/servers/{id}/export 需要 admin:write。在此锁定版本上,它会从 SQLite 返回 oauth2_client_secret。CVE 文本还提到了对托管代理角色的 IAM 角色策略重写;该路径需要 AWS,不在这个回环实验环境范围内。
  • 在已发布的端口上攻击它。 新部署、忘记配置 Cognito,或 IdP 加载失败。后端是运行在 8000 端口上的 FastAPI。网络可达就足够了。

v1.6.1 要求 LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV 加上回环客户端。同样的请求返回 401(No identity provider configured)。

我是如何发现的

AWS 发布了 CVE-2026-103956,附带 GHSA-vgmj-998f-r8mp 和公告 2026-124-AWS。我将 awslabs/loom v1.6.0(8c658d61)与 v1.6.1(ccad5665)并排锁定,并在未设置 LOOM_COGNITO_USER_POOL_ID 的情况下使用 SQLite 运行后端。

backend/app/dependencies/auth.py 中的 get_current_user 会检查 Cognito 环境变量和活动的 IdP 记录。两者都为空时:它返回 UserInfo(sub="local", username="local-dev", groups=["t-admin", "g-admins-super"], scopes=ALL_SCOPES)。令牌从未被读取。

我在回环地址 127.0.0.1:18180(v1.6.0)和 18181(v1.6.1)上启动了原版 FastAPI。没有前端。没有 AWS。在 1.6.0 上未认证的 GET /api/auth/me 返回 200 并带有那些组。未认证的 POST /api/mcp/servers 携带 oauth2_client_secret=CVE-2026-103956-WITNESS 返回 201。GET /api/mcp/servers/1/export 把密钥交还了回来。在 1.6.1 上,同样的 /api/auth/me 返回 401。

SUCCESS CVE-2026-103956 me-http=200 me-user=local-dev me-sub=local me-groups=t-admin,g-admins-super mcp-create=201 export-has-secret=yes list-has-witness=yes patched-me-http=401 CVE-2026-103956-WITNESS

已记录的弯路:public.ecr.aws/docker/library/python:3.13-slim 被跳过,改用 Docker Hub 的 python:3.13-slim;v1.6.0 上首次 /health 在 uvicorn 绑定时 curl 返回 52,随后返回 200;MCP 创建 schema 在第一次 POST 时就匹配,没有 422 重试。一个反向 shell。做戏。预言机是 /api/auth/me 加上导出的密钥。

实验环境

cd lab
./run.sh

目标仅限 http://127.0.0.1:18180(v1.6.0)和 http://127.0.0.1:18181(v1.6.1)。run.sh 会浅克隆这些标签,构建两个后端,然后拆除整个栈。SQLite。没有 Cognito 环境变量。在已修补的服务上没有 LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV。

修复方案

升级到 1.6.1 或更高版本。AWS 建议使用 1.7.0 以解决相关的 SSRF/令牌问题。1.6.1 的绕过是选择加入且仅限回环的。在此之前,请在后端可被回环之外访问之前完成 Cognito 或外部 IdP 的配置,并在任何已部署的实例上保持 LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV 未设置。

参考资料

  • CVE-2026-103956
  • GHSA-vgmj-998f-r8mp
  • AWS 公告 2026-124-AWS
  • awslabs/loom 标签 v1.6.0 / v1.6.1
  • backend/app/dependencies/auth.py(get_current_user)
  • CWE-306

许可证

GNU Affero GPL v3.0

下载工具