Back to Intelligence

CVE-2026-65801: Critical Microsoft Cloud CVEs (Exchange Online SSRF, Entra ID Deserialization, Fabric Path Traversal) — Detection and Remediation Guide

SA
Security Arsenal Team
August 21, 2026
11 min read

In the last 72 hours, NVD published three CRITICAL, network-vector vulnerabilities against Microsoft's cloud stack:

  • CVE-2026-65801 (CVSS 10.0) — Server-Side Request Forgery (SSRF) in Microsoft Exchange Online allowing an unauthorized attacker to elevate privileges over a network.
  • CVE-2026-69836 (CVSS 10.0)Deserialization of untrusted data in Microsoft Entra ID allowing an unauthorized attacker to execute code.
  • CVE-2026-63509 (CVSS 9.9)Relative path traversal in Microsoft Fabric allowing an authorized attacker to elevate privileges over a network.

Let me be blunt about why this cluster matters more than a typical Patch Tuesday: two of these three bugs sit directly on the identity plane. Entra ID is the trust root for every Microsoft 365 tenant on the planet. A pre-auth code execution path in Entra ID and a pre-auth privilege escalation path in Exchange Online are not 'patch and move on' events — they are assume-breach events for your cloud control plane until Microsoft confirms remediation and you verify your tenant telemetry is clean.

Technical Analysis

Affected Products

CVEProductCVSSVectorPre-Auth?Impact
CVE-2026-65801Microsoft Exchange Online10.0NetworkYes (unauthorized)Privilege escalation via SSRF
CVE-2026-69836Microsoft Entra ID10.0NetworkYes (unauthorized)Remote code execution via insecure deserialization
CVE-2026-63509Microsoft Fabric9.9NetworkNo (authorized/low-priv)Privilege escalation via relative path traversal

All three are SaaS-side vulnerabilities — the vulnerable code runs in Microsoft's infrastructure, not on servers you control. That changes the remediation model (Microsoft patches the service; you cannot), but it does not eliminate your defensive obligations. Your exposure surface is the tenant-level telemetry: what did an attacker do through these flaws before they were closed?

How These Attack Classes Work — Defender's View

CVE-2026-65801 — SSRF in Exchange Online. Server-side request forgery against Exchange Online means an attacker coerces the Exchange backend into making requests on their behalf. In a cloud context, the highest-value SSRF target is the instance metadata service (IMDS) and internal service-to-service endpoints. A successful chain typically looks like: unauthenticated request to the vulnerable Exchange endpoint → forced server-side request to an internal identity/metadata endpoint → theft of a managed identity token or internal service credential → token replay to acquire elevated privileges (mail access, admin API access, or lateral movement into adjacent M365 workloads). The NVD description confirms privilege escalation as the impact, which is consistent with a token-theft-via-SSRF chain.

Observable artifacts for defenders: anomalous token issuance events for service principals that don't normally request tokens from Exchange contexts, non-interactive sign-ins from atypical IP ranges, and sudden mailbox permission or inbox rule changes following the anomalous token activity.

CVE-2026-69836 — Deserialization of untrusted data in Entra ID. Insecure deserialization (CWE-502) in the identity provider itself is the nightmare scenario. An unauthorized attacker submitting crafted serialized objects to an Entra endpoint achieves code execution in the identity service context. From a defender's perspective, the post-exploitation signatures are what you hunt: unexpected app registrations or service principal credential additions, new OAuth consent grants (especially with broad scopes like Mail.Read, Directory.ReadWrite.All, or full_access_as_app), new federated domain configurations, and Privileged Identity Management (PIM) role activations that don't correlate with change tickets.

CVE-2026-63509 — Relative path traversal in Microsoft Fabric. This one requires an authenticated Fabric user, which lowers the bar to 'any compromised user or malicious insider.' Relative path traversal (../ sequences) in Fabric's file/workspace handling lets a low-privilege user read or overwrite artifacts outside their authorized scope, then escalate — plausibly by reading another workspace's credentials, connection strings, or notebook outputs containing secrets. Hunt for workspace access events crossing tenant/role boundaries and anomalous artifact reads in Fabric audit logs.

Exploitation Status

As of publication, these CVEs are newly published to NVD (within the last 3 days). Check the following before you stand down:

  • CISA Known Exploited Vulnerabilities (KEV) catalog — if any of the three appear, federal remediation deadlines apply and exploitation is confirmed in the wild.
  • Microsoft Security Response Center (MSRC) advisory pages for each CVE — Microsoft will note exploitation status and whether service-side mitigation is complete.
  • NVD entry: https://nvd.nist.gov/vuln/detail/CVE-2026-65801

