← Back to Feed CACHED · 2026-05-17 09:42:19 · cache_key CVE-2025-29912
CVE-2026-11420 · CWE-22 · Disclosed 2026-06-05

Two path traversal vulnerabilities in the Network Installation Service

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
01 · The Real Story

This is a warehouse side door left unlatched on a system that usually lives behind the loading dock

CVE-2026-11420 covers two path traversal flaws in the Network Installation Service (NIS) of Altium Enterprise Server. Per the CVE summary surfaced by VulDB, an unauthenticated network attacker can both write arbitrary files to writable server locations and read deployment package archives; no login, session, or credentials are required. The exact vendor-published affected matrix was not available in the located advisory set, but Altium's 8.0 release notes show a fix for a *critical path traversal vulnerability* in version 8.0.4, so the safe working assumption is at least 8.0.0-8.0.3 are affected.

In pure exploit mechanics this smells like a CRITICAL: unauthenticated network reachability plus server-side file write is how you graduate from bug to box ownership. But severity in the field depends on exposure, and NIS is an on-prem administrative software-distribution feature intended for local-network use, not a mass internet SaaS surface. That exposure friction pulls it down one notch to ASSESSED AT HIGH rather than CRITICAL.

"ASSESSED AT HIGH: if NIS is reachable, unauthenticated file write can become server takeover, but the exposed population is narrow."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Find a reachable NIS-backed Enterprise Server

The attacker first identifies an Altium Enterprise Server instance with the Network Installation Service reachable over HTTP(S). In practice this is basic recon using browser fingerprinting, curl, or proxy tooling such as Burp Suite against the Workspace web interface and related installation endpoints.
Conditions required:
  • Network path to the Enterprise Server host
  • NIS or its supporting web endpoints exposed to the attacker
Where this breaks in practice:
  • NIS is an on-prem administrative feature usually intended for internal software distribution, not public exposure
  • Many deployments will only expose the Workspace over VPN, reverse proxy, or internal LAN
Detection/coverage: External attack-surface tools may find the host, but there is no reliable public fingerprint in the located sources that specifically distinguishes vulnerable NIS exposure from generic Enterprise Server exposure.
STEP 02

Abuse traversal to escape intended package paths

Using generic HTTP tooling such as Burp Repeater or curl, the attacker sends crafted path input that causes NIS file operations to resolve outside the intended directory boundary. The CVE summary indicates two outcomes: arbitrary file write to writable locations and package archive read from the server.
Conditions required:
  • The vulnerable request path is reachable unauthenticated
  • The server accepts attacker-controlled file path elements
Where this breaks in practice:
  • The attacker still needs the right endpoint shape and parameter placement
  • Path normalization differences, proxies, and URL rewriting can break commodity exploit attempts
Detection/coverage: HTTP logs and reverse-proxy logs can show encoded traversal sequences, unusual archive fetches, and requests containing suspicious path separators. Scanner coverage is likely immature until vendors and commercial scanners ship explicit checks.
STEP 03

Turn file access into real impact

Read access exposes deployment package contents; write access is the bigger problem because it lets the attacker place or overwrite files the service account can modify. If those locations include web-served directories, application binaries, or configuration files, the attacker moves from data access to service compromise.
Conditions required:
  • Writable destination exists under the service account's permissions
  • The target location is operationally useful, such as a web root, executable path, or config path
Where this breaks in practice:
  • Least-privileged service accounts and hardened filesystem ACLs can limit useful write targets
  • Some deployments may not expose a writable path that is immediately executable
Detection/coverage: EDR, Sysmon, and Windows file auditing should catch unexpected writes beneath the Altium install tree, IIS content paths, or service configuration directories.
STEP 04

Escalate to server takeover

Once a strategically useful file is written or overwritten, the attacker can achieve code execution in the context of the Enterprise Server service account or cause persistent service takeover on reload or restart. Even without immediate RCE, configuration overwrite and package disclosure are enough to materially damage confidentiality and integrity.
Conditions required:
  • A modified file is consumed by IIS, the application stack, or a dependent service
  • The attacker can trigger or wait for normal service processing
Where this breaks in practice:
  • Execution may require a service restart, app reload, or a target path that is actually interpreted
  • Modern EDR can interrupt post-write execution chains even after the initial vulnerable request succeeds
