TL;DR

Một lỗ hổng scope-overreach trong nền tảng Entra Agent Identity của Microsoft cho phép bất kỳ tài khoản nào nắm role Agent ID Administrator tự gán mình làm owner của bất kỳ service principal (SP) nào trong tenant — kể cả các SP có quyền tương đương Global Administrator. Sau khi đã sở hữu SP, kẻ tấn công thêm credential mới và đăng nhập với toàn bộ quyền của SP đó. Silverfort báo cáo cho MSRC tháng 2/2026, Microsoft đã vá toàn bộ cloud vào 9/4/2026. Chưa có CVE công khai.

Lỗ hổng Entra Agent ID Administrator hijack service principal

Điều gì vừa xảy ra

Tháng 2/2026, các nhà nghiên cứu Silverfort gửi báo cáo cho Microsoft Security Response Center (MSRC) về một scope-overreach trong role mới Agent ID Administrator — role được sinh ra để quản lý các AI agent identity trong Entra Agent ID Platform. Theo thiết kế, role này chỉ được phép động đến các object liên quan đến agent. Trên thực tế, hệ thống quên kiểm scope ở endpoint cập nhật owner của service principal, mở ra một con đường leo thang quyền chạy thẳng tới Global Admin mà bypass mọi review về role privileged thông thường.

Microsoft xác nhận, fix âm thầm và roll-out hoàn tất ngày 9/4/2026 trên tất cả cloud environments. Sau patch, role Agent ID Administrator không còn modify được owner của các SP không thuộc agent.

Vì sao đáng lo

Service principal là "identity" của ứng dụng — đứng sau CI/CD pipeline, công cụ bảo mật, automation, app multi-tenant đã được admin consent. Nếu một SP nào đó trong tenant của bạn nắm Application.ReadWrite.All, RoleManagement.ReadWrite.Directory hoặc role directory cấp admin, thì chiếm được SP đó tương đương chiếm được tenant. Lỗ hổng này biến một role tưởng "cấp thấp" thành con đường ngắn nhất để đi từ engineer tự động hoá phụ trách AI agent → toàn quyền tenant. Tệ hơn, UI Entra không gắn nhãn role này là "Privileged", nên rất nhiều tổ chức đã cấp nó mà không qua review PIM hay conditional access nghiêm ngặt.

Agent ID Administrator role không được flag là Privileged trong UI Entra

Chi tiết kỹ thuật

Agent identity được build trên đúng các primitive cũ: application object + service principal object. Server-side check chặn role mới sửa owner của application object, nhưng quên chặn ở object service principal. Dưới đây là chuỗi 3 bước Silverfort mô tả:

  1. Hijack ownership — gọi Microsoft Graph: POST /servicePrincipals/{id}/owners/$ref để tự thêm mình làm owner một SP bất kỳ.
  2. Inject credential — gọi POST /servicePrincipals/{id}/addPassword (hoặc addKey) để gắn secret/cert mới vào SP đó.
  3. Authenticate as SP — dùng credential vừa tạo xin token, kế thừa toàn bộ role và Graph permission của SP nạn nhân.

Sơ đồ tấn công 3 bước hijack service principal qua role Agent ID Administrator

Thuộc tínhGiá trị
Role bị lạm dụngAgent ID Administrator
Endpoint vulnerablePOST /servicePrincipals/{id}/owners/$ref
Object bị che chắn đúngApplication object (bị chặn)
Object bị bỏ sótService Principal object
Disclosure → PatchTháng 2/2026 → 9/4/2026
CVEChưa công khai
ResearcherSilverfort

So sánh với các vụ Entra/Azure AD gần đây

Service principal ownership abuse không mới — Semperis đã ghi chép pattern này từ nhiều năm trước. Khác biệt lần này nằm ở điểm vào: trước đây cần explicit permission "manage application" hoặc Cloud Application Administrator để vào được con đường này; Agent ID Administrator là role mới, đi kèm AI hype, nên được cấp rộng cho team automation mà chưa qua privileged review. Cùng dòng với Actor Token bug (2025) và Datadog "I SPy" first-party app escalation: ranh giới giữa "admin role hẹp" và "Global Admin" mỏng hơn rất nhiều khi service principal vào cuộc.

Ai bị ảnh hưởng

  • Tenant đã enable Entra Agent ID giai đoạn preview/GA cuối 2025–đầu 2026.
  • Tổ chức cấp role Agent ID Administrator cho automation/AI engineer mà không qua PIM.
  • Tenant có SP cao cấp cho: GitHub Actions OIDC, Azure DevOps, SIEM/EDR Graph reader, backup/restore, app multi-tenant đã admin consent.
  • Red-team scenario: phish một engineer junior chỉ giữ role này → pivot sang SP nắm RoleManagement.ReadWrite.Directory → tự gán Global Admin.

Hạn chế & phản ứng đề xuất

Lỗ hổng đã được vá, không cần customer action cho fix. Tuy vậy hardening dài hạn vẫn cần:

  • Inventory SP đặc quyền: dùng az ad sp list + Microsoft Graph để liệt kê SP nắm directory role admin hoặc Graph permission high-impact.
  • Audit log: alert ngay với event Add owner to service principalAdd service principal credentials trong Entra audit log.
  • Treat as privileged: đưa Agent ID Administrator vào danh sách role cần PIM, conditional access yêu cầu MFA + compliant device, và review định kỳ.
  • Lifecycle credential SP: rotate secret/cert SP định kỳ, dùng workload identity federation thay client secret nơi nào có thể.

Sắp tới

Đợi Microsoft (a) gắn nhãn Privileged cho role Agent ID Administrator trong UI, (b) tách scoping primitive cho admin role chuyên agent (giống cách AU/Administrative Units giới hạn scope), và (c) tài liệu hoá rõ boundary giữa application object và service principal object. Silverfort và Semperis đều phát tín hiệu sẽ ra thêm nghiên cứu về privilege escalation trên agent identity khi nhiều tenant bật agentic workload — đây sẽ là một mặt trận nóng trong cả 2026.

Nguồn: CybersecurityNews, GBHackers, Silverfort, Semperis Research.