Microsoft Fixed CVE-2026-32173 Correctly. The Disclosure Pattern Is What Procurement Should Refuse to Accept.
Microsoft's server-side fix for CVE-2026-32173, the Azure SRE Agent /agentHub multi-tenant authentication bypass, was the right engineering call. The disclosure pattern that followed it, where customers received no per-tenant forensic record of what was exposed and no individual notification, is what procurement should treat as an unacceptable vendor norm for agentic services. The questionnaire row that would have caught this has two parts: tenant-isolation attestation for the agent control plane, and customer-side observability of agent-to-tenant binding events.
The Thesis: Server-Side Fix, Customer-Side Blindness
The CVE itself is a textbook multi-tenancy failure on a service marketed for single-tenant cloud-operator use. Enclave AI's Yanir Tsarimi documented that the /agentHub WebSocket SignalR endpoint validated token signature and audience, but the underlying Entra application registration was multi-tenant, so any account from any Entra tenant could mint tokens the gateway accepted. Once connected, the SignalR hub broadcast every event to every client with no identity filtering: user prompts, agent reasoning, full Azure CLI command arguments and outputs, and deployment credentials.
Tsarimi's summary names the gap directly. In his framing, the hub validated the token but never asked: "Does this caller belong to the target's tenant?" Exploitation required the target subdomain ("predictable and enumerable") and roughly fifteen lines of Python. The /agentHub is the agent control plane, not the data plane, which is the distinction I flagged when GitHub shipped Agent HQ: control planes concentrate prompts, reasoning traces, and credential injection in a single hosted surface, and their blast-radius math is different from CI/CD because the artifact at risk is the agent's working memory, not the build output.
Microsoft fixed the gateway server-side and told customers no action was required. That phrasing is accurate for the technical remediation; it is misleading for the compliance posture of any regulated customer whose data may have been exposed during the preview-through-GA window. The Azure SRE Agent went generally available on March 10, 2026. The vulnerability sat in the control plane before that. "No customer action required" is a vendor convenience, not a regulatory determination.
The Evidence: Three Specific Gaps the Disclosure Left Open
First, there is no per-tenant forensic record. Tsarimi wrote that "the only record of the connection existed in the attacker's terminal. Victim organizations had no way to detect it," meaning the customer had no way to investigate after the fact and no way to scope what had been exposed. A regulated customer with HIPAA, PCI, or SOX scope cannot satisfy a notification or breach-determination obligation by quoting the vendor's assurance that nothing happened. The customer needs evidence the customer can produce. The disclosure-maturity rubric I drew from the Lovable 76-day incident scores vendor day-one choices on exactly this dimension: did the disclosure give the buyer enough specificity to file an 8-K, notify regulators, or rotate credentials. Microsoft's day-one choice on CVE-2026-32173 scores low on that rubric, regardless of how cleanly the patch shipped.
Second, the scoring ecosystem under-models this class of risk. Microsoft scored CVE-2026-32173 at CVSS 8.6 with Scope:Changed, meaning the exploit crosses a security authority boundary. NIST scored it 7.5 with Scope:Unchanged, treating Azure SRE Agent's tenants as members of a single trust domain. The 1.1-point gap is the explicit mathematical disagreement on whether tenant boundaries are security boundaries. Microsoft was right; NIST was scoring as if multi-tenant SaaS tenants share a trust authority, which is precisely the assumption that the CVE invalidated. This is the same CVSS-divergence pattern Adobe ran on AV:N versus AV:L in a different direction: the score the buyer sees is a vendor artifact, not an architectural truth, and procurement should treat the divergence itself as a signal worth investigating.
Third, the documentation paradox is unresolved. Microsoft publishes guidance for customers architecting multi-tenant Azure resource management with SRE Agent and Lighthouse while the gateway's own multi-tenant misconfiguration was the vulnerability. Customer-side architectural guidance does not substitute for vendor-side tenant-isolation attestation on the control plane that runs the agent.
This pattern is not new. Microsoft's earlier CVE-2025-55241 was a cross-tenant Entra ID impersonation flaw, also fixed server-side, also with no customer action required, also with no per-tenant forensic record. The disclosure shape is becoming a norm, and the procurement instrument has not caught up. I have made an adjacent argument about supply-chain questionnaires in Mistral's advisory and the missing questionnaire row, and about agent control-plane procurement specifically in the ServiceNow agent kill-switch piece, where the BodySnatcher disclosure put the same control-plane class of failure into the public record three weeks earlier.
The Counterargument: Silent Fixes Are a Feature, Not a Bug
There is a real case for the vendor pattern that played out here. Mass notification of every Azure tenant about a vulnerability that may or may not have touched their data would create alert fatigue, would invite copycat scanning during a partial-patch window, and would force every customer through an incident-response cycle most do not need. The CSO Online coverage of the disclosure framed the closure as a clean outcome: vulnerability identified, vendor fixed it, no exploitation observed in the wild that the researcher disclosed. By the operational standard cloud providers have established, that is a successful incident.
This counterargument is partially correct. Silent server-side fixes are appropriate for vulnerabilities where the vendor can credibly determine no customer data left a security boundary. The problem is that for a multi-tenant authentication bypass that broadcast plaintext prompts and CLI output to any caller who connected to a predictable subdomain, the vendor cannot credibly determine that from their telemetry alone, and the customer has no independent ability to verify it. The standard for closure has to be the standard the regulated customer can defend in an audit, not the standard the vendor can defend in a blog post.
Resolution: The Two-Part Procurement Row
The questionnaire row that should have caught this, and that should be added to SOC 2, ISO 27001, and CSA CAIQ derivatives before the next agentic SaaS purchase, has two parts. It belongs inside the Five Eyes procurement scaffold as an extension of the Privilege and Structural risk classes, not as a freestanding requirement.
Part one is tenant-isolation attestation for the agent control plane, not just the data plane. Standard cloud-security questionnaires ask whether customer data is isolated per tenant; they rarely ask whether the agent gateway, the prompt-routing layer, the reasoning-trace broadcast channel, and the credential-injection pathway are isolated per tenant. CVE-2026-32173 is a control-plane failure that produced data-plane consequences. The attestation needs to name the components by function (gateway, hub, orchestrator, trace channel) and state, per component, which tenant-binding mechanism is enforced and where it is tested.
Part two is customer-side observability of agent-to-tenant binding events. Activity Log and CloudTrail give customers data-plane evidence about their own resources. They do not, today, give customers a record of which sessions were authenticated against their tenant by the vendor's agent gateway, what reasoning traces were emitted, and which CLI commands the agent ran on the customer's behalf. The customer cannot independently audit the boundary if the vendor controls the only log of whether the boundary held. Part one proves the boundary exists; part two proves the customer can verify it without taking the vendor's word for it.
This is the same pattern I traced for shared-kernel SaaS risk in the CopyFail kernel CVE and procurement SLA piece: an architectural assumption that is invisible to the standard questionnaire becomes a compliance liability when the assumption breaks. The fix is not better incident response. The fix is a procurement question that, if answered honestly, exposes the architecture before the contract is signed.
For a public-company customer running Azure SRE Agent during the preview-through-GA window, the 8-K materiality determination cannot be made from "no customer action required." It has to be made from a per-tenant forensic record of what the agent saw and emitted, or from a documented absence of such a record, which is itself a finding. Buyers of agentic services should require both attestations in writing before the next renewal, and should treat any vendor that cannot produce them as an unresolved supply-chain control.