Detection/coverage: Process creation from the Altium/IIS context, unexpected child processes, service binary changes, and config drift provide the strongest signals. Version-only vulnerability scanners will miss active exploitation unless paired with host telemetry.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo confirmed public exploitation evidence found in the located sources, and not KEV-listed per the provided intel.
Proof-of-concept availabilityNo public GitHub or Exploit-DB PoC was found during this review. That reduces mass exploitation pressure, but the bug class is simple enough that private weaponization is plausible.
EPSS0.00676 from the provided intel, which is low in absolute terms and argues against immediate herd exploitation.
KEV statusNo — not present in CISA's Known Exploited Vulnerabilities catalog based on the provided intel and review of the catalog source.
Exploit preconditionsUnauthenticated remote network access to a reachable Enterprise Server/NIS surface; no credentials or session are required according to the CVE summary.
Impact shapeArbitrary file write to writable server locations plus package archive read. File write is the decisive risk because it can become service-account RCE or persistent service compromise.
Affected versionsExact vendor matrix was not located. Based on Altium 8.0.4 release notes, treat at least versions before 8.0.4 as affected; I would not assume 7.2 is fixed because no comparable backport note was found.
Fixed versionsAltium release notes show the path traversal fix in Altium On-Prem Enterprise Server 8.0.4 Build 2 dated 2026-04-01.
Exposure realityNIS is documented as a local-network software deployment feature and admin workflow. That sharply narrows the exposed population versus mainstream internet-facing enterprise apps.
Scanning / internet telemetryNo reliable public GreyNoise, Shodan, or Censys signal for CVE-specific scanning was found. Also, no public fingerprint in the located material cleanly isolates vulnerable NIS exposure, so internet census undercounts are likely.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to HIGH (8.8/10)

The single most important factor is unauthenticated remote arbitrary file write: if an attacker can reach this service, they do not need credentials to start modifying server-side files. I kept it at HIGH instead of CRITICAL because the vulnerable component is a niche, on-prem administrative deployment service that is usually reachable only from internal management networks, which materially limits real-world exposure population.

MEDIUM Severity bucket and score
LOW Exact affected version floor outside the documented 8.0.4 fix
MEDIUM No-public-exploitation assessment as of the reviewed sources

Why this verdict

  • Primary amplifier: unauthenticated remote file write means no prior compromise stage, no account, and no role assignment are needed if the service is reachable.
  • Downward pressure: attacker position still requires network reachability to a niche on-prem admin feature; NIS is meant for internal software deployment, which implies many real deployments keep it off the public internet.
  • Further downward pressure: no KEV, low EPSS, and no public PoC found in the reviewed sources, so there is not yet strong evidence of active attacker adoption.
  • Blast radius stays serious because successful write access can become service-account code execution, binary/config overwrite, or long-lived server compromise.

Why not higher?

I did not call this CRITICAL because the real-world exposed population is narrower than the raw bug mechanics suggest. This is not a ubiquitous public edge device; it is an on-prem administrative subsystem, and there is no confirmed active exploitation or public weaponization signal in the reviewed sources.

Why not lower?

I did not push this to MEDIUM because unauthenticated server-side file write is not a minor bug class. If the host is reachable, the attacker can skip authentication entirely and move directly toward server compromise, which is too much blast radius for a lower bucket.

05 · Compensating Control

What to do — in priority order.

  1. Restrict NIS to management networks only — Put the Enterprise Server and any NIS-related endpoints behind VPN, bastion, or management VLAN controls and block direct user-subnet and internet access. For a HIGH verdict, deploy this within 30 days to meet the mitigation intent while you stage the vendor fix.
  2. Remove public publication paths — Audit reverse proxies, load balancers, NAT rules, and published DNS names for any Enterprise Server exposure that is broader than administrators actually need. If externally published, remove that exposure within 30 days because this CVE's value collapses when reachability disappears.
  3. Harden service-account and filesystem ACLs — Ensure the Altium/IIS service identity cannot write to executable paths, web content roots, or sensitive config directories beyond what is operationally required. Do this within 30 days; it does not fix traversal, but it cuts off the easiest RCE and persistence paths.
  4. Alert on traversal and file-write indicators — Create detections for encoded traversal sequences in IIS/reverse-proxy logs and for file modifications under C:\Program Files (x86)\Altium\Altium365, web roots, and related config paths. Roll this out within 30 days so you have exploitation visibility before full remediation lands everywhere.
What doesn't work
  • MFA or SSO: this flaw is described as unauthenticated, so identity hardening does not sit in the exploit path.
  • Relying on browser auth to the Workspace UI: the vulnerable condition is in NIS request handling, not in whether humans log in properly.
  • Signature-only WAF rules: traversal variants are easy to mutate, and a WAF does nothing if the exposure is internal-only or bypasses the proxy path you are inspecting.
