← Back to Feed CACHED · 2026-10-07 15:24:31 · CACHE_KEY CVE-2026-47301
CVE-2026-47301 · CWE-284 · Disclosed 2026-07-14

Microsoft Configuration Manager AdminService RBAC Bypass to SYSTEM via Console Extension Chain

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

Like discovering the master key cabinet in your building has no lock — and someone published the floor plan

CVE-2026-47301 is a broken authorization check in Microsoft Configuration Manager's AdminService REST API. The service exposes two endpoints for uploading console extension CAB files — one checks RBAC permissions, the other doesn't. Any authenticated domain user with network reach to the SMS Provider can upload a malicious CAB archive through the unprotected chunked-upload endpoint. That CAB exploits a path-traversal flaw (CabSlip) during extraction to write a DLL-proxying payload into the bin\X64 directory, where the SMS_EXECUTIVE service — running as SYSTEM — loads it approximately every five minutes. The chain also bypasses SCCM's code-signing validation because it accepts any Authenticode signature chaining to a trusted root and doesn't check certificate revocation; a valid code-signing certificate costs about $58. Affected versions include ConfigMgr current branch 2503 (below 5.0.9135.1031), 2509 (below 5.0.9141.1030), and 2603 (below 5.0.9146.1021).

Microsoft rated this Important at CVSS 8.8 with Scope: Unchanged — a significant understatement. The vendor score treats this as a single-host privilege escalation, ignoring that SCCM Primary Site Servers control software deployment, endpoint protection policy, and administrative access across every managed Windows endpoint. Compromising the site server is not a one-box event; it is a fleet-takeover event. The vendor also initially flagged exploit maturity as 'Unproven' (E:U), which has been overtaken by Omri Baso's fully weaponized public PoC with compiled binaries, crafted CAB archives, and a step-by-step Medium writeup. Furthermore, KB38232642 (June 2026) closes only link 1 of the four-link chain — the RBAC bypass. The remaining three weaknesses (CabSlip path traversal, certificate validation bypass, unsigned DLL load) remain unpatched, with fixes expected in ConfigMgr 2609 (October 2026). This means even post-KB environments remain vulnerable to privilege escalation by anyone holding legitimate SCCM Operations Administrator or Full Administrator roles.

"Domain user to fleet-wide SYSTEM — SCCM's broken API gate hands attackers the keys to every managed endpoint"
02 · The Attack Path

5 steps from start to impact.

STEP 01

Enumerate SCCM infrastructure via Active Directory

The attacker queries the CN=System Management,CN=System container in Active Directory to identify machine accounts with GenericAll or FullControl permissions — these are SCCM site servers. This is a standard domain reconnaissance technique requiring only a domain user account. Tools like SharpSCCM, SCCMHunter, or raw LDAP queries surface site server hostnames, SMS Provider locations, and management point URLs.
Conditions required:
  • Authenticated domain user account
  • Network access to Active Directory (LDAP/S)
Where this breaks in practice:
  • Requires internal network position — external attacker must achieve initial access first
Detection/coverage: Standard AD enumeration; unlikely to trigger alerts unless honeypot objects are deployed in the System Management container.
STEP 02

Upload malicious CAB via AdminService chunked endpoint

The attacker sends an HTTP POST to the AdminService REST API's chunked console-extension upload endpoint on the SMS Provider (HTTPS port 443). This endpoint is missing the RBAC check that the standard upload path enforces, so any domain user — regardless of SCCM role assignment — can submit a CAB file. The PoC tool C1_AFW.exe automates this with a single command. Integrated Windows Authentication (Kerberos/NTLM) provides the credential context automatically.
Conditions required:
  • Network reach to AdminService on SMS Provider (TCP 443)
  • Domain user Kerberos/NTLM token
Where this breaks in practice:
  • KB38232642 restores the RBAC check and blocks this step for non-admin users
  • AdminService may be firewall-restricted to designated management hosts
  • Network segmentation between user VLANs and server VLAN may block access
Detection/coverage: Monitor adminservice.log on SMS Provider for POST requests to ConsoleExtensionMetadata from non-operator accounts. Alert on HTTP 500 responses with differing extraction-folder GUIDs. Splunk has released detection content for this endpoint.
STEP 03

