深海军蓝背景上的抽象技术插图:一条宽阔的半透明边界围住一排极简的小型服务器面板;一个未标注的请求箭头从左侧进入边界,旁边没有任何凭证令牌,当它穿过边界线时,箭头变成琥珀色,然后分叉成许多细小的青色线条,延伸到内部的每一块面板,包括一个画有钥匙孔、代表凭证保管库的小立方体。在它下方,一个同样大小的第二个箭头被一条短实心白条挡在边界处。图中不出现任何文字、人物或组织标志。OrcaRouter 标志合成在右下角。
AI Safety Incidents

Loom for AWS 授予每个未经认证的请求超级管理员权限 — CVE-2026-103956

作者

Gideon Frost

发布日期

最新模型 · 20查看全部模型 →
基准测试:Artificial Analysis · 每日更新
返回全部文章

2026年10月2日,AWS发布了安全公告2026-124-AWS,披露了CVE-2026-103956,该漏洞存在于Loom for AWS之中——这是AWS Labs的开源平台,用于在Amazon Bedrock AgentCore Runtime上构建、部署和管理AI智能体。在未配置任何身份提供方的部署环境中,后端的身份验证依赖项会向每一个传入请求下发一个固定的超级管理员身份——包括那些完全没有携带Authorization头的请求。能够访问到后端的远程客户端可以注册工具服务器、读取已存储的集成凭据,并重写附加到受管智能体角色上的IAM角色策略:在零身份验证的情况下实现对智能体控制平面的完全管理控制。NVD在CVSS 3.1和CVSS 4.0下均将该漏洞评为10.0分,属严重级别。该漏洞的发现归功于Kenneth Cox,其通过协同披露流程完成。该公告描述了该漏洞可能造成的后果,但并未描述是否有人利用过它。

认证依赖实际上在做什么

该缺陷位于后端的认证依赖项中。根据 GitHub 安全公告 GHSA-vgmj-998f-r8mp,后端认证依赖项中的这条代码路径——即 Loom 后端中的 get_current_user 函数——每当不存在 Amazon Cognito 用户池、也没有活跃的外部身份提供程序时,都会返回一个硬编码的管理员身份,即 g-admins-super 组中的超级管理员账户。它不检查调用方是否出示了令牌,也不会转入拒绝分支,而是无论如何都返回该管理员身份。

AWS 公告对后果的描述如出一辙:该漏洞允许任何网络客户端获得对代理控制平面的完全管理权限。CVE-2026-103956 被映射到 CWE-306(关键功能缺少身份验证)以及 CWE-1188(资源的不安全默认初始化)。NVD 的 CVSS 3.1 向量为 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H——网络可达、低复杂度、无需权限、无需用户交互、作用域变更,对机密性、完整性和可用性均造成完全影响。

重要的背景框架——也是解释为什么一个 CVSS 10.0 会落到一个小型开源项目上的关键——在于,没有 IdP 的部署并不罕见。一个全新的、尚未接入 Cognito 的 Loom 安装就恰恰处于这种状态,而某个从未设置过身份提供方配置、或该配置已不再能解析的部署同样如此。该公告将此视为一种常见情形,而非运维人员自己招致的错误配置。

未经身份验证的客户端可以访问到什么

• 智能体注册与工具服务器:客户端可以注册或更改某个智能体获准调用的工具服务器,而在工具调用架构中,这决定了一个智能体是只读取工单,还是会执行某些操作。

• 已存储的集成凭据:该平台会为其智能体和工具服务器所连接的外部系统存储凭据,而公告称这些凭据可被读取。

• 托管代理角色上的 IAM 角色策略:该公告描述了重写 Loom 为其代理所管理的角色上附加的 IAM 角色策略,而这一步正是将编排层的控制权转化为对代理在 AWS 账户内可执行操作的控制权。

• 平台管理的其他一切:智能体、记忆、授权器与安全配置、设置——以及调用该部署所运行的任何智能体。

这四项是公告自身列出的清单,说明完整管理访问权限能够触及哪些范围,而非事后重建。并未声称有任何漏洞利用曾用到其中任何一项。

已建立,以及未建立

已确认。该漏洞确实存在,并记录在一致认可的主要来源中:AWS 于 2026 年 10 月 2 日发布的安全公告 2026-124-AWS、同日发布的 GitHub 咨询 GHSA-vgmj-998f-r8mp,以及 NVD 的 CVE-2026-103956 记录。受影响版本(1.6.1 之前)、CVSS 评分、CWE 映射、修复版本和致谢在各来源中均一致。该事件的归档记录置信度评级为 A,无争议,且 real_harm 为 false。