Given the pre-auth nature of CVE-2026-65801 and CVE-2026-69836, treat them as exploitable at internet scale until Microsoft confirms otherwise. CVSS 10 SSRF and deserialization bugs in internet-facing identity services historically attract rapid reverse-engineering from advisory diffs.

Detection & Response

Because the vulnerable code is service-side, your detection surface is tenant audit and sign-in telemetry, not endpoint process execution. The following content targets the post-exploitation behaviors these bugs enable.

Sigma Rules

YAML
---
title: Suspicious OAuth Consent Grant with Broad Scope in Entra ID
id: 3c1a8f92-7b4e-4d21-9c58-6f2e1a0b8d44
status: experimental
description: Detects admin consent grants to applications with high-impact scopes (mail, directory write) consistent with post-exploitation persistence after Entra ID or Exchange Online compromise (CVE-2026-69836, CVE-2026-65801).
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2026-69836
  - https://attack.mitre.org/techniques/T1550/001/
author: Security Arsenal
date: 2026/04/06
tags:
  - attack.persistence
  - attack.credential_access
  - attack.t1550.001
logsource:
  product: azure
  service: auditlogs
detection:
  selection_operation:
    OperationName: 'Consent to application'
  selection_scope:
    TargetResources|contains:
      - 'Mail.Read'
      - 'Mail.ReadWrite'
      - 'Directory.ReadWrite.All'
      - 'full_access_as_app'
      - 'RoleManagement.ReadWrite.Directory'
  condition: selection_operation and selection_scope
falsepositives:
  - Legitimate enterprise application onboarding — validate against change management records
level: high
---
title: Service Principal Credential Addition Outside Change Window
id: 8f2d6c41-3a9b-4e77-b215-0d4c9e7a1f66
status: experimental
description: Detects addition of credentials (secrets or certificates) to service principals or app registrations, a common persistence mechanism following identity-plane exploitation (CVE-2026-69836).
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2026-69836
  - https://attack.mitre.org/techniques/T1098/001/
author: Security Arsenal
date: 2026/04/06
tags:
  - attack.persistence
  - attack.t1098.001
logsource:
  product: azure
  service: auditlogs
detection:
  selection:
    OperationName|contains:
      - 'Add service principal credentials'
      - 'Update application - Certificates and secrets'
      - 'Add app role assignment to service principal'
  filter_known_automation:
    InitiatedBy|contains:
      - 'terraform'
      - 'Azure DevOps'
  condition: selection and not filter_known_automation
falsepositives:
  - CI/CD pipelines rotating application secrets — tune the filter to your automation identities
level: high
---
title: Exchange Online Mailbox Permission or Inbox Rule Change Following Anomalous Sign-In
id: 5e7b3d08-1c6f-4a92-8d34-2b8e5c0f9a71
status: experimental
description: Detects mailbox delegation or inbox rule manipulation in Exchange Online, consistent with privilege escalation follow-on activity from SSRF-driven token theft (CVE-2026-65801).
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2026-65801
  - https://attack.mitre.org/techniques/T1098/002/
author: Security Arsenal
date: 2026/04/06
tags:
  - attack.persistence
  - attack.collection
  - attack.t1098.002
logsource:
  product: azure
  service: auditlogs
detection:
  selection:
    OperationName:
      - 'Add-MailboxPermission'
      - 'Set-Mailbox'
      - 'New-InboxRule'
      - 'Set-InboxRule'
      - 'Add-RecipientPermission'
  condition: selection
falsepositives:
  - Helpdesk mailbox administration — correlate with ticket system and admin PIM activations
level: medium

KQL — Microsoft Sentinel

This query hunts the full post-exploitation chain across Entra ID and Exchange Online: anomalous non-interactive sign-ins for service principals, followed by consent grants, credential additions, or mailbox manipulation within a 6-hour window. It assumes you have SigninLogs, AADNonInteractiveUserSignInLogs, AuditLogs, and OfficeActivity flowing into Sentinel.

KQL — Microsoft Sentinel / Defender
let WindowStart = ago(7d);
let SuspiciousSignIns =
    union SigninLogs, AADNonInteractiveUserSignInLogs
    | where TimeGenerated >= WindowStart
    | where AppDisplayName has_any ("Exchange", "Office 365", "Microsoft Graph")
       or ResourceDisplayName has_any ("Exchange Online", "Microsoft Graph")
    | where ResultType == 0
    | summarize FirstSeen=min(TimeGenerated), Locations=make_set(Location),
                IPs=make_set(IPAddress), Apps=make_set(AppDisplayName)
        by UserPrincipalName, AADTenantId
    | where array_length(IPs) > 3 or FirstSeen > ago(3d);
