A bug in a building you don't own, fixed by the landlord before you noticed
CVE-2026-47645 is a classic CWE-601 open redirect in the URL-handling layer of Microsoft 365 Copilot's Business Chat (the M365-tenanted *BizChat* surface, not the consumer Copilot). An attacker crafts a chat or link that, when a user clicks, bounces them through a Copilot-controlled redirect endpoint to an attacker-controlled URL — useful as a phishing primer, OAuth consent stage, or token-grab funnel because the originating host is a trusted *.microsoft.com / *.cloud.microsoft domain. The affected component is the Microsoft-hosted Copilot service itself; there is no version range on customer infrastructure because there is no customer infrastructure to version. Microsoft documents the fix as an exclusively-hosted service update — already deployed.
Microsoft's HIGH / 8.8 label with C:H/I:H/A:H is the usual MSRC over-scoring for service-side Copilot bugs and *does not* match real-world impact. An open redirect that requires UI:R does not directly compromise confidentiality, integrity, or availability of anything in your tenant — it lends credibility to a phishing lure. The vendor score is inflated; the defender-relevant score is near zero because you cannot patch this and you do not need to.
4 steps from start to impact.
Attacker crafts a redirect URL on the Copilot BizChat endpoint
- Knowledge of the vulnerable redirect parameter (publicly disclosed in advisory)
- Attacker-controlled landing domain
- Microsoft patched the redirect endpoint server-side prior to disclosure — the primitive no longer works against the live service
Lure delivery to a target user
- Email/Teams reachability to target
- User trusts Microsoft-branded URLs
- Defender for Office 365 Safe Links rewrites and time-of-click scans
- Modern SEGs (Proofpoint, Mimecast, Abnormal) detect redirect chains
- External-sender banners on Teams Federation
User clicks and is redirected to attacker page
- User clicks
- Browser does not block the redirect
- Target lacks phishing-resistant auth
- FIDO2 / phishing-resistant MFA defeats AiTM credential capture
- Conditional Access with device compliance blocks unmanaged-device sign-ins
- Browser SmartScreen / Safe Browsing flags known phishing kits
Credential or token theft → tenant access
- No phishing-resistant MFA
- User has meaningful tenant privileges
- No CA policy blocking the sign-in
- Token Protection (Entra)
- App consent governance restricting third-party OAuth apps
- Identity Protection risk-based sign-in policies
The supporting signals.
| In-the-wild exploitation | None reported. Not on CISA KEV. No public IOC feeds list this CVE. |
|---|---|
| Public PoC | No public PoC. Microsoft classifies the fix as exclusively-hosted; no reproducible artifact on customer-side. |
| EPSS | Not yet scored at disclosure; expected <0.1% — open redirects on patched SaaS rarely receive meaningful EPSS |
| KEV status | Not listed (CISA KEV, as of 2026-06-20) |
| CVSS vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H — 8.8 HIGH per MSRC. The C:H/I:H/A:H triad is inflated for a CWE-601 primitive; real impact requires chained phishing infrastructure. |
| Affected component | Microsoft 365 Copilot Business Chat (BizChat), URL redirect handler. Microsoft-hosted service only. |
| Fixed version | No customer action — Microsoft patched server-side prior to publication. No tenant-side update, no agent, no on-prem package. |
| Exposure data | Shodan / Censys / GreyNoise irrelevant — the affected endpoint is Microsoft's, not yours. Customer attack surface is zero. |
| Disclosure date | 2026-06-19 via MSRC advisory |
| Reporter | Credited to external researcher via MSRC coordinated disclosure (full credit in MSRC advisory) |
noisgate verdict.
This is a Microsoft-hosted SaaS bug that Microsoft already fixed on their backend before publication — there is literally no artifact on your fleet to patch, scan, or version-check. The decisive factor is no customer-side remediation surface: the vulnerability lives entirely in Microsoft's service plane.
Why this verdict
- No customer attack surface: the vulnerable endpoint is
*.cloud.microsoft/ Copilot service infrastructure. You do not host it, version it, or patch it. - Microsoft has already remediated server-side per MSRC's exclusively-hosted-service classification — the bug is dead in the live service as of disclosure.
- Open redirect is a phishing accelerant, not an RCE. The
C:H/I:H/A:Htriad assumes a chained AiTM phishing campaign; the CVE itself does not compromise data, integrity, or availability of your tenant. - UI:R is required — a user must click, and your existing Safe Links / SEG / FIDO2 stack is the actual control plane that matters.
- Role multiplier: the affected component is a *consumer-facing chat UI*, not identity (Entra), not a hypervisor, not a DC, not a CA, not backup, not a kernel agent, not network edge. No high-value-role floor applies — the deployment-role spectrum collapses to a single tenant-side UX surface that Microsoft already fixed.
- Not on KEV, no public PoC, no EPSS signal — no urgency drivers.
Why not higher?
A higher verdict would imply customer-side patching urgency or in-the-wild exploitation against your assets. Neither exists: Microsoft owns the patch surface, the fix is already deployed, and there is no KEV listing or campaign telemetry. The 8.8 HIGH vendor score is MSRC's standard scoring template for Copilot bugs, not a reflection of defender impact.
Why not lower?
We chose IGNORE rather than 'does not apply' because awareness still matters: defenders should make sure their Safe Links, FIDO2, and OAuth app-consent governance are healthy, since open-redirect-fueled phishing is a perennial vector. But there is no patch deadline, no compensating control SLA, and no detection rule unique to this CVE.
What to do — in priority order.
- Document the CVE as 'vendor-remediated, no action' — Add to your vulnerability management exception register so audit/regulators see the rationale. No mitigation SLA applies — IGNORE bucket means document and move on.
- Verify Safe Links and Safe Attachments are enabled tenant-wide — Safe Links time-of-click detonation neutralizes the entire class of open-redirect-fueled phishing, not just this CVE. Confirm coverage in Microsoft 365 Defender → Email & collaboration → Policies.
- Enforce phishing-resistant MFA (FIDO2 / passkeys) on privileged accounts — If a chained AiTM phishing kit lands a user, FIDO2 defeats the credential and token capture. This is the actual control that matters for the broader open-redirect-into-AiTM threat model.
- Restrict third-party OAuth app consent in Entra ID — Set 'Users can consent to apps from verified publishers, for selected permissions' or stricter. Open-redirect phishing often funnels into a malicious OAuth consent prompt; admin-consent workflows close that exit.
- Patching Windows / Office clients — there is no client-side patch for this CVE; the bug is in Microsoft's cloud service.
- Vulnerability scanners (Tenable, Qualys, Rapid7) — they cannot detect this on your fleet because the vulnerable code never ran on your fleet.
- Web Application Firewalls in front of your apps — irrelevant; the vulnerable endpoint is Microsoft's, not yours.
- **Blocking
*.microsoft.comegress** — operationally catastrophic and would break every M365 workload.
Crowdsourced verification payload.
There is no on-host artifact to verify because this is a Microsoft-hosted service fix. Run this on any auditor workstation with Microsoft Graph PowerShell installed as a tenant Global Reader to confirm the *defender-relevant* compensating posture (Safe Links policy + Copilot tenant settings). Invocation: pwsh -File noisgate-CVE-2026-47645-posture.ps1 -TenantId <your-tenant-guid>. Requires Global Reader or Security Reader.
#!/usr/bin/env pwsh
# noisgate verification for CVE-2026-47645
# This CVE is a Microsoft-hosted service bug. There is no host-side version to check.
# Instead we verify the tenant-side compensating posture that actually matters.
param(
[Parameter(Mandatory=$true)][string]$TenantId
)
$ErrorActionPreference = 'Stop'
$status = 'UNKNOWN'
$findings = @()
try {
Import-Module Microsoft.Graph.Identity.SignIns -ErrorAction Stop
Connect-MgGraph -TenantId $TenantId -Scopes 'Policy.Read.All','Directory.Read.All' -NoWelcome | Out-Null
# 1. CVE artifact check — informational only
Write-Host '[*] CVE-2026-47645 affects Microsoft-hosted Copilot BizChat. Fixed server-side by Microsoft. No customer patch.' -ForegroundColor Cyan
# 2. Verify user OAuth consent policy is restricted
$authPolicy = Get-MgPolicyAuthorizationPolicy
if ($authPolicy.DefaultUserRolePermissions.PermissionGrantPoliciesAssigned -contains 'ManagePermissionGrantsForSelf.microsoft-user-default-low' -or `
$authPolicy.DefaultUserRolePermissions.PermissionGrantPoliciesAssigned.Count -eq 0) {
$findings += 'OAuth consent: RESTRICTED (good)'
} else {
$findings += 'OAuth consent: PERMISSIVE — tighten in Entra → Enterprise apps → Consent and permissions'
}
# 3. Hint at Safe Links posture (Exchange Online PS required for full check)
$findings += 'Manual: confirm Safe Links policy is enabled tenant-wide via Get-SafeLinksPolicy in Exchange Online PowerShell'
$findings += 'Manual: confirm Conditional Access enforces phishing-resistant MFA on privileged roles'
$status = 'PATCHED' # Microsoft already fixed the service-side bug
}
catch {
Write-Error "Graph query failed: $_"
$status = 'UNKNOWN'
}
finally {
Disconnect-MgGraph -ErrorAction SilentlyContinue | Out-Null
}
Write-Host ''
Write-Host "=== noisgate findings ===" -ForegroundColor Yellow
$findings | ForEach-Object { Write-Host " - $_" }
Write-Host ''
Write-Host "STATUS: $status" -ForegroundColor Green
switch ($status) {
'PATCHED' { exit 0 }
'VULNERABLE' { exit 1 }
default { exit 2 }
}
If you remember one thing.
Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.