CabSlip path traversal writes DLL to bin\X64

The uploaded CAB archive contains relative path-traversal sequences (..\..\..\..\) in its internal directory structure. When the SMS Provider extracts the CAB, the traversal escapes the intended extraction folder and writes adsource.dll (attacker payload) and adsource_original.dll (proxied original) directly into the Configuration Manager bin\X64 installation directory. The CAB must carry a valid Authenticode signature, but SCCM accepts any certificate chaining to a trusted root and does not check CRL — a code-signing certificate from a commercial CA costs approximately $58.
Conditions required:
  • Step 2 successful
  • CAB signed with any trusted Authenticode certificate (~$58)
Where this breaks in practice:
  • No patch available for this link (expected in ConfigMgr 2609, October 2026)
  • File integrity monitoring on bin\X64 may detect the write
Detection/coverage: File integrity monitoring (FIM) on the <InstallDir>\bin\X64\ directory. Alert on creation of adsource_original.dll or any non-Microsoft-signed DLL. Windows Sysmon Event ID 11 (FileCreate) scoped to the path.
STEP 04

SMS_EXECUTIVE loads hijacked DLL as SYSTEM

The SMS_EXECUTIVE service (smsexec.exe) runs as SYSTEM and periodically loads adsource.dll through adsysdis.dll's import table — approximately every 5 minutes during normal operation. The service does not verify the DLL's signature or integrity before loading. The malicious DLL's DllMain executes the attacker's payload while forwarding legitimate calls to adsource_original.dll to maintain service stability and avoid detection through crashes.
Conditions required:
  • Malicious adsource.dll present in bin\X64
  • SMS_EXECUTIVE service running (always-on for site servers)
Where this breaks in practice:
  • ~5 minute delay before first execution — not instantaneous
  • No patch for this link until ConfigMgr 2609
Detection/coverage: Monitor smsexec.exe for unsigned DLL loads via Sysmon Event ID 7 with signature-status filtering. Alert on unexpected child processes spawned by smsexec.exe. EDR on site server should flag unsigned module load in a Microsoft-signed service.
STEP 05

Pivot from site server SYSTEM to fleet-wide control

With SYSTEM on the Primary Site Server, the attacker inherits SCCM's administrative authority over every managed Windows endpoint. This enables pushing arbitrary scripts or software deployments to all managed hosts, disabling endpoint protection agents via SCCM client settings, extracting stored Network Access Account (NAA) credentials, and creating persistent SCCM admin accounts. The blast radius encompasses every endpoint in the SCCM hierarchy.
Conditions required:
  • SYSTEM-level access on Primary Site Server
Where this breaks in practice:
  • None — SCCM's fleet management capabilities are inherent to the site server role
Detection/coverage: Anomalous SCCM package creation, unexpected task sequence deployments, changes to client settings (especially endpoint protection policy), new SCCM admin role assignments. Forward SCCM status messages and audit logs to SIEM.
03 · Compensating Control