SuspiciousSignIns
| join kind=leftouter (
    AuditLogs
    | where TimeGenerated >= WindowStart
    | where OperationName has_any ("Consent to application",
                                   "Add service principal credentials",
                                   "Update application")
    | extend InitiatedByUser = tostring(InitiatedBy.user.userPrincipalName)
    | project PostAuthTime=TimeGenerated, OperationName,
              InitiatedByUser, TargetResources
) on $left.UserPrincipalName == $right.InitiatedByUser
| join kind=leftouter (
    OfficeActivity
    | where TimeGenerated >= WindowStart
    | where Operation in ("Add-MailboxPermission", "New-InboxRule",
                          "Set-InboxRule", "Add-RecipientPermission")
    | project MailOpTime=TimeGenerated, Operation, UserId, Parameters
) on $left.UserPrincipalName == $right.UserId
| project UserPrincipalName, FirstSeen, IPs, Locations,
          OperationName, PostAuthTime, Operation, MailOpTime
| sort by FirstSeen desc

Add a second targeted hunt for Fabric path traversal abuse — workspace access anomalies:

KQL — Microsoft Sentinel / Defender
PowerBIActivity
| where TimeGenerated >= ago(7d)
| where OperationName in ("ViewArtifact", "ExportArtifact", "GetWorkspaceArtifact")
| summarize ArtifactCount=dcount(ArtifactId), Workspaces=make_set(WorkspaceId),
            Artifacts=make_set(ArtifactName)
    by UserId, bin(TimeGenerated, 1h)
| where ArtifactCount > 50 or array_length(Workspaces) > 5
| sort by ArtifactCount desc

Tune the thresholds to your Fabric usage baseline; the signal is a single identity touching many workspaces it has no business reason to access.

Velociraptor VQL

Endpoint-side forensics is warranted for the operator workstations — if Entra ID or Exchange Online tokens were replayed interactively, the attacker's tooling or a compromised admin's machine will show artifacts. This artifact hunts for suspicious PowerShell remoting into Exchange Online/Graph and evidence of token cache access on admin endpoints:

VQL — Velociraptor
-- Hunt admin endpoints for suspicious cloud tooling and token cache access
-- Relevant to post-exploitation triage for CVE-2026-65801 / CVE-2026-69836
LET procs = SELECT Pid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE CommandLine =~ '(?i)(Connect-ExchangeOnline|Connect-MgGraph|Connect-AzureAD|ExchangeOnlineManagement)'
   OR CommandLine =~ '(?i)(-CertificateThumbprint|-ClientSecret|access.token|accesstoken)'

LET tokencache = SELECT FullPath, Size, Mtime
FROM glob(globs='C:\\Users\\*\\AppData\\Local\\.IdentityService\\*')
WHERE Mtime > timestamp(epoch=now() - 604800)

SELECT 'process' AS ArtifactType, Pid, Name, CommandLine, Username,
       CreateTime AS EventTime, '' AS FullPath
FROM procs
UNION ALL
SELECT 'token_cache' AS ArtifactType, NULL AS Pid, '' AS Name,
       '' AS CommandLine, '' AS Username, Mtime AS EventTime, FullPath
FROM tokencache

Deploy this across tier-0 admin workstations first — those are the highest-value replay targets.

Remediation and Verification Script

There is no on-prem patch to push for these CVEs — but you must audit your tenant for exploitation artifacts and tighten identity controls. This PowerShell script audits OAuth consents, service principal credential changes, and Exchange mailbox delegations from the last 14 days:

PowerShell
# CVE-2026-65801 / CVE-2026-69836 tenant audit — run with Global Reader or higher
# Requires: Microsoft.Graph, ExchangeOnlineManagement modules
Connect-MgGraph -Scopes "AuditLog.Read.All","Directory.Read.All","Application.Read.All"
Connect-ExchangeOnline

$start = (Get-Date).AddDays(-14).ToString('yyyy-MM-ddTHH:mm:ssZ')

