← Back to Feed CACHED · 2026-09-24 20:03:21 · CACHE_KEY CVE-2025-4632
CVE-2025-4632 · CWE-22 · Disclosed 2025-05-13

Improper limitation of a pathname to a restricted directory vulnerability in Samsung MagicINFO 9 Server…

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

Someone left the loading-dock door unlocked and the forklift keys in the ignition — any passerby can drive straight into the warehouse

CVE-2025-4632 is a path-traversal-to-RCE in Samsung MagicINFO 9 Server, the Windows-based CMS that manages Samsung digital signage fleets. The /MagicInfo/servlet/SWUpdateFileUploader endpoint accepts file uploads with zero authentication and fails to sanitize ../ sequences in the submitted filename, letting a remote attacker write an arbitrary file — typically a JSP webshell — anywhere on the filesystem. Because the Apache Tomcat service hosting MagicINFO runs as NT AUTHORITY\SYSTEM, the webshell inherits full OS-level privileges. All versions prior to 21.1052 are affected, including 21.1050 which was supposed to fix the predecessor flaw CVE-2024-7399. The bug is, in fact, a patch bypass — Samsung's August 2024 fix was incomplete, and SSD Disclosure dropped a working PoC on April 30, 2025, with active exploitation following within days.

Samsung's CRITICAL / 9.8 rating is entirely accurate and, if anything, undersells the operational reality. The CVSS vector AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H perfectly describes what happens: an unauthenticated network call, no complexity, no user interaction, full confidentiality/integrity/availability impact. There is a Metasploit module rated *Excellent* (repeatable, crash-safe), five-plus public GitHub PoCs, a Nuclei detection template, and confirmed in-the-wild exploitation deploying Mirai botnet payloads. CISA added it to the KEV catalog on May 22, 2025, with a federal remediation deadline of June 12, 2025. Censys counted 1,101 exposed instances; Shodan showed roughly 5,000. The gap between disclosure and weaponization was measured in *hours*, not weeks.

"Zero-friction unauthenticated RCE as SYSTEM, actively exploited in the wild for Mirai delivery."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Discover MagicINFO instance

The attacker scans for Samsung MagicINFO 9 Server on its default ports TCP 7001 (HTTP) and TCP 7002 (HTTPS). Shodan, Censys, and FOFA all fingerprint the product trivially via the /MagicInfo web path and default page titles. Approximately 1,100–5,000 instances are internet-facing globally.
Conditions required:
  • Target runs Samsung MagicINFO 9 Server on a reachable network
Where this breaks in practice:
  • Instance must be network-reachable to the attacker — internal-only deployments require prior access
Detection/coverage: Nuclei template CVE-2025-4632.yaml (projectdiscovery/nuclei-templates). Shodan dork: http.title:"MagicInfo". Censys query available in their advisory.
STEP 02

Send malicious file upload with path traversal

The attacker issues a single unauthenticated HTTP POST to /MagicInfo/servlet/SWUpdateFileUploader, embedding directory-traversal sequences (../) in the filename parameter. No credentials, cookies, or session tokens are required — the servlet has no authentication gate. The traversal escapes the intended upload directory and targets the Tomcat webroot or any other writable path. Metasploit module exploit/windows/http/magicinfo_traversal automates this end-to-end.
Conditions required:
  • Network access to port 7001 or 7002
  • No WAF or input-validation layer blocking traversal sequences
Where this breaks in practice:
  • A properly configured WAF blocking ../ in multipart uploads would stop this — but MagicINFO deployments rarely sit behind one
Detection/coverage: WAF rules matching ../ or ..\ in multipart form data filenames. IDS signatures for known exploit traffic patterns (Snort/Suricata SIDs available).
STEP 03

JSP webshell written to Tomcat webroot

The uploaded file — typically a JSP webshell — lands in the Tomcat webapps directory. Because the Tomcat process runs as NT AUTHORITY\SYSTEM, the file is written with SYSTEM ownership. The webshell is now accessible at a predictable URL path (e.g., /MagicInfo/<shell>.jsp). The attacker can use a one-liner shell or a full-featured tool like Godzilla/Behinder.
Conditions required:
  • Successful path traversal from step 2
  • Tomcat webroot is writable (default)
Where this breaks in practice:
  • Application allowlisting (e.g., AppLocker, WDAC) could block unauthorized JSP execution, but this is rarely configured for Tomcat directories
Detection/coverage: File-integrity monitoring on the Tomcat webapps directory. EDR alerting on new .jsp file creation under the MagicINFO install path.
STEP 04

Remote code execution as SYSTEM

