Reference material — not professional advice. Test in staging, back up first, verify against your specific version. Use your own judgment for your environment.
● High · CVSS 7.8 ⚠ ACTIVELY EXPLOITED — CISA KEV

How to Fix CVE-2019-1130: Improper Link Resolution Before File Access in Microsoft Windows

By Sai Kiran Pandrala

⚡ At a glance
SeverityCVSS 7.8 (High)
Actively exploited?Yes, listed in CISA KEV (added 2022-05-23, federal due date 2022-06-13). Known ransomware use.
AffectedWindows Server: 2012, 2012 (Core installation), 2012 R2, 2012 R2 (Core installation), 2016, 2016 (Core installation), version 1803 (Core Installation), 2019, 2019 (Core installation); Windows: 8.1 for x64-based systems, RT 8.1, 10 for 32-bit Systems, 10 for x64-based Systems, 10 Version 1607 for 32-bit Systems, 10 Version 1607 for x64-based Systems, 10 Version 1703 for 32-bit Systems, 10 Version 1703 for x64-based Systems, 10 Version 1709 for 32-bit Systems, 10 Version 1709 for x64-based Systems, 10 Version 1803 for 32-bit Systems, 10 Version 1803 for x64-based Systems, 10 Version 1803 for ARM64-based Systems, 10 Version 1809 for 32-bit Systems, 10 Version 1809 for x64-based Systems, 10 Version 1809 for ARM64-based Systems, 10 Version 1709 for ARM64-based Systems; Windows 10 Version 1903 for 32-bit Systems; Windows 10 Version 1903 for x64-based Systems; Windows 10 Version 1903 for ARM64-based Systems; Windows Server, version 1903 (Server Core installation)
Fixed inWindows Server: 1803
Type (CWE)CWE-59: Improper Link Resolution Before File Access
Actively exploited. Listed in the CISA Known Exploited Vulnerabilities catalog since 2022-05-23; federal civilian agencies must remediate by 2022-06-13. Patch on an emergency cycle if the system is internet-exposed.

What is CVE-2019-1130?

An elevation of privilege vulnerability exists when Windows AppX Deployment Service (AppXSVC) improperly handles hard links, aka 'Windows Elevation of Privilege Vulnerability'. This CVE ID is unique from CVE-2019-1129.

A successful exploit gives the attacker the impact described in the vendor advisory. The fix is to install the patched build of Microsoft Windows listed in the table above, then confirm the running version after the upgrade.

Am I affected?

Check your installed version of Microsoft Windows against the Affected row above. If the build sits inside any of those ranges, treat the host as vulnerable until patched.

Read the version the same way you would for any maintenance task: the management console About page, the CLI version command, or the package manager record for the installed binary. The vendor advisory linked in the references is the authoritative source for the affected-build matrix.

How to fix CVE-2019-1130

The remediation is the patched build of Microsoft Windows. The blocks below give you runnable commands for the platforms that ship this product, plus a full PowerShell and Bash script you can drop into your patch automation.

Windows (PowerShell, run as administrator)


# Trigger Windows Update scan and install (requires PSWindowsUpdate or built-in usoclient)
Install-Module PSWindowsUpdate -Force -Scope CurrentUser -ErrorAction SilentlyContinue
Import-Module PSWindowsUpdate
Get-WindowsUpdate -Install -AcceptAll -AutoReboot -IgnoreReboot -Category SecurityUpdates

# Confirm the security update tied to this CVE is listed
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 20

Windows (no PSWindowsUpdate — fallback)