1
CRITICAL 9.1→HIGH 7.2
SEVERITY REDUCED
Apply KB38232642 to all SMS Providers immediately — This hotfix restores the missing RBAC check on the AdminService chunked-upload endpoint, closing link 1 of the chain for unauthenticated-by-role users. Deploy within 3 days per the noisgate mitigation SLA for CRITICAL findings. This single control eliminates the 'any domain user' attack surface, restricting exploitation to accounts with legitimate SCCM Create permissions on SMS_ConsoleExtensionData.
2
CRITICAL 9.1→HIGH 6.5
SEVERITY REDUCED
Restrict AdminService network access to authorized management hosts only — Configure Windows Firewall or network ACLs on the SMS Provider to allow inbound HTTPS (443) to the AdminService only from designated SCCM console workstations and automation service accounts. This limits the reachable attack surface even if the RBAC bypass remains unpatched. Deploy within 3 days per CRITICAL mitigation SLA.
3
CRITICAL 9.1→HIGH 6.8
SEVERITY REDUCED
Audit and minimize SCCM administrative role assignments — Enumerate all principals holding Operations Administrator, Full Administrator, or custom roles granting Create on SMS_ConsoleExtensionData. Expand nested AD group memberships. Remove unnecessary assignments. Post-KB38232642, these are the only accounts that can reach link 2 — minimizing them shrinks the privileged attacker pool. Complete within 3 days.
4
CRITICAL 9.1→HIGH 7.5
SEVERITY REDUCED
Deploy file integrity monitoring on site server bin\X64 — Configure FIM (via SIEM agent, OSSEC, or Sysmon EventID 11) to alert on creation or modification of DLL files in the ConfigMgr <InstallDir>\bin\X64\ directory outside of patch windows. Specifically alert on adsource_original.dll creation and any non-Microsoft-signed adsource.dll. This provides detection-in-depth for the unpatched links 3–4 of the chain. Deploy within 3 days.
5
CRITICAL 9.1→HIGH 7.5
SEVERITY REDUCED
Monitor smsexec.exe for unsigned module loads — Configure EDR or Sysmon EventID 7 (Image Loaded) to alert when smsexec.exe loads a DLL not signed by Microsoft. Also baseline and alert on unexpected child processes of smsexec.exe. This detects link 4 exploitation at the moment of payload execution. Deploy within 3 days.
6
CRITICAL 9.1→LOW 2.0
SEVERITY REDUCED
Upgrade to ConfigMgr 2609 when released — ConfigMgr 2609 (expected October 2026) will address all four chain links including the CabSlip traversal, certificate validation bypass, and unsigned DLL load. Schedule the upgrade within the 90-day noisgate remediation SLA for CRITICAL findings. Test in a lab hierarchy first, then deploy to production primary and secondary sites.
What doesn't work
  • MFA on SCCM console login — the exploit targets the AdminService REST API via Integrated Windows Authentication (Kerberos/NTLM), not the MMC console GUI. MFA policies applied to console launches do not protect the API endpoint.
  • EDR deployed to managed endpoints only — the attack targets the SCCM Primary Site Server, not the managed fleet. EDR on managed workstations cannot detect or prevent site server compromise. You need EDR *on the site server itself*.
  • Disabling the AdminService entirely — the AdminService is required for CMPivot, the modern SCCM console, community hub, and PowerShell automation cmdlets. Disabling it breaks critical management workflows. Network-level restriction is the correct control.
  • SCCM client compliance baselines — these run on managed endpoints and evaluate client-side posture. They have zero visibility into server-side exploitation of the AdminService or DLL hijacking on the site server.
04 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNo confirmed in-the-wild exploitation as of October 2026. Not listed in CISA KEV. No known ransomware campaigns leveraging this chain — *yet*. The $58 barrier and weaponized PoC make escalation to active exploitation highly probable.
Proof-of-conceptWeaponized and public. Omri Baso published SCCM-CVE-2026-47301-Remote-Code-Execution-Exploit on GitHub (108+ stars, Apache 2.0). Includes C# source, compiled release binary (C1_AFW.exe), crafted CAB archives (evil_RID500.cab), and a detailed Medium writeup. Listed on pocindex.io. Also aggregated in asvorg/CVE-2026-PoCs and SecureWithUmer/CVE-2026-PoCs.
EPSS0.00778 (0.78%) — approximately 85th percentile. Low predicted probability of mass exploitation in the next 30 days, but EPSS historically underweights post-exploitation infrastructure-targeting chains that are not internet-scannable.
CISA KEV statusNot listed as of 2026-10-07. No federal agency remediation deadline set. No ransomware-use flag.
CVSS vectorCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (8.8). Network-accessible, low complexity, requires only low-privilege authentication, no user interaction. Microsoft's Scope: Unchanged is misleading — compromising the site server grants administrative control over all managed endpoints, which constitutes a scope change to a different security authority (S:C would yield 9.9).
Affected versionsConfigMgr current branch 2503 (< 5.0.9135.1031), 2509 (< 5.0.9141.1030), 2603 (< 5.0.9146.1021). Older LTSB/LTSC branches not confirmed but may share the AdminService codebase.
Fixed versionsKB38232642 (June 2026) fixes link 1 only (RBAC bypass). Links 2–4 (CabSlip path traversal, certificate validation bypass, unsigned DLL load) remain unpatched — full fix expected in ConfigMgr 2609 (October 2026). Post-KB, exploitation requires SCCM Operations Administrator or Full Administrator role holding Create on SMS_ConsoleExtensionData.
Exposure / scanningSCCM AdminService is an internal REST API binding to HTTPS 443 on the SMS Provider; near-zero internet exposure per Shodan/Censys. However, ~9,000 verified enterprise deployments per Landbase means broad internal attack surface. No GreyNoise tags observed for this CVE.
Disclosure timelineResearcher disclosure to Microsoft → KB38232642 released June 2026 → CVE published 2026-07-14 → Full PoC published on GitHub mid-August 2026 → ConfigMgr 2609 (full fix) expected October 2026.
ResearcherOmri Baso — independent security researcher. Published detailed technical writeup on Medium and full exploit chain on GitHub. Third-party analysis by Forestall, CybersecurityNews, RankiTeo, and TechTimes.