The attacker requests the webshell URL, which Tomcat compiles and executes. All commands run as NT AUTHORITY\SYSTEM. Huntress documented post-exploitation including downloads of srvany.exe and services.exe (service-wrapper persistence), and system reconnaissance commands on compromised hosts. Mirai botnet variants have been deployed via this chain.
Conditions required:
  • Webshell successfully written and accessible
Where this breaks in practice:
  • EDR with behavioral detection should flag cmd.exe/powershell.exe child processes from Tomcat — but only if EDR is deployed on the signage management server
Detection/coverage: EDR telemetry: java.exe → cmd.exe or powershell.exe process chains. Huntress and Arctic Wolf both published detection guidance.
STEP 05

Lateral movement and persistence

With SYSTEM on a domain-joined Windows server, the attacker can dump cached credentials (via LSASS or registry SAM), access the machine account's Kerberos TGT, and pivot laterally. MagicINFO servers are typically joined to the corporate Active Directory domain for management purposes, providing a direct path into the broader network. The Mirai variant observed suggests some attackers are simply conscripting the host into a botnet rather than pursuing lateral movement.
Conditions required:
  • Host is domain-joined or has cached domain credentials
  • Attacker chooses to pivot rather than just botnet the host
Where this breaks in practice:
  • Credential Guard, LSASS protection, and network segmentation limit lateral movement
  • MagicINFO servers in isolated VLANs cannot reach high-value targets
Detection/coverage: Credential access detection via EDR (LSASS access). Anomalous SMB/WinRM/RDP from the MagicINFO server to other hosts. Network flow analysis for east-west traffic from signage VLAN.
03 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationConfirmed active. Huntress documented three incidents with post-exploitation activity (payload downloads, recon commands). Mirai botnet variants deployed. Arctic Wolf observed exploitation starting early May 2025.
PoC AvailabilityWidely available. SSD Disclosure published the original PoC on April 30, 2025. Metasploit module exploit/windows/http/magicinfo_traversal (Excellent rank, by Michael Heinzl). 5+ GitHub PoCs. Nuclei detection template at projectdiscovery/nuclei-templates.
EPSS0.24295 (97.7th percentile) — top ~2.3% of all CVEs by exploitation probability. Consistent with active exploitation and public tooling.
KEV StatusListed May 22, 2025. CISA due date for federal agencies: June 12, 2025. BOD 22-01 applies.
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H — Network-accessible, no authentication, no user interaction, no complexity. Every impact metric maxed. This is the canonical "spray the internet" vector.
Affected VersionsSamsung MagicINFO 9 Server all versions before 21.1052, including 21.1050.0 (which was the intended fix for CVE-2024-7399 and was itself bypassed). Also affects MagicINFO v8 installations.
Fixed Version21.1052.0 (released May 14, 2025). Note: upgrading requires staging through 21.1050.0 first, then applying 21.1052. Huntress confirmed 21.1052 resolves the issue.
Exposure DataCensys: 1,101 exposed instances (59 of 116 version-enumerable were still vulnerable). Shodan: ~5,000 publicly accessible MagicINFO servers globally. Default ports TCP 7001/7002.
Disclosure TimelineCVE-2024-7399 patched Aug 2024 → SSD Disclosure PoC bypass Apr 30, 2025 → Huntress discloses May 9 → Samsung patches (21.1052) May 14 → CISA KEV May 22, 2025.
Credited ResearchersSSD Disclosure (original PoC), Huntress (patch bypass confirmation and incident response), Arctic Wolf (exploitation telemetry), Michael Heinzl (Metasploit module).

Sources.

  1. Arctic Wolf — Samsung MagicINFO 9 CVE-2025-4632 Follow-Up
  2. The Hacker News — Samsung Patches CVE-2025-4632 (Mirai Botnet)
  3. Censys Advisory — CVE-2025-4632 Exposure Data
  4. Huntress — Rapid Response: Samsung MagicINFO 9 Server Flaw
  5. Rapid7 — Metasploit Module: MagicINFO Path Traversal
  6. CISA KEV Catalog
  7. Nuclei Template — CVE-2025-4632
  8. SecurityAffairs — CISA Adds Samsung MagicINFO 9 to KEV
04 · The Call

Final Verdict
= UNCHANGED to CRITICAL (9.8/10)

