← Back to Feed CACHED · 2026-07-16 09:37:16 · CACHE_KEY CVE-2026-50663
CVE-2026-50663 · CWE-23 · Disclosed 2026-07-14

Relative path traversal in Age of Empires II: Definitive Edition Game

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

A rogue multiplayer lobby drops files anywhere it wants on your gamer's laptop

CVE-2026-50663 is a relative path traversal (CWE-23) in the User Generated Content (UCG) sync path of Age of Empires II: Definitive Edition. When a player joins a multiplayer lobby, the client auto-downloads scenario/mod payloads from the host; the archive extractor doesn't sanitize ..\ sequences, so the host can write arbitrary files to arbitrary locations under the player's user context. Combined with a startup or DLL-search-order write, that becomes user-level RCE. Affected: all AoE2:DE builds prior to 101.103.46651.0, delivered via Steam and the Microsoft Store.

Microsoft's 8.8 HIGH is fair for the *class* of bug — network-reachable, unauthenticated-from-the-attacker's-side, RCE with only UI:R (accept the lobby). But applied to an enterprise fleet, the vendor score dramatically overstates operational risk. This binary should not exist on a corporate endpoint at all; where it does, the blast radius is a single user account on a workstation, not a server role. That gap between raw CVSS and enterprise reality is the whole point of reassessing.

"Gaming client RCE with UCG auto-accept — real chain, but the affected population is home PCs, not the enterprise fleet."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Attacker hosts a poisoned multiplayer lobby

Attacker stands up an AoE2:DE lobby and stages a malicious UCG payload (scenario/mod archive) containing entries with ..\..\ traversal sequences. Public PoC posted by researcher Rick de Jager (@rdjgr) on X demonstrates the trigger. Tooling: modified AoE2:DE client + custom scenario archive.
Conditions required:
  • Attacker has a Steam/Xbox Live account and can host a public lobby
  • Victim runs vulnerable AoE2:DE build < 101.103.46651.0
Where this breaks in practice:
  • Enterprise endpoints rarely have AoE2:DE installed at all
  • Steam/MS Store install typically blocked by app allowlists on managed devices
Detection/coverage: No CVE-specific IDS signature; EDR may flag the post-exploit stage, not the lobby join itself.
STEP 02

Victim joins the lobby, UCG auto-accepts

The default matchmaking flow auto-accepts UCG sync from the host. The victim needs only to click Join — the vulnerable extraction runs before the game starts. This is the UI:R in the CVSS vector; it is a single-click, not a phishing lure.
Conditions required:
  • Victim discovers or is directed to the attacker lobby
  • UCG auto-accept is enabled (default)
Where this breaks in practice:
  • Requires social direction to the specific lobby, or lobby-browser roulette
  • Users playing games on corporate laptops is a policy problem, not a majority behavior
Detection/coverage: Steam/Xbox Live telemetry shows lobby joins; no enterprise-grade signal by default.
STEP 03

Path traversal writes arbitrary files as the user

The vulnerable extractor honors ..\ in archive entries, allowing writes to %APPDATA%, %LOCALAPPDATA%\Microsoft\WindowsApps, Startup folders, or DLL search-order locations next to the game binary. The attacker drops a payload or hijacks a load path.
Conditions required:
  • Extractor runs with the user's token, which has write access to per-user autoruns and app dirs
Where this breaks in practice:
  • ASR rules blocking writes to Startup / Run keys stop the persistence variant
  • AppLocker / WDAC in enforce mode blocks the DLL sideload variant
Detection/coverage: Sysmon Event ID 11 (FileCreate) targeting Startup folders or %LOCALAPPDATA% DLLs adjacent to RelicCardinal.exe is a solid indicator.
STEP 04

Code executes in the user context on next trigger

Persistence fires at next logon (Startup) or at next game launch (DLL hijack). Attacker has interactive code execution as the logged-in user — no SYSTEM, no lateral movement primitive included.
Conditions required:
  • User logs back in or relaunches the game