# 1. Recent consent grants with high-impact scopes
Write-Host "=== OAuth Consent Grants (last 14 days) ===" -ForegroundColor Cyan
Get-MgAuditLogDirectoryAudit -Filter "activityDateTime ge $start" -All |
  Where-Object { $_.ActivityDisplayName -eq 'Consent to application' } |
  ForEach-Object {
    [PSCustomObject]@{
      Time      = $_.ActivityDateTime
      Initiator = $_.InitiatedBy.user.userPrincipalName
      Target    = ($_.TargetResources | Select-Object -First 1).DisplayName
      Scopes    = ($_.TargetResources | Select-Object -First 1).ModifiedProperties
    }
  } | Format-List

# 2. Service principal credential additions
Write-Host "=== Service Principal Credential Changes ===" -ForegroundColor Cyan
Get-MgAuditLogDirectoryAudit -Filter "activityDateTime ge $start" -All |
  Where-Object { $_.ActivityDisplayName -match 'credential|Certificates and secrets' } |
  Select-Object ActivityDateTime, ActivityDisplayName,
    @{n='Initiator';e={$_.InitiatedBy.user.userPrincipalName}} | Format-Table -AutoSize

# 3. New app registrations
Write-Host "=== New App Registrations ===" -ForegroundColor Cyan
Get-MgAuditLogDirectoryAudit -Filter "activityDateTime ge $start" -All |
  Where-Object { $_.ActivityDisplayName -eq 'Add application' } |
  Select-Object ActivityDateTime,
    @{n='Initiator';e={$_.InitiatedBy.user.userPrincipalName}},
    @{n='AppName';e={($_.TargetResources | Select-Object -First 1).DisplayName}} | Format-Table -AutoSize

# 4. Exchange mailbox delegation and inbox rule changes
Write-Host "=== Exchange Mailbox Permission / Inbox Rule Changes ===" -ForegroundColor Cyan
Search-UnifiedAuditLog -StartDate (Get-Date).AddDays(-14) -EndDate (Get-Date) `
  -Operations "Add-MailboxPermission","New-InboxRule","Set-InboxRule","Add-RecipientPermission" `
  -ResultSize 5000 |
  Select-Object CreationDate, UserIds, Operations, AuditData | Format-List

# 5. Verify CA policies block legacy auth (SSRF token replay often pivots to legacy protocols)
Write-Host "=== Conditional Access Policies ===" -ForegroundColor Cyan
Get-MgIdentityConditionalAccessPolicy |
  Select-Object DisplayName, State | Format-Table -AutoSize

Write-Host "Review output against change tickets. Any unaccounted consent grant, credential addition, or mailbox delegation is a potential indicator of compromise." -ForegroundColor Yellow

Remediation

1. Confirm Microsoft's service-side remediation status. These are SaaS vulnerabilities — the fix is applied by Microsoft. Check the MSRC advisory for each CVE and confirm your tenant shows no outstanding advisory flags in the Microsoft 365 admin center (Service Health → Security advisories). Do not assume closure until MSRC states mitigation is complete.

2. Audit for pre-patch exploitation — this is your primary remediation. Run the audit script above. Specifically validate:

  • Every OAuth consent grant in the last 30 days maps to a change ticket.
  • No new service principal credentials exist outside your automation pipeline.
  • No unexplained mailbox delegations or forwarding rules exist on executive and finance mailboxes (classic post-SSRF targets).
  • Fabric workspace access aligns with role assignments; look for cross-workspace reads by low-privilege accounts (CVE-2026-63509 pattern).

3. Revoke suspicious artifacts immediately. For any unexplained app registration or consent grant: remove the grant, disable the service principal, revoke refresh tokens (Revoke-MgUserSignInSession for affected users), and open an IR case — consent grant abuse is a persistence mechanism, not a misconfiguration.

4. Harden the identity plane against replay.

  • Enforce phishing-resistant MFA (FIDO2/passkeys) for all admin roles; token replay defeats SMS/OTP MFA.
  • Block legacy authentication protocols tenant-wide via Conditional Access — SSRF-acquired tokens are frequently replayed against legacy endpoints.
  • Enable Continuous Access Evaluation (CAE) so revoked tokens die quickly.
  • Restrict Fabric workspace creation and artifact sharing to governed security groups until CVE-2026-63509 remediation is confirmed.

5. Monitor CISA KEV. If any of these three CVEs lands in the KEV catalog, Binding Operational Directive 22-01 deadlines apply to federal agencies, and you should treat private-sector remediation as equally urgent.

6. Reference points:

The uncomfortable truth about SaaS CVEs is that you can't patch them — you can only prove you weren't exploited. Make that proof your deliverable this week.

Related Resources

Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.