Why this verdict

  • Zero friction on the attack path: The entire chain from network access to SYSTEM-level RCE is a single unauthenticated HTTP POST. No credentials, no user interaction, no race conditions, no memory corruption — just a file upload with ../ in the name. The Metasploit module is rated Excellent (repeatable, crash-safe). This is as close to point-and-click domain entry as it gets.
  • Active mass exploitation confirmed: CISA KEV-listed, Mirai botnet deployment observed, Huntress documented three separate real-world incidents with post-exploitation activity including payload staging and reconnaissance. Exploitation began within days of PoC release on April 30, 2025.
  • SYSTEM-level execution context eliminates privilege escalation step: The Tomcat service runs as NT AUTHORITY\SYSTEM by default. There is no privilege escalation required — the initial foothold IS full host compromise. This removes an entire link from the typical attack chain.
  • Patch bypass compounds the risk: CVE-2025-4632 bypasses the fix for CVE-2024-7399 (patched August 2024). Organizations that believed they were patched at 21.1050 are still vulnerable. This means the actual vulnerable population is larger than naive patch-status queries would suggest.
  • Role multiplier: MagicINFO 9 Server is a digital signage CMS — not a canonical high-value component (not an IdP, hypervisor, CA, or network edge). However, it is deployed as a domain-joined Windows server in most enterprise environments. SYSTEM-level compromise of a domain-joined host yields machine account credentials and cached domain credentials, enabling lateral movement to domain controllers. In enterprises with flat networks, this is a direct path from signage server to domain admin. The blast radius is host → domain for >50% of real deployments. While this means the high-value-role floor is HIGH (not CRITICAL by component definition), the zero-friction chain, active exploitation, and public Metasploit module push the verdict above the floor to CRITICAL.
  • Internet exposure is non-trivial: 1,100–5,000 instances are internet-facing per Censys/Shodan. For a niche product, this represents a significant fraction of the installed base being directly reachable by any attacker on the internet.

Why not higher?