Sources.

  1. Forestall — CVE-2026-47301 SCCM Console Extension Chain Analysis
  2. Omri Baso — PoC Exploit Repository (GitHub)
  3. CybersecurityNews — Public Exploit Code Released for Microsoft SCCM RCE
  4. TechTimes — SCCM Lets Attackers Compromise Enterprise Fleets for $58
  5. RankiTeo — PoC Exploit Enabling SYSTEM-Level Code Execution
  6. NVD — CVE-2026-47301
  7. SentinelOne Vulnerability Database — CVE-2026-47301
  8. NHS England Digital — Microsoft July 2026 Security Updates
05 · The Call

Final Verdict
↑ UPGRADED to CRITICAL (9.1/10)

Why this verdict

  • Fleet-control-plane compromise: SCCM Primary Site Servers manage software deployment, endpoint protection policy, and administrative access for every Windows endpoint in scope. SYSTEM on the site server = arbitrary code execution on the entire managed fleet. This is not a single-host escalation — it is domain-scale impact that Microsoft's Scope: Unchanged rating fails to capture.
  • Weaponized public exploit with trivial prerequisites: Omri Baso's GitHub repository includes compiled binaries, crafted CAB archives, and a step-by-step blog post. The only barrier is a $58 code-signing certificate and a domain user account. Any insider, contractor, or post-phishing attacker clears this bar effortlessly.
  • Partial patch leaves 75% of chain exposed: KB38232642 closes only the RBAC bypass (link 1). The CabSlip path traversal, certificate validation bypass, and unsigned DLL load remain unpatched until ConfigMgr 2609 (October 2026). Post-KB, any account with Operations Administrator or Full Administrator role can still execute the full chain — and RBAC over-provisioning is endemic in SCCM deployments.
  • Role multiplier: SCCM is *by definition* a high-value-role component — 100% of Primary Site Servers occupy the fleet-management control plane. Blast radius for a successful chain is fleet-scale: push ransomware to all managed endpoints, disable EDR fleet-wide, extract NAA credentials, create persistent admin accounts. This is functionally equivalent to compromising vCenter or a domain controller. The chain succeeds in the canonical deployment role, and the outcome is fleet compromise — verdict floor is CRITICAL.
  • Friction — internal network only — does not break the floor: The attack requires internal network access and an authenticated domain user. These are real friction points that prevent mass internet exploitation. However, they describe the *default operating environment* for SCCM — the product is never internet-facing by design. Every domain user in an SCCM-managed enterprise meets the prerequisites. Internal network access is table stakes for any post-phishing, post-VPN, or insider threat scenario and cannot lower the verdict below the deployment-role floor.

Why not higher?

A 9.1 rather than 9.8+ reflects two genuine friction points: the attack is strictly internal-only (near-zero internet exposure per Shodan/Censys), and KB38232642 does exist to close the unauthenticated entry point for organizations that have applied it — reducing the unpatched attacker pool from 'every domain user' to 'SCCM admins only.' No confirmed in-the-wild exploitation and an EPSS of 0.78% argue against the absolute ceiling.

Why not lower?

The deployment-role floor for SCCM — a canonical fleet-management control plane — is CRITICAL when the documented chain ends in fleet compromise. Friction from internal-network-only access does not break the floor because SCCM's entire attack surface IS the internal network by design; this is not an exposure limitation, it is the product's normal operating condition. Downgrading to HIGH would require evidence that fewer than 1% of ConfigMgr deployments serve as production fleet-control infrastructure, which contradicts the product's fundamental purpose.