该记录自身的字段将披露时间定在 2026 年 10 月 2 日,精确到日,并将一项公开的概念验证声明描述为未经证实;无论是通报还是安全公告,都没有包含攻击证据。NVD 针对 CVE-2026-103956 的公开记录将 CISA 的已知被利用漏洞目录中该 CVE 列为空,而归档记录将 real_harm 标为 false。所以:这是一个未认证的网络客户端可以使用的漏洞,来源中却没有证据表明有人利用过它。

HTML card titled 'What the record establishes — and what it does not', kicked 'Record 2026-10-02-loom-aws-agent-control-plane-cve-2026-103956' and subtitled with the source list: AWS Security Bulletin 2026-124-AWS, GHSA-vgmj-998f-r8mp and the NVD record, all published 2 October 2026, with the archive classification confidence A, not disputed, real harm recorded as false. Two columns run side by side. The left column, headed 'Established' in cyan, lists six items: CVSS 10.0 critical under both CVSS 3.1 (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H) and CVSS 4.0; CWE-306 and CWE-1188 — missing authentication for a critical function and insecure default initialization of a resource; affected versions before 1.6.1, where the auth dependency returned a fixed super-admin identity when no Cognito pool or external identity provider was configured; reach by any network client that could reach the backend, including registering tool servers, reading stored integration credentials and rewriting IAM role policies on managed agent roles; fixed in Loom 1.6.1, released 4 August 2026, about two months before the bulletin named the CVE; and credit to Kenneth Cox through coordinated disclosure. The right column, headed 'Not established' in amber, lists six items: no confirmed exploitation in the wild, with the AWS bulletin and the GitHub advisory both silent on attacks; a public proof-of-concept claim that is unverified in the record and could not be corroborated from the cited sources; no CISA KEV entry for CVE-2026-103956 in the NVD record; no statement about whether the fixed release is deployed across the installed base of forks and derivative code; no estimate of exposed deployments, since nothing in the cited sources says how many Loom instances ran IdP-less and network-reachable; and the note that severity measures what the flaw allowed, not what happened, with no harm recorded for this entry. A footer reads 'Facts as published by AWS (Security Bulletin 2026-124-AWS), the Loom maintainers (GHSA-vgmj-998f-r8mp) and NVD. Card rendered by OrcaRouter.' The OrcaRouter logo is composited in the bottom-right corner.

同样值得区分开来。CVSS 10.0 衡量的是该漏洞可能造成什么,而非它实际造成了什么。一个未被利用、也无损害记录的 10.0 分漏洞属于险兆事件,而档案库正是这样归档的。

修复方案,以及它被命名前两个月的空白期

AWS 在 Loom 1.6.1 中修复了该问题,该版本于 2026 年 8 月 4 日发布。这个日期很重要:该版本比公告早了约两个月发布,而 CVE 编号当时已公开存在。v1.6.1 的发布说明描述了这一变更,却没有点名 CVE——认证绕过现在需要显式选择加入外加一个回环客户端,否则会以 401 失败关闭——因此,该缺陷的严重程度及其编号只有追踪漏洞追踪信息的 Loom 用户才看得到,而仅阅读发布说明的人则看不到。同一版本还为 OAuth 发现请求添加了 SSRF 加固。

HTML card titled 'Two months between the fix and the name', kicked 'CVE-2026-103956' and subtitled with the point: the code was patched in August, but nothing in the 1.6.1 release notes pointed a Loom operator at a CVSS 10.0 authentication bypass. Four dated rows run down a vertical timeline. 4 August 2026: Loom 1.6.1 ships the fix, and the release notes describe the change without naming a CVE, with the local-dev no-IdP bypass now requiring an explicit opt-in plus a loopback client and otherwise failing closed with a 401; the same release adds SSRF hardening for OAuth discovery. 4 August to 2 October 2026: roughly two months of unstated severity, with the patch public and the defect gone but the CVE number and the 10.0 score not yet existing, so a Loom user reading release notes alone sees a security hardening rather than a critical advisory with a remediation deadline. 2 October 2026, 12:00 PM PDT: AWS Security Bulletin 2026-124-AWS is published, naming CVE-2026-103956 for Loom before 1.6.1 alongside CVE-2026-103957 and CVE-2026-103958, both fixed in 1.7.0, and CVE-2026-104019 in Amazon SageMaker Unified Studio. 2 October 2026: the GitHub advisory and the NVD record follow, with GHSA-vgmj-998f-r8mp published the same day and NVD publishing CVE-2026-103956 with CVSS 3.1 and CVSS 4.0 base scores of 10.0, critical. A footer reads 'Dates as published by the Loom 1.6.1 release notes, AWS Security Bulletin 2026-124-AWS, GHSA-vgmj-998f-r8mp and the NVD record. The cited sources do not state the release date of Loom 1.7.0. Card rendered by OrcaRouter.' The OrcaRouter logo is composited in the bottom-right corner.

对于已经暴露的部署,AWS 的升级前指导是:在后端可在回环地址之外访问之前,先完全配置好 Amazon Cognito 用户池或活跃的外部身份提供商,并确认 LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV 在本地开发之外未设置,同时在此期间限制对后端的网络或安全组访问。该公告明确指出,网络限制会降低意外访问的可能性,但如果不升级,并不能解决问题,而且分叉和衍生代码也需要修补。

相同的公告,不同的缺陷

该记录的摘要指出,2026-124-AWS 不仅涉及这一个 CVE。同日还披露了另外两个 Loom 问题,并已在Loom 1.7.0中修复:CVE-2026-103957,即 OAuth2 发现处理中的 SSRF,可能将 OAuth2 客户端密钥或另一位用户的访问令牌发送到攻击者控制的端点(CVSS 3.1 6.2,CVSS 4.0 8.2);以及 CVE-2026-103958,即工具服务器和远程代理连接处理中的 SSRF,可访问任意内部地址,包括容器的凭据发放端点,并读取其响应(CVSS 3.1 7.6,CVSS 4.0 8.3)。两者都需要持有 mcp:write 或 a2a:write 权限范围的已认证用户。该公告还涵盖 CVE-2026-104019,即Amazon SageMaker Unified Studio所用的 Studio Space 启动验证脚本中的操作系统命令注入,在 CVSS 3.1 下被评为 9.0 严重,AWS 表示已在服务器端通过一项全局清理更改修复,并在下次 Space 重启时应用。

升级后,AWS 要求运维人员为 MCP 和 A2A 集成轮换 OAuth2 客户端密钥,撤销并重新签发在受影响窗口期间处于活动状态的令牌,并且——如果容器角色凭证已被触及——轮换 IAM 角色的会话凭证并审查 CloudTrail。

为什么此记录在档案中

Abstract technical illustration on a dark navy field: three stacked horizontal layers. The top layer is a loose cluster of small abstract agent glyphs. Thin filaments run down from them into the middle layer, a clearly bounded cyan-outlined slab containing three small icons — two overlapping identity discs, a rectangular socket representing a tool registration, and a padlock on a folded document representing a policy. Every filament passes through those three icons. A single thick bundle leaves the middle slab and fans out across the bottom layer, a wide plain of large rectangular blocks. On the right edge of the middle slab, a short section of its outline is drawn as a dashed amber line, marking a boundary that is not intact. No text, people or organisation logos appear. The OrcaRouter logo is composited in the bottom-right corner.

CVE-2026-103956 被归类为漏洞,而非事件:是被发现,而非必然已被利用,INFRA 和 CRED,GLOBAL,高严重性,高置信度。它在记录集中的价值在于,它是整个 agent 控制平面类别的一个边界案例。Loom 的职责是持有身份、工具服务器注册信息及其集成凭据,以及决定 agent 可以接触什么的 IAM 策略——这一层将 agent 平台与其所在的云账户连接起来。该层中缺失的一项检查不会削弱某个 agent;它转移的是整个资产环境。档案中的一条同类记录,即 2026 年 10 月 8 日针对 Amazon Bedrock AgentCore 的 AgentCorruption 披露,描述了同一层被另一条路径触达:来自一个面向公众的 agent 的 SSRF 链。

档案库列出了它所收录的每一起有记录的 agent 事件,每一起都附有自己的来源、严重程度、置信等级和争议标记,本文这一起也在其列。本文讲述的是该集合中的单条记录,而完整的逐字段分类正保存在这条记录之中。

这是一条记录,由他人研究并报告,此处引用并归功于他们。Loom 自身的层面——身份、工具服务器注册,以及决定智能体可以接触哪些对象的 IAM 策略——正是AI 事故档案中的同类条目也同样触及的层面,而每一条此类记录都带有各自的来源、严重程度、置信度等级和争议标记。