Where this breaks in practice:
  • Modern EDR (Defender for Endpoint, CrowdStrike, SentinelOne) will catch commodity payloads at execution
  • Chain terminates at user-mode; no built-in EoP
Detection/coverage: Standard EDR process-tree telemetry on child processes of RelicCardinal.exe or Startup-launched binaries.
03 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNone observed as of 2026-07-16 per MSRC; not on CISA KEV.
Public PoCDemonstration video by Rick de Jager (@rdjgr) on X, 2026-07-15. No weaponized repo yet.
EPSS0.0065 (~0.65%) — low predicted 30-day exploitation probability, consistent with niche client-side scope.
KEV statusNot listed. No CISA due date.
CVSS vectorAV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H — network-reachable, requires one victim click, high impact on the single host.
Affected versionsAll AoE2:DE builds < 101.103.46651.0 (Steam app 813780, MS Store equivalent).
Fixed version101.103.46651.0, pushed via Steam / Microsoft Store auto-update on 2026-07-14.
Exposure populationAoE2:DE has ~40k concurrent Steam players; effectively zero on corporate/production endpoints in most enterprises.
Disclosure2026-07-14 MSRC advisory, coordinated with the game studio (World's Edge / Forgotten Empires).
ReporterCredit per MSRC: Rick de Jager.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to MEDIUM (5.8/10)

Downgraded from vendor HIGH (8.8) to MEDIUM (5.8) because the single most decisive factor is population: AoE2:DE is a consumer game, not enterprise software, and its installed base on managed endpoints in a 10,000-host fleet is effectively zero. Where it does exist, the blast radius is a single user account on a workstation — no server role, no identity-plane amplifier.

HIGH Technical accuracy of the traversal-to-RCE chain
HIGH Absence from enterprise attack surface
MEDIUM PoC weaponization trajectory over next 30 days

Why this verdict

  • Population floor: AoE2:DE is a consumer title distributed via Steam / MS Store. On a hardened enterprise image with app allowlisting, install rate is ~0%. Even on permissive BYOD, it's a rounding error.
  • Role multiplier — low-value only: The affected component runs in user mode on end-user workstations. There is no plausible high-value deployment role — no server, no hypervisor, no identity, no CI/CD, no kernel driver. Blast radius is bounded at the single user token on one host.
  • UI:R is a real gate: Victim must actively join the attacker's specific lobby. This is not a drive-by, not an email lure, not a wormable propagation. Attacker needs to social-engineer target players individually.
  • No lateral primitive: Chain lands as the user, not SYSTEM. No built-in EoP, no credential material by default, no domain trust abuse.

Why not higher?

HIGH would be justified if AoE2:DE were a plausible enterprise component or if there were a wormable propagation (like a matchmaking-service push). Neither is true. The vendor's 8.8 is technically correct for the bug class but blind to the deployment reality that decides enterprise risk.

Why not lower?

Not LOW/IGNORE because a working RCE chain does exist, the PoC is public, and shadow IT / BYOD / dev-laptop populations do carry Steam installs. If a red team spots the game in your inventory, they will use it as an initial-access primer on that specific user.

05 · Compensating Control

What to do — in priority order.

  1. Block AoE2:DE from managed endpoints via AppLocker / WDAC / Intune — Enforce an application allowlist that excludes Steam app 813780 and the MS Store SKU. No mitigation SLA for MEDIUM under the noisgate policy — implement as part of routine allowlist maintenance.
  2. Force Steam / MS Store auto-update where the game is permitted — For dev / creative / BYOD populations where the game is legitimately installed, ensure Steam auto-update and MS Store update policy are enabled so 101.103.46651.0 rolls out automatically.
  3. Enable ASR rule 'Block persistence through WMI event subscription' and Startup-folder write monitoring — Catches the persistence stage of this and similar user-mode traversal-to-RCE chains. Deploy alongside other Defender ASR rules already in your baseline.
  4. Inventory Steam / MS Store gaming apps across the fleet — Use Intune / MECM / your EDR's software inventory to identify hosts with AoE2:DE installed. This gives you an accurate exposure number rather than assuming zero.
What doesn't work
  • Perimeter WAF / IPS — the exploit rides Steam's own transport to the game client; nothing hits your web perimeter.
  • Email gateway filtering — no email vector; the lure is a Steam lobby invite, not an attachment.
  • MFA on corporate SSO — irrelevant; the attacker never touches identity infrastructure.
  • Network segmentation of servers — the affected component is a client-side game, not a server.
06 · Verification

Crowdsourced verification payload.

Run on each Windows endpoint (or via your RMM / Intune / MECM script deployment) as the logged-in user — the game installs per-user through Steam / MS Store. No admin required to detect; admin required to remediate an install. Example: powershell -ExecutionPolicy Bypass -File Check-AoE2DE.ps1.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
#requires -Version 5.1
# Check-AoE2DE.ps1 — Detect AoE2:DE builds vulnerable to CVE-2026-50663
# Fixed build: 101.103.46651.0
# Exit codes: 0 = PATCHED / not installed, 1 = VULNERABLE, 2 = UNKNOWN

$FixedVersion = [Version]'101.103.46651.0'
$found = $false
$vulnerable = $false
$unknown = $false

function Compare-Build {
    param([string]$VerString, [string]$SourceLabel)
    try {
        $v = [Version]$VerString
        if ($v -lt $script:FixedVersion) {
            Write-Host "VULNERABLE [$SourceLabel] AoE2:DE build $v (< 101.103.46651.0)"
            $script:vulnerable = $true
        } else {
            Write-Host "PATCHED    [$SourceLabel] AoE2:DE build $v"
        }
    } catch {
        Write-Host "UNKNOWN    [$SourceLabel] cannot parse '$VerString'"
        $script:unknown = $true
    }
}

# 1. Steam install — read appmanifest_813780.acf
$steamRoots = @()
try {
    $steamPath = (Get-ItemProperty 'HKCU:\Software\Valve\Steam' -ErrorAction Stop).SteamPath
    if ($steamPath) { $steamRoots += $steamPath }
} catch {}
foreach ($root in $steamRoots) {
    $manifest = Join-Path $root 'steamapps\appmanifest_813780.acf'
    if (Test-Path $manifest) {
        $found = $true
        $exe = Get-ChildItem -Path (Join-Path $root 'steamapps\common\AoE2DE') -Filter 'AoE2DE_s.exe' -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1
        if ($exe) {
            Compare-Build -VerString $exe.VersionInfo.ProductVersion -SourceLabel 'Steam'
        } else {
            Write-Host "UNKNOWN    [Steam] manifest present but AoE2DE_s.exe not located"
            $unknown = $true
        }
    }
}

# 2. Microsoft Store install
try {
    $pkg = Get-AppxPackage -Name 'Microsoft.MSDallas_8wekyb3d8bbwe' -ErrorAction SilentlyContinue
    if ($pkg) {
        $found = $true
        Compare-Build -VerString $pkg.Version -SourceLabel 'MSStore'
    }
} catch {}

if (-not $found) {
    Write-Host 'PATCHED    AoE2:DE not installed on this host'
    exit 0
}
if ($vulnerable) { exit 1 }
if ($unknown)    { exit 2 }
exit 0
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: run a fleet-wide inventory query for Steam app 813780 and the MS Store Microsoft.MSDallas package — expect near-zero hits on managed endpoints. For the residual population (dev laptops, creative, BYOD), confirm Steam / MS Store auto-update is enabled so build 101.103.46651.0 lands automatically. Per the noisgate mitigation SLA for MEDIUM there is no mitigation deadline — go straight to the noisgate remediation SLA of ≤365 days, but in practice this closes itself the first time each affected user relaunches the client. Do NOT bump this into your Patch Tuesday critical queue; it belongs in shadow-IT hygiene, not incident response.

Sources

  1. MSRC advisory CVE-2026-50663
  2. NVD entry CVE-2026-50663
  3. Rick de Jager PoC demonstration (X)
  4. Windows Forum — fix and update guidance
  5. Windows News coverage
  6. Zamin.uz coverage
  7. Age of Empires Support portal
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.