06 · Verification

Crowdsourced verification payload.

Run this on the target Enterprise Server host or via your Windows remote management tooling. Invoke it with powershell.exe -ExecutionPolicy Bypass -File .\check-altium-cve-2026-11420.ps1; local read access is usually enough, but administrative rights help if your uninstall inventory or install path is locked down.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
# check-altium-cve-2026-11420.ps1

# Conservative local version check for Altium On-Prem Enterprise Server

# Exit codes:

#   0 = PATCHED

#   1 = VULNERABLE

#   2 = UNKNOWN

#   3 = PRODUCT NOT FOUND (reported as UNKNOWN)


[CmdletBinding()]
param()

$ErrorActionPreference = 'SilentlyContinue'

function Get-AltiumVersionFromRegistry {
    $paths = @(
        'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
        'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
    )

    foreach ($path in $paths) {
        $items = Get-ItemProperty -Path $path
        foreach ($item in $items) {
            $name = [string]$item.DisplayName
            if ($name -match 'Altium.*(Enterprise Server|On-Prem Enterprise Server)') {
                $ver = [string]$item.DisplayVersion
                if ($ver) { return $ver }
            }
        }
    }
    return $null
}

function Get-AltiumVersionFromFiles {
    $candidates = @(
        'C:\Program Files (x86)\Altium\Altium365\Altium365.exe',
        'C:\Program Files (x86)\Altium\Altium365\avhealth.exe',
        'C:\Program Files (x86)\Altium\Altium365\Services\NIS\bin\NISDeploy.exe'
    )

    foreach ($file in $candidates) {
        if (Test-Path $file) {
            $info = Get-Item $file
            $ver = $info.VersionInfo.ProductVersion
            if (-not $ver) { $ver = $info.VersionInfo.FileVersion }
            if ($ver) { return $ver }
        }
    }
    return $null
}

function Normalize-Version([string]$raw) {
    if (-not $raw) { return $null }
    if ($raw -match '(\d+\.\d+\.\d+(?:\.\d+)?)') {
        try { return [version]$Matches[1] } catch { return $null }
    }
    return $null
}

$rawVersion = Get-AltiumVersionFromRegistry
if (-not $rawVersion) {
    $rawVersion = Get-AltiumVersionFromFiles
}

if (-not $rawVersion) {
    Write-Output 'UNKNOWN - Altium On-Prem Enterprise Server not found via registry or common file paths'
    exit 3
}

$version = Normalize-Version $rawVersion
if (-not $version) {
    Write-Output ("UNKNOWN - Found product version string but could not parse it: {0}" -f $rawVersion)
    exit 2
}

# Known fix point from Altium 8.0 release notes.

$fixed = [version]'8.0.4.0'

# Exact vendor affected matrix is not fully published in the located sources.

# Conservative logic:

#   - 8.0.0.x through 8.0.3.x => VULNERABLE

#   - 8.0.4.x and later => PATCHED

#   - 7.x / other major branches => UNKNOWN


if ($version.Major -eq 8 -and $version.Minor -eq 0) {
    if ($version -lt $fixed) {
        Write-Output ("VULNERABLE - Detected Altium Enterprise Server version {0}; below fixed 8.0.4" -f $version)
        exit 1
    } else {
        Write-Output ("PATCHED - Detected Altium Enterprise Server version {0}; at or above fixed 8.0.4" -f $version)
        exit 0
    }
}

Write-Output ("UNKNOWN - Detected version {0}; exact affected range outside 8.0.x was not confirmed in authoritative sources" -f $version)
exit 2
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning, treat any reachable Altium Enterprise Server running the NIS feature as a HIGH-priority containment target: identify every instance, remove unnecessary external or broad user-network exposure, and enforce management-network-only access within 30 days per the noisgate mitigation SLA. Then move all confirmed affected 8.0.x hosts to the fixed build (8.0.4 or later) within 180 days per the noisgate remediation SLA; if you discover an internet-exposed instance, do not wait for the full patch window before shrinking reachability.

Sources

  1. Altium Security Advisories
  2. Altium On-Prem Enterprise Server 8.0 Release Notes
  3. Altium Network Installation Service Documentation
  4. VulDB CVE-2026-11420 Summary
  5. CISA Known Exploited Vulnerabilities Catalog
  6. FIRST EPSS API Documentation
  7. NVD Vulnerability API Documentation
  8. Altium On-Prem Enterprise Server 7.2 Release Notes
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.