← Back to Feed CACHED · 2026-07-25 06:18:56 · CACHE_KEY CVE-2026-58630
CVE-2026-58630 · CWE-284 · Disclosed 2026-07-24

Improper access control in Azure App Service

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

A CRITICAL-badged Azure bug that quietly only affects the on-prem hybrid product almost nobody runs

CVE-2026-58630 is an *improper access control* flaw (CWE-284) in the App Service resource provider on Azure Stack Hub — Microsoft's on-premises hybrid-cloud appliance. Per the July 23 advisory, an unauthenticated network-adjacent attacker can bypass authorization boundaries to elevate privilege inside the App Service RP, potentially reading tenant deployment credentials, publishing profiles, and service-to-service tokens. Affected versions are not enumerated in the advisory; Microsoft directs operators to cross-reference their Azure Stack Hub build+hotfix level against App Service release notes. The public Azure PaaS *.azurewebsites.net fleet is not in scope.

The vendor's CVSS 10.0 (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N) is technically correct — the vector chain is genuinely unauthenticated, network-reachable, with a scope change into other tenants — but the label is misleading in operational terms. Azure Stack Hub is a niche appliance (sovereign cloud, defense, disconnected edge). The blast radius per deployment is legitimately high because you're breaking multi-tenant isolation, but the *reachable population* is a rounding error compared to what 'Azure App Service CRITICAL 10' suggests to a triage queue. That mismatch is why we drop this to HIGH, not because the bug is weak.

"Vendor's 10.0 assumes public Azure App Service. This only touches Azure Stack Hub — small footprint, big blast per tenant."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Reach the Azure Stack Hub App Service management endpoint

Attacker needs TCP reachability to the App Service resource provider on the Stack Hub deployment — typically the tenant portal, admin portal, or the App Service management API endpoints exposed inside the customer's datacenter. In most deployments these endpoints are on an internal management VLAN, not the internet.
Conditions required:
  • Network path to the Stack Hub App Service RP endpoints
  • DNS resolution for the tenant/admin portal FQDNs
Where this breaks in practice:
  • Azure Stack Hub is nearly always deployed on segmented management networks
  • Many operators front the portals with a reverse proxy + client cert auth
Detection/coverage: Shodan/Censys rarely index Stack Hub endpoints; passive DNS is the only reliable footprint signal
STEP 02

Trigger the access-control bypass in the App Service RP

Send a crafted request against the vulnerable App Service RP endpoint. Because the CVSS vector marks PR:N and UI:N, no valid tenant credential or user interaction is required — the RP fails to enforce authorization on a path that should require an authenticated principal. Exact call signature has not been published.
Conditions required:
  • Vulnerable Stack Hub build without the July 2026 App Service RP hotfix
Where this breaks in practice:
  • No public PoC as of 2026-07-25
  • Reproducing requires a Stack Hub lab, which few researchers own