# Force scan from native scheduler
(New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow()
Start-Process "$env:windir\System32\UsoClient.exe" -ArgumentList "StartScan"
Start-Process "$env:windir\System32\UsoClient.exe" -ArgumentList "StartDownload"
Start-Process "$env:windir\System32\UsoClient.exe" -ArgumentList "StartInstall"

Manual install from Microsoft update catalog


# Download the MSU package for your build from https://www.catalog.update.microsoft.com/Search.aspx?q=CVE-2019-1130
$msu = "$env:USERPROFILE\Downloads\windows10.0-kb-x64.msu"
wusa.exe $msu /quiet /norestart
shutdown.exe /r /t 60 /c "Reboot to finalise security update"

Full PowerShell remediation script (detect, back up, patch, verify, log)


<#
.SYNOPSIS  Remediates CVE-2019-1130 on Windows hosts.
.DESCRIPTION
  Detects current version of Windows, takes a config backup, applies the patched build
  (1803), confirms the upgrade, and writes a transcript to %ProgramData%\Patching.
#>
$ErrorActionPreference = 'Stop'
$logDir = "$env:ProgramData\Patching"
New-Item -ItemType Directory -Force -Path $logDir | Out-Null
Start-Transcript -Path "$logDir\CVE-2019-1130-$(Get-Date -Format yyyyMMdd-HHmmss).log"

try {
    Write-Host '[1/5] Detecting current version'
    $svc = Get-Service | Where-Object { $_.DisplayName -match 'Windows' } | Select-Object -First 1
    if ($svc) { Write-Host "  Service: $($svc.Name) state=$($svc.Status)" }

    Write-Host '[2/5] Backup config directory if present'
    $cfg = "$env:ProgramFiles\Windows"
    if (Test-Path $cfg) {
        $bak = "$logDir\CVE-2019-1130-backup-$(Get-Date -Format yyyyMMdd-HHmmss).zip"
        Compress-Archive -Path $cfg -DestinationPath $bak -Force
        Write-Host "  Backup -> $bak"
    }

    Write-Host '[3/5] Apply patch'
    try {
        winget upgrade --id <vendor.Windows> --accept-source-agreements --accept-package-agreements --silent
    } catch {
        Write-Warning "winget upgrade failed: $_  -- falling back to MSU/MSI installer"
        Start-Process msiexec.exe -ArgumentList '/i "C:\Temp\patched.msi" /qn /norestart' -Wait
    }

    Write-Host '[4/5] Verify version'
    Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 5
    # Adapt the next line to your product's version file:
    Get-ChildItem "$env:ProgramFiles\Windows" -Recurse -Filter *.exe -ErrorAction SilentlyContinue |
        Select-Object -First 1 | ForEach-Object { $_.VersionInfo.FileVersion }

    Write-Host '[5/5] Restart service if needed'
    if ($svc) { Restart-Service $svc.Name }
    Write-Host "CVE-2019-1130 remediation complete"
} catch {
    Write-Error "CVE-2019-1130 remediation FAILED: $_"
    exit 1
} finally {
    Stop-Transcript
}

Full Bash remediation script (detect, back up, patch, verify, log)


#!/usr/bin/env bash
# remediate-cve-2019-1130.sh — detect, back up, patch, verify.
set -euo pipefail
LOG="/var/log/patching"
mkdir -p "$LOG"
STAMP="$(date +%Y%m%d-%H%M%S)"
LOGFILE="$LOG/CVE-2019-1130-$STAMP.log"
exec > >(tee -a "$LOGFILE") 2>&1

echo "[1/5] Detect installed Windows"
if command -v dpkg >/dev/null 2>&1; then
    dpkg -l | grep -i "windows" || true
elif command -v rpm >/dev/null 2>&1; then
    rpm -qa | grep -i "windows" || true
fi

echo "[2/5] Backup config"
for d in /etc/windows /opt/windows /usr/local/windows; do
    if [[ -d "$d" ]]; then
        tar czf "$LOG/CVE-2019-1130-$(basename $d)-$STAMP.tgz" "$d"
        echo "  Backup -> $LOG/CVE-2019-1130-$(basename $d)-$STAMP.tgz"
    fi
done

echo "[3/5] Apply patch (target: 1803)"
if command -v apt-get >/dev/null 2>&1; then
    sudo apt-get update
    sudo apt-get install --only-upgrade "windows" -y
elif command -v dnf >/dev/null 2>&1; then
    sudo dnf upgrade "windows" --security -y
elif command -v yum >/dev/null 2>&1; then
    sudo yum update "windows" --security -y
elif command -v zypper >/dev/null 2>&1; then
    sudo zypper patch --category security
fi

echo "[4/5] Verify"
if systemctl status "windows" >/dev/null 2>&1; then
    sudo systemctl restart "windows"
    systemctl is-active "windows"
fi
command -v "windows" >/dev/null 2>&1 && "windows" --version || true

echo "[5/5] CVE-2019-1130 remediation script complete. Log: $LOGFILE"

If you can't patch immediately

Restrict the management plane (Windows firewall, PowerShell)


New-NetFirewallRule -DisplayName 'Restrict-mgmt-CVE-2019-1130' -Direction Inbound -Action Block -Protocol TCP -LocalPort 443,8443,3389 -RemoteAddress Any
New-NetFirewallRule -DisplayName 'Allow-mgmt-admin-allowlist' -Direction Inbound -Action Allow -Protocol TCP -LocalPort 443,8443,3389 -RemoteAddress 10.0.0.0/24

Restrict the management plane (Linux nftables)


sudo nft add table inet filter 2>/dev/null || true
sudo nft 'add chain inet filter input { type filter hook input priority 0; }' 2>/dev/null || true
sudo nft add rule inet filter input ip saddr 10.0.0.0/24 tcp dport { 443, 8443, 22 } accept
sudo nft add rule inet filter input tcp dport { 443, 8443, 22 } drop

How to verify the fix worked

  1. Re-run the version command from the fix section. The output must match the patched build listed in the vendor advisory for your branch.
  2. Re-run an authenticated vulnerability scan (Nessus, Qualys, OpenVAS, Defender Vulnerability Management) targeting the patched host. CVE-2019-1130 must no longer be reported.
  3. Pull the latest service logs and search for the exploitation signatures in the vendor advisory. Treat any match before the patch timestamp as a possible compromise: isolate the host, rotate credentials the affected process could see, and run a full IR triage.
  4. Confirm any compensating control you put in place (firewall rules, sysctl, registry edits) is either intentionally left in place or rolled back, with the change documented in your CMDB.

Frequently asked questions

Other vulnerabilities in the same area that are worth patching alongside this one:

Is CVE-2019-1130 being exploited right now?

Yes. CVE-2019-1130 is in the CISA Known Exploited Vulnerabilities catalog, added 2022-05-23. CISA only lists CVEs with confirmed active exploitation.

What is the CVSS score for CVE-2019-1130?

CVSS 7.8 (High). Use it together with your exposure picture (internet-facing first, then DMZ, then internal) when you set the patch order.

Can I run the fix without downtime?

It depends on the platform. Network appliances often support hitless HA upgrades (upgrade the standby, fail over, upgrade the former primary). Application servers usually need a service restart. Clustered services (Elasticsearch, Tomcat behind a load balancer, MySQL replicas) tolerate a rolling upgrade. Schedule a maintenance window if HA is not in place.

What if my version is not in the affected list?

Re-check the build string in the vendor advisory linked below. CVE records reflect the affected-products list at publication. Variants discovered later are added to the same advisory or a follow-up CVE.

References


*This guide was assembled from the official vendor advisory, NVD record, and CISA KEV listing on 2026-05-25. Always confirm against the vendor advisory before applying changes in production.*