06 · Verification

Crowdsourced verification payload.

Run on each SCCM Primary Site Server as a local administrator. Invoke: powershell -ExecutionPolicy Bypass -File .\Check-CVE-2026-47301.ps1. Exits 0 (PATCHED), 1 (VULNERABLE), or 2 (UNKNOWN). Also performs IOC checks for exploitation artifacts (adsource_original.dll and non-Microsoft-signed adsource.dll).

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
<# CVE-2026-47301 - Microsoft Configuration Manager RBAC Bypass
   noisgate verification script | 2026-10-07
   Run on: SCCM Primary Site Server
   Requires: Local administrator privileges
   Output: VULNERABLE / PATCHED / UNKNOWN
#>
$ErrorActionPreference = 'SilentlyContinue'

# Patched build numbers per current branch (KB38232642)
$PatchedBuilds = @{
    '9135' = [version]'5.0.9135.1031'  # CB 2503
    '9141' = [version]'5.0.9141.1030'  # CB 2509
    '9146' = [version]'5.0.9146.1021'  # CB 2603
}

$setupKey = 'HKLM:\SOFTWARE\Microsoft\SMS\Setup'
if (-not (Test-Path $setupKey)) {
    Write-Output 'UNKNOWN - ConfigMgr site server role not detected (registry key absent).'
    exit 2
}

$props = Get-ItemProperty $setupKey
$installDir = $props.'Installation Directory'
if (-not $installDir) {
    Write-Output 'UNKNOWN - Installation Directory not found in registry.'
    exit 2
}

$smsExecPath = Join-Path $installDir 'bin\X64\smsexec.exe'
if (-not (Test-Path $smsExecPath)) {
    Write-Output 'UNKNOWN - smsexec.exe not found. Confirm this is a site server.'
    exit 2
}

$ver = [version](Get-Item $smsExecPath).VersionInfo.FileVersion
$branch = $ver.Build.ToString()
Write-Output "[*] ConfigMgr build detected: $ver (branch $branch)"

# --- IOC checks ---
$adsOriginal = Join-Path $installDir 'bin\X64\adsource_original.dll'
$adsource    = Join-Path $installDir 'bin\X64\adsource.dll'
$iocFound = $false

if (Test-Path $adsOriginal) {
    Write-Output "[!] IOC: adsource_original.dll EXISTS at $adsOriginal"
    Write-Output '    This file is created by the public exploit and should not exist.'
    $iocFound = $true
}
if (Test-Path $adsource) {
    $sig = Get-AuthenticodeSignature $adsource -ErrorAction SilentlyContinue
    if ($sig -and $sig.SignerCertificate) {
        if ($sig.SignerCertificate.Subject -notmatch 'O=Microsoft') {
            Write-Output "[!] IOC: adsource.dll signed by '$($sig.SignerCertificate.Subject)' - NOT Microsoft"
            $iocFound = $true
        }
    } elseif ($sig.Status -eq 'NotSigned') {
        Write-Output '[!] IOC: adsource.dll is UNSIGNED'
        $iocFound = $true
    }
}
if ($iocFound) {
    Write-Output '[!!] ACTION REQUIRED: Investigate for active compromise BEFORE patching.'
    Write-Output ''
}

# --- Version check ---
if ($PatchedBuilds.ContainsKey($branch)) {
    $required = $PatchedBuilds[$branch]
    if ($ver -ge $required) {
        Write-Output "PATCHED - Build $ver >= $required. KB38232642 applied."
        Write-Output 'Note: Links 2-4 (CabSlip, cert bypass, DLL hijack) remain open until ConfigMgr 2609.'
        exit 0
    } else {
        Write-Output "VULNERABLE - Build $ver < $required. KB38232642 NOT applied."
        Write-Output 'Any domain user with network reach to AdminService can exploit this chain.'
        exit 1
    }
} elseif ([int]$branch -gt 9146) {
    Write-Output "PATCHED - Build $ver is newer than all known-affected branches."
    exit 0
} else {
    Write-Output "UNKNOWN - Branch $branch not in known-affected list. Verify against MSRC advisory."
    exit 2
}