The score is already at the CVSS ceiling of 9.8. There is no higher severity bucket than CRITICAL. The only theoretical gap is that Scope is Unchanged (the vuln doesn't directly break out of a VM or cross a trust boundary beyond the host), but since execution is as SYSTEM on a domain-joined host, the practical impact is equivalent.

Why not lower?

Downgrading would require identifying meaningful friction in the attack chain, and there is none for internet-facing instances. The chain is unauthenticated, single-request, crash-safe, and automated via Metasploit. Active exploitation is confirmed and KEV-listed. The only population narrowing is that MagicINFO is a niche product — but for organizations that run it, the risk is maximal. The deployment-role floor is HIGH based on domain-joined server compromise potential, and every other factor (exploitation maturity, tooling, zero friction) pushes above that floor.

05 · Compensating Control

1
CRITICAL 9.8→MEDIUM 5.5
SEVERITY REDUCED
Remove MagicINFO from the internet immediately — Block all inbound access to TCP 7001/7002 at the perimeter firewall or take the server offline. This is the single highest-impact control — it eliminates the unauthenticated remote attack vector entirely. Given CRITICAL verdict and active exploitation, deploy within the noisgate mitigation SLA of ≤3 days, though same-day is strongly preferred given KEV status.
2
CRITICAL 9.8→HIGH 7.5
SEVERITY REDUCED
Deploy WAF rules blocking path traversal in multipart uploads — If the server must remain accessible (e.g., for remote display management), place it behind a WAF with rules that reject ../, ..\, and URL-encoded variants in multipart form-data filenames targeting /MagicInfo/servlet/SWUpdateFileUploader. This is a defense-in-depth measure, not a substitute for patching. Deploy within 3 days per noisgate mitigation SLA.
3
CRITICAL 9.8→HIGH 8.0
SEVERITY REDUCED
Apply file-integrity monitoring on Tomcat webapps directory — Configure FIM (OSSEC, Wazuh, Sysmon, or EDR file-write telemetry) to alert on any new .jsp, .jspx, or .war file creation under the MagicINFO Tomcat webapps directory. This does not prevent exploitation but ensures rapid detection and response. Deploy within 3 days.
4
CRITICAL 9.8→HIGH 7.0
SEVERITY REDUCED
Network-segment the MagicINFO server into an isolated VLAN — Place the MagicINFO server in a dedicated signage-management VLAN with strict egress controls and no direct access to Active Directory, file servers, or other high-value assets. This limits the blast radius of a compromise from domain-scale to host-scale. Deploy within 3 days.
5
CRITICAL 9.8→IGNORE 0.0
SEVERITY REDUCED
Patch to version 21.1052.0 — The definitive fix. Note the upgrade requires staging through 21.1050.0 before applying 21.1052. Test in a lab if possible, but given active exploitation, prioritize speed over testing depth. Target within the noisgate remediation SLA of ≤90 days, but given KEV status and active exploitation, patch immediately — within hours if possible.
What doesn't work
  • Upstream authentication proxies (e.g., SSO/reverse proxy auth) — The vulnerable servlet /MagicInfo/servlet/SWUpdateFileUploader is designed to be unauthenticated for device firmware updates. Adding auth at a proxy layer may break legitimate signage device communication without actually blocking a determined attacker who can craft requests directly.
  • Antivirus signature scanning on uploaded files — The attacker controls the JSP payload content and can trivially obfuscate it to evade signature-based AV. The vulnerability is the *path traversal write*, not the file content.
  • Rate limiting — A single HTTP request is sufficient for exploitation. Rate limiting provides zero value against this attack.
06 · Verification

Crowdsourced verification payload.

Run this script on the MagicINFO server host as a local administrator. Invoke with: powershell -ExecutionPolicy Bypass -File .\Check-CVE-2025-4632.ps1. No arguments required. The script checks the installed MagicINFO version via registry and reports VULNERABLE, PATCHED, or UNKNOWN.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
#Requires -RunAsAdministrator
<#
  Check-CVE-2025-4632.ps1
  Checks whether the local Samsung MagicINFO 9 Server installation
  is vulnerable to CVE-2025-4632 (path traversal → RCE).
  Fixed version: 21.1052.0
  Exit codes: 1 = VULNERABLE, 0 = PATCHED, 2 = UNKNOWN
#>

$ErrorActionPreference = 'Stop'
$fixedVersion = [version]'21.1052.0'

# Registry paths where MagicINFO stores version info
$regPaths = @(
    'HKLM:\SOFTWARE\Samsung\MagicInfo-i\Server\Premium',
    'HKLM:\SOFTWARE\Samsung\MagicInfo\Server',
    'HKLM:\SOFTWARE\WOW6432Node\Samsung\MagicInfo-i\Server\Premium'
)

$installedVersion = $null

foreach ($rp in $regPaths) {
    if (Test-Path $rp) {
        try {
            $props = Get-ItemProperty -Path $rp -ErrorAction SilentlyContinue
            $verString = $props.Version
            if (-not $verString) { $verString = $props.ProductVersion }
            if (-not $verString) { $verString = $props.DisplayVersion }
            if ($verString) {
                # Normalize: strip any leading 'v' or trailing text
                $verString = ($verString -replace '[^0-9.]', '').Trim('.')
                $installedVersion = [version]$verString
                Write-Host "[*] Found MagicINFO at registry key: $rp"
                Write-Host "[*] Installed version: $installedVersion"
                break
            }
        } catch {
            continue
        }
    }
}

# Fallback: check Uninstall keys
if (-not $installedVersion) {
    $uninstallPaths = @(
        'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
        'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
    )
    foreach ($up in $uninstallPaths) {
        $entries = Get-ItemProperty -Path $up -ErrorAction SilentlyContinue |
            Where-Object { $_.DisplayName -like '*MagicINFO*' -or $_.DisplayName -like '*MagicInfo*' }
        if ($entries) {
            $entry = $entries | Select-Object -First 1
            $verString = $entry.DisplayVersion
            if ($verString) {
                $verString = ($verString -replace '[^0-9.]', '').Trim('.')
                $installedVersion = [version]$verString
                Write-Host "[*] Found MagicINFO via Uninstall key"
                Write-Host "[*] Installed version: $installedVersion"
                break
            }
        }
    }
}

# Also check for the Tomcat service as a secondary indicator
$tomcatService = Get-Service -Name '*MagicInfo*' -ErrorAction SilentlyContinue

if (-not $installedVersion) {
    if ($tomcatService) {
        Write-Host "[!] MagicINFO service detected but version could not be determined."
        Write-Host "UNKNOWN"
        exit 2
    } else {
        Write-Host "[*] Samsung MagicINFO 9 Server does not appear to be installed on this host."
        Write-Host "UNKNOWN"
        exit 2
    }
}

if ($installedVersion -lt $fixedVersion) {
    Write-Host "`n[!!!] CVE-2025-4632: VULNERABLE"
    Write-Host "Installed version $installedVersion is below the fixed version $fixedVersion."
    Write-Host "Immediate patching required — this CVE is actively exploited (KEV-listed)."
    Write-Host "VULNERABLE"
    exit 1
} else {
    Write-Host "`n[+] CVE-2025-4632: PATCHED"
    Write-Host "Installed version $installedVersion meets or exceeds the fixed version $fixedVersion."
    Write-Host "PATCHED"
    exit 0
}
Peer Review

What defenders are saying.

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