Detection/coverage: Azure Stack Hub audit logs; look for anonymous or unusually-scoped calls into /subscriptions/*/providers/Microsoft.Web/*
STEP 03

Escalate into cross-tenant App Service functions

The Scope:Changed vector means the attacker's request executes against resources belonging to *other* tenants on the same Stack Hub — pulling publishing profiles, MSI tokens, Kudu SCM credentials, or deployment slot secrets. Weaponization = curl plus Microsoft's own ARM REST client; no exotic tooling required.
Conditions required:
  • Successful bypass from step 2
  • Other tenants have active App Service workloads
Where this breaks in practice:
  • Small Stack Hub deployments may have only one or two tenants — limits cross-tenant value
Detection/coverage: MSI token issuance anomalies; Kudu deployment log access from unexpected client IPs
STEP 04

Pivot to hosted workloads and downstream identity

With publishing profiles or MSI tokens the attacker deploys arbitrary code into victim App Service instances, then rides those workloads' managed identities into whatever Key Vault, Storage, or on-prem AD-integrated resources the tenants trust. On a sovereign-cloud Stack Hub this is where the incident becomes strategic.
Conditions required:
  • Tenant workloads hold MSI grants to sensitive backends
Where this breaks in practice:
  • Well-scoped MSI role assignments and Key Vault access policies limit blast
Detection/coverage: Azure Monitor for Stack Hub, Defender for Cloud (Stack Hub connector), Key Vault access anomaly alerts
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo active exploitation observed as of 2026-07-25. Not on CISA KEV.
Public PoCNone published. No GitHub repos, no Metasploit module, no researcher writeup beyond the MSRC advisory.
EPSSNot yet scored by FIRST — advisory is <48h old. Expect initial score <1% given zero PoC and niche footprint.
KEV statusNot listed.
CVSS vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N — unauthenticated network, scope-changed, confidentiality+integrity impact, no availability hit. Vendor score 10.0 CRITICAL.
Affected componentAzure Stack Hub App Service resource provider — on-premises only. Public Azure App Service (*.azurewebsites.net) is not affected per the MSRC advisory.
Fixed versionsMicrosoft directs operators to the latest App Service on Azure Stack Hub RP update; specific build/hotfix numbers are on the MSRC portal (MSRC/update-guide/vulnerability/CVE-2026-58630).
Exposure dataAzure Stack Hub is not enumerable via Shodan/Censys/GreyNoise in any meaningful way — management endpoints live on internal VLANs. Installed base is estimated in the low thousands globally (defense, sovereign cloud, telco edge).
Disclosure date2026-07-24 (MSRC public advisory). Coordinated disclosure; no zero-day window reported.
CreditMicrosoft Security Response Center advisory does not currently name an external reporter — likely internal Microsoft finding.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to HIGH (8.4/10)

The single most decisive factor is the *narrow affected product*: this bug lives in the App Service resource provider on Azure Stack Hub, not public Azure App Service — an installed base measured in thousands, not millions, and almost always behind an internal management network. It stays HIGH rather than dropping further because the affected component is a canonically multi-tenant PaaS platform — a successful chain breaks tenant isolation, which is the CRITICAL-floor scenario for any tenant-per-workload host.

HIGH Product scoping (Stack Hub only, not public Azure)
MEDIUM Attack path detail — specific vulnerable endpoint not yet public
LOW Exploitation timeline — no PoC yet, but Stack Hub bugs typically stay non-weaponized for months

Why this verdict

  • Product scope narrows the population by ~1000x: vendor CRITICAL 10 implies every App Service tenant on Earth, but MSRC scopes this to Azure Stack Hub only. Baseline drops from 'internet-facing PaaS' to 'niche on-prem appliance.'
  • Management plane is internal by design: Stack Hub tenant and admin portal endpoints are almost universally on segmented VLANs, not routable from the internet. AV:N is technically true but the reachable N is tiny.
  • No PoC, no KEV, no observed campaigns 24 hours post-disclosure. First public exploitation typically lags Stack Hub advisories by weeks or is never observed at all.
  • Role multiplier — App Service RP is a multi-tenant control plane: if the chain lands, tenant isolation breaks and MSI tokens / publishing profiles leak across tenants on that Stack Hub. That is the CRITICAL-floor blast radius for a PaaS host, which is why we do not drop below HIGH.
  • Role multiplier — Stack Hub deployments skew sovereign/defense/telco-edge: the small population that IS affected tends to run high-consequence workloads, so a HIGH is not a shrug — it is a real 30-day-mitigate obligation for that subset.

Why not higher?

CRITICAL would be appropriate if this hit public Azure App Service or if there were an active PoC. Neither is true: the population is a small on-prem appliance base, management endpoints are internal, and no weaponization exists 24h in. Reserving CRITICAL for cases with real-world exploitability keeps the queue meaningful.

Why not lower?

MEDIUM would ignore the role multiplier — the affected component is a multi-tenant PaaS control plane, and a successful chain breaks tenant isolation. Any bug that leaks credentials across tenant boundaries on a hosting platform floors at HIGH, even with a small install base and no PoC.

05 · Compensating Control

What to do — in priority order.

  1. Confirm Stack Hub App Service RP build level against MSRC guidance — Log into the Stack Hub admin portal, check the App Service RP version, and compare to the fixed build listed on the MSRC advisory. If below, you are exposed. Do this within the noisgate mitigation SLA of 30 days for HIGH.
  2. Restrict management-plane reachability to a jumphost VLAN — Confirm that tenant and admin portal endpoints are unreachable from user LANs, VPN pools, and the internet. Enforce jumphost-only access with MFA and client certificates. This is the single highest-leverage mitigation while awaiting the RP hotfix.
  3. Rotate all App Service tenant deployment credentials — Rotate publishing profiles, Kudu SCM credentials, deployment tokens, and any static tenant automation secrets. If the bug has been latent, assume these may already be harvested. Complete within 30 days.
  4. Enable and forward Stack Hub audit + App Service Kudu logs to SIEM — Add detections for anonymous or unexpected-principal calls into Microsoft.Web/* provider paths, and for Kudu deployment activity from IPs outside your CI/CD ranges. Backdate the hunt 30 days once deployed.
  5. Apply Microsoft's App Service RP hotfix as soon as it reaches your update channel — Stack Hub patches follow the update package cadence, not Patch Tuesday. Schedule the patching maintenance window within the noisgate remediation SLA of 180 days, ideally much sooner given the tenant-isolation blast radius.
What doesn't work
  • Azure WAF / Front Door rules — you're on Stack Hub, not public Azure, and the vulnerable endpoints are internal management-plane APIs, not tenant HTTP workloads.
  • Public Azure Defender for App Service — its coverage is for the public PaaS; the Stack Hub connector has different, weaker telemetry.
  • Rotating tenant *user* passwords — the flaw is PR:N, so no credential is being abused in the initial call; user password rotation doesn't touch the attack path.
  • Network-based IPS signatures — no public PoC or traffic signature exists yet; signature vendors have nothing to write.
06 · Verification

Crowdsourced verification payload.

Run this from a Stack Hub operator workstation with the Az.Stack / AzureStack PowerShell modules installed and an admin login to the Stack Hub admin ARM endpoint. Invoke as: .\Check-CVE-2026-58630.ps1 -AdminArmEndpoint 'https://adminmanagement.<region>.<fqdn>' -FixedBuild '2026.07.0'. Requires Stack Hub *operator* role to read the RP version.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
#requires -Modules AzureStack
# Check-CVE-2026-58630.ps1
# Reports whether the App Service resource provider on this Azure Stack Hub
# stamp is at or above the fixed build for CVE-2026-58630.
# Exit codes: 0 = PATCHED, 1 = VULNERABLE, 2 = UNKNOWN

param(
    [Parameter(Mandatory=$true)][string]$AdminArmEndpoint,
    [Parameter(Mandatory=$true)][string]$FixedBuild  # from MSRC advisory, e.g. '2026.07.0'
)

$ErrorActionPreference = 'Stop'

try {
    # Assumes operator has already run Add-AzEnvironment + Connect-AzAccount to the admin endpoint
    $ctx = Get-AzContext
    if (-not $ctx) { Write-Error 'Not logged in. Run Connect-AzAccount against the Stack Hub admin endpoint first.'; exit 2 }

    # Query the App Service resource provider status
    $rp = Get-AzsAppServiceStatus -ErrorAction Stop

    if (-not $rp -or -not $rp.Version) {
        Write-Output 'UNKNOWN - App Service RP not installed or version unreadable'
        exit 2
    }

    $installed = [version]$rp.Version
    $fixed     = [version]$FixedBuild

    Write-Output "Installed App Service RP: $installed"
    Write-Output "Fixed build required:     $fixed"

    if ($installed -ge $fixed) {
        Write-Output 'PATCHED'
        exit 0
    } else {
        Write-Output 'VULNERABLE - upgrade App Service RP to the MSRC-listed build'
        exit 1
    }
}
catch {
    Write-Output "UNKNOWN - $($_.Exception.Message)"
    exit 2
}
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: stop treating this like a public-cloud emergency. If you don't run Azure Stack Hub, close the ticket with a one-line rationale — public Azure App Service is not in scope. If you *do* run Stack Hub, this is a real HIGH: confirm your App Service RP build against MSRC, verify tenant/admin portals are on a segmented management VLAN behind jumphost+MFA, and rotate all tenant publishing profiles and Kudu creds within the noisgate mitigation SLA of 30 days. Schedule the App Service RP hotfix into your next Stack Hub update window and complete the upgrade within the noisgate remediation SLA of 180 days — accelerate to weeks if you host regulated or sovereign workloads. If a PoC drops or CISA adds this to KEV, override to *patch within hours*.

Sources

  1. MSRC Security Update Guide — CVE-2026-58630
  2. Windows News — July 23 Advisory: CVE-2026-58630 Azure Stack Hub App Service EoP
  3. TheHackerWire — Critical Azure App Service Privilege Escalation
  4. Azure App Service on Azure Stack Hub — release notes
  5. Azure App Service Security FAQs — Microsoft Learn
  6. CISA Known Exploited Vulnerabilities Catalog
  7. FIRST EPSS
  8. CWE-284: Improper Access Control
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.