Minh họa kỹ thuật trừu tượng trên nền xanh navy thẫm: một ranh giới trong suốt rộng bao quanh một hàng bảng máy chủ tối giản nhỏ; một mũi tên yêu cầu không có nhãn duy nhất đi vào ranh giới từ bên trái mà không có token thông tin xác thực nào bên cạnh, và tại nơi nó cắt qua đường ranh giới, mũi tên chuyển sang màu hổ phách rồi phân nhánh thành nhiều đường màu lam mảnh kéo đến mọi bảng bên trong, bao gồm một khối lập phương nhỏ được vẽ với lỗ khóa tượng trưng cho kho thông tin xác thực. Bên dưới, một mũi tên thứ hai có cùng kích thước bị chặn lại tại ranh giới bởi một thanh trắng đặc ngắn. Không có văn bản, người hay logo tổ chức nào xuất hiện. Logo OrcaRouter được ghép vào góc dưới bên phải.
AI Safety Incidents

Loom for AWS cấp quyền Super-Admin cho mọi yêu cầu chưa xác thực — CVE-2026-103956

Tác giả

Gideon Frost

Ngày đăng

Mô hình mới nhất · 20Xem tất cả mô hình →
Benchmark: Artificial Analysis · cập nhật hằng ngày
Quay lại tất cả bài viết

Ngày 2 tháng 10 năm 2026, AWS công bố Bản tin Bảo mật 2026-124-AWS, tiết lộ CVE-2026-103956 trong Loom for AWS, nền tảng mã nguồn mở của AWS Labs dùng để xây dựng, triển khai và quản lý các AI agent trên Amazon Bedrock AgentCore Runtime. Trong một triển khai mà chưa có nhà cung cấp định danh nào được cấu hình, phụ thuộc xác thực của backend đã gán một định danh siêu quản trị viên cố định cho mọi yêu cầu gửi đến — kể cả những yêu cầu hoàn toàn không mang header Authorization. Một máy khách từ xa có thể tiếp cận backend có thể đăng ký các tool server, đọc thông tin xác thực tích hợp đã lưu, và viết lại các chính sách vai trò IAM gắn với các vai trò agent được quản lý: toàn quyền quản trị đối với control plane của agent mà không cần bất kỳ xác thực nào. NVD chấm điểm lỗ hổng này là 10.0, mức nghiêm trọng, theo cả CVSS 3.1 và CVSS 4.0. Ghi nhận cho phát hiện này thuộc về Kenneth Cox, thông qua quy trình công bố phối hợp. Bản khuyến nghị mô tả những gì lỗ hổng có thể cho phép; nó không mô tả những gì ai đó đã làm với nó.

Dependency xác thực thực sự đang làm gì

Lỗi nằm trong phần phụ thuộc xác thực của backend. Theo khuyến cáo GitHub GHSA-vgmj-998f-r8mp, đường dẫn mã trong phần phụ thuộc xác thực của backend — get_current_user hàm trong backend Loom — đã trả về một danh tính quản trị viên được mã hóa cứng, một tài khoản siêu quản trị viên trong nhóm g-admins-super, bất cứ khi nào không tồn tại user pool Amazon Cognito và không có nhà cung cấp danh tính bên ngoài nào đang hoạt động. Nó không kiểm tra xem bên gọi có xuất trình token hay không. Nó không rơi vào trường hợp từ chối. Dù vậy, nó vẫn trả về danh tính quản trị viên.

Bản tin AWS mô tả hậu quả theo cùng cách: lỗ hổng cho phép bất kỳ máy khách mạng nào có được toàn quyền quản trị đối với mặt phẳng điều khiển tác nhân. CVE-2026-103956 được ánh xạ tới CWE-306 (thiếu xác thực đối với một chức năng quan trọng) và CWE-1188 (khởi tạo mặc định không an toàn của một tài nguyên). Vector CVSS 3.1 của NVD là AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H — có thể truy cập qua mạng, độ phức tạp thấp, không cần đặc quyền, không cần tương tác người dùng, phạm vi thay đổi, tác động đầy đủ đến tính bảo mật, tính toàn vẹn và tính khả dụng.

Cách đóng khung quan trọng, và cũng là phần giải thích vì sao điểm CVSS 10.0 lại rơi vào một dự án mã nguồn mở nhỏ, là việc một triển khai không có IdP không hề xa lạ. Một bản cài Loom mới tinh vẫn chưa được nối với Cognito đang ở đúng trạng thái đó, và một triển khai mà cấu hình nhà cung cấp danh tính chưa từng được thiết lập hoặc đã ngừng phân giải cũng vậy. Bản khuyến nghị coi đây là một tình trạng phổ biến chứ không phải một cấu hình sai mà người vận hành phải tự chuốc lấy.

Một client chưa xác thực có thể truy cập được những gì

• Đăng ký agent và máy chủ công cụ: máy khách có thể đăng ký hoặc thay đổi các máy chủ công cụ mà agent được phép gọi, điều mà trong kiến trúc gọi công cụ chính là sự khác biệt giữa một agent đọc ticket và một agent thực thi một thứ gì đó.

• Thông tin xác thực tích hợp được lưu trữ: nền tảng lưu trữ thông tin xác thực cho các hệ thống bên ngoài mà các tác nhân và máy chủ công cụ của nó kết nối tới, và bản tin cho biết những thông tin đó đã bị đọc được.

• Chính sách vai trò IAM trên các vai trò agent được quản lý: bản khuyến cáo mô tả việc viết lại các chính sách vai trò IAM được gắn vào các vai trò mà Loom quản lý cho các agent của mình, đây là bước chuyển quyền kiểm soát lớp điều phối thành quyền kiểm soát những gì các agent có thể làm bên trong tài khoản AWS.

• Mọi thứ khác mà nền tảng quản lý: các agent, bộ nhớ, cấu hình authorizer và bảo mật, cài đặt — và việc gọi bất kỳ agent nào mà deployment chạy.

Bốn mục đó là danh sách của chính bản khuyến cáo về những gì mà quyền quản trị đầy đủ có thể tiếp cận, chứ không phải một sự tái dựng. Không có sự khai thác nào được cho là đã sử dụng bất kỳ mục nào trong số đó.

Đã thiết lập, và chưa thiết lập

Đã xác lập. Lỗ hổng đã tồn tại và được ghi nhận trong các nguồn sơ cấp đã được đồng thuận: Bản tin Bảo mật 2026-124-AWS của AWS ngày 2 tháng 10 năm 2026, thông báo tư vấn GitHub GHSA-vgmj-998f-r8mp được công bố cùng ngày, và hồ sơ CVE-2026-103956 của NVD. Các phiên bản bị ảnh hưởng (trước 1.6.1), điểm CVSS, ánh xạ CWE, phiên bản sửa lỗi và ghi công đều nhất quán giữa các nguồn này. Hồ sơ lưu trữ cho sự cố này được xếp hạng độ tin cậy A, không bị tranh chấp, và mang real_harm là false.

Các trường của chính bản ghi đặt ngày công bố là 2 tháng 10 năm 2026, với độ chính xác đến ngày, và mô tả một tuyên bố proof-of-concept công khai là chưa được xác minh; cả bản tin lẫn khuyến cáo đều không có bằng chứng về một cuộc tấn công. Hồ sơ công khai của NVD cho CVE-2026-103956 liệt kê danh mục đã biết bị khai thác của CISA là trống đối với CVE này, và bản ghi lưu trữ mang real_harm là false. Vậy: một lỗ hổng mà một client mạng chưa được xác thực có thể sử dụng, mà không có bằng chứng trong các nguồn rằng bất kỳ ai đã làm vậy.

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.

Cũng đáng để tách bạch. Điểm CVSS 10.0 đo lường những gì lỗ hổng có thể cho phép, chứ không phải những gì nó đã gây ra. Một điểm 10.0 mà không bị khai thác và không ghi nhận thiệt hại nào thì chỉ là một vụ suýt xảy ra, và kho lưu trữ xếp nó vào loại đó.

Bản sửa lỗi, và khoảng trống hai tháng trước khi nó được đặt tên

AWS đã khắc phục vấn đề trong Loom 1.6.1, phát hành ngày 4 tháng 8 năm 2026. Ngày đó rất quan trọng: bản phát hành này ra đời khoảng hai tháng trước bản tin và trước khi số CVE tồn tại công khai. Ghi chú phát hành v1.6.1 mô tả thay đổi mà không nêu tên CVE — lỗ hổng bỏ qua xác thực giờ đây đòi hỏi phải bật rõ ràng (opt-in) cùng một máy khách loopback, nếu không thì sẽ đóng an toàn với lỗi 401 — vì vậy mức độ nghiêm trọng và tên định danh của lỗ hổng chỉ hiển thị với những người dùng Loom theo dõi các công cụ theo dõi lỗ hổng, chứ không với bất kỳ ai chỉ đọc ghi chú phát hành. Cùng bản phát hành đó cũng bổ sung biện pháp tăng cường chống SSRF cho các lần truy xuất khám phá OAuth.

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.

Đối với các triển khai đã bị phơi nhiễm, hướng dẫn trước khi nâng cấp của AWS là phải có một user pool Amazon Cognito hoặc một nhà cung cấp danh tính bên ngoài đang hoạt động được cấu hình đầy đủ trước khi backend có thể được truy cập ngoài loopback, để xác nhận rằng LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV không được đặt bên ngoài môi trường phát triển cục bộ, và trong lúc chờ đợi, hạn chế quyền truy cập mạng hoặc nhóm bảo mật vào backend. Bản tin nêu rõ rằng việc hạn chế mạng làm giảm khả năng truy cập ngoài ý muốn nhưng không giải quyết được vấn đề nếu không nâng cấp, và rằng các bản fork cùng mã phái sinh cũng cần được vá.

Cùng một bản tin, những lỗi khác nhau

Phần tóm tắt của hồ sơ lưu ý rằng 2026-124-AWS không chỉ liên quan đến CVE này. Hai vấn đề Loom khác đã được công bố cùng ngày và được khắc phục trong Loom 1.7.0: CVE-2026-103957, một lỗ hổng SSRF trong xử lý khám phá OAuth2 có thể gửi bí mật máy khách OAuth2 hoặc mã truy cập của người dùng khác đến một điểm cuối do kẻ tấn công kiểm soát (CVSS 3.1 6.2, CVSS 4.0 8.2), và CVE-2026-103958, một lỗ hổng SSRF trong xử lý kết nối máy chủ công cụ và tác nhân từ xa có thể truy cập các địa chỉ nội bộ tùy ý, bao gồm điểm cuối cấp phát thông tin xác thực của vùng chứa, và đọc các phản hồi (CVSS 3.1 7.6, CVSS 4.0 8.3). Cả hai đều yêu cầu người dùng đã xác thực nắm giữ phạm vi mcp:write hoặc a2a:write. Bản tin cũng đề cập đến CVE-2026-104019, một lỗ hổng chèn lệnh hệ điều hành trong tập lệnh xác thực khởi động Studio Space được sử dụng bởi Amazon SageMaker Unified Studio, được chấm 9.0 mức nghiêm trọng theo CVSS 3.1, mà AWS cho biết đã khắc phục phía máy chủ bằng một thay đổi làm sạch toàn cục được áp dụng ở lần khởi động lại Space tiếp theo.

Sau khi nâng cấp, AWS yêu cầu người vận hành xoay vòng client secret OAuth2 cho các tích hợp MCP và A2A, thu hồi và cấp lại các token đã hoạt động trong khoảng thời gian bị ảnh hưởng, và — nếu thông tin xác thực vai trò của container bị truy cập — hãy xoay vòng thông tin xác thực phiên của vai trò IAM và rà soát CloudTrail.

Tại sao bản ghi này có trong kho lưu trữ

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 được ghi nhận là một lỗ hổng, không phải sự cố: được phát hiện, không nhất thiết đã bị khai thác, INFRA và CRED, GLOBAL, mức độ nghiêm trọng cao, độ tin cậy cao. Giá trị của nó trong tập hồ sơ là một trường hợp biên cho toàn bộ nhóm mặt phẳng điều khiển tác nhân. Nhiệm vụ của Loom là nắm giữ các danh tính, đăng ký máy chủ công cụ cùng thông tin xác thực tích hợp của chúng, và các chính sách IAM quyết định những gì tác nhân được phép chạm tới — lớp kết nối nền tảng tác nhân với tài khoản đám mây mà nó trú ngụ. Một kiểm tra bị thiếu trong lớp đó không làm suy giảm một tác nhân; nó chuyển giao toàn bộ tài sản. Một hồ sơ cùng cấp trong kho lưu trữ, công bố AgentCorruption ngày 8 tháng 10 năm 2026 nhắm vào Amazon Bedrock AgentCore, mô tả cùng lớp đó bị tiếp cận bằng một con đường khác, một chuỗi SSRF từ một tác nhân hướng công khai.

Kho lưu trữ liệt kê mọi sự cố tác nhân đã được ghi nhận mà nó lưu giữ, mỗi sự cố đều có nguồn riêng, mức độ nghiêm trọng, cấp độ tin cậy và cờ tranh chấp, cùng với trường hợp này. Bài viết này nói về một bản ghi duy nhất trong tập hợp đó, và bản ghi ấy chính là nơi chứa toàn bộ phân loại theo từng trường.

Đây là một bản ghi, được những người khác nghiên cứu và báo cáo, rồi được trích dẫn ở đây cho họ. Lớp riêng của Loom — danh tính, đăng ký máy chủ công cụ và các chính sách IAM quyết định những gì tác nhân được phép chạm tới — cũng chính là lớp mà các mục cùng cấp trong kho lưu trữ sự cố AI cũng vươn tới, và mỗi bản ghi trong số đó đều mang nguồn, mức độ nghiêm trọng, cấp độ tin cậy và cờ tranh chấp của riêng mình.