Like removing the lock on a nuclear plant's control-room filing cabinet while leaving the building's badge reader intact
CVE-2026-15688 is an incorrect implementation of the authentication algorithm (CWE-303) in Mitsubishi Electric GX Works3 (all versions before 1.096A) and Motion Control Settings (all versions before 1.070Y). The flaw lets a local, low-privileged user bypass the *block password* — the application-level lock that restricts viewing and editing of specific PLC program blocks — by attaching to the running GX Works3 process and patching the authentication check in memory. Once bypassed, the attacker can view, tamper with, destroy, or delete control programs destined for MELSEC iQ-R and iQ-F safety and standard PLCs. Every version ever shipped is affected.
CISA published ICSA-26-260-02 on September 17, 2026 with a CVSS v4.0 score of 9.2 CRITICAL and a v3.1 score of 8.8 HIGH. The v4.0 score appropriately captures the *Changed Scope* — impact extends from the engineering workstation to downstream PLCs — but it overstates urgency by not sufficiently weighting the local-only attack vector. The attacker must already be sitting at (or have compromised) the GX Works3 engineering workstation. In properly segmented ICS environments, that is a high-friction prerequisite. The real danger is the insider threat / post-compromise scenario: a disgruntled operator or a compromised workstation pivoting to PLC program sabotage. That scenario is absolutely real in OT, which is why this floors at HIGH despite the local vector.
5 steps from start to impact.
Gain local access to GX Works3 workstation
- Local or RDP access to a host running GX Works3
- Standard user account on Windows
- Engineering workstations in mature ICS environments are isolated on dedicated VLANs behind jump servers
- Physical access policies and badge requirements in plant environments
- Application whitelisting may block attacker tooling
Launch GX Works3 and open target project
.gx3 project file to be accessible on the workstation or a shared drive.- GX Works3 installed and licensed
- Target project file accessible
- Project files may be stored on restricted shares with ACLs
- Some orgs use version-control systems with audit trails for project files
Attach debugger and patch authentication check in memory
- Ability to run a debugger on their own process (standard user right on Windows)
- Knowledge of the authentication routine offset (reverse engineering required)
- Application whitelisting / EDR may flag debugger attachment
- Code-signing and integrity checks in newer versions may detect patching
- Requires reverse engineering skill — not script-kiddie level
Access protected program blocks
- Successful memory patch from Step 3
- Change detection systems that compare project files against golden baselines
- Peer review workflows for PLC program changes
Download tampered program to PLC
- Network connectivity from workstation to target PLC
- PLC access credentials or default/no authentication on MELSOFT protocol
- PLC key-switch in RUN position blocks remote program changes on some models
- Network segmentation between engineering and control networks
- Safety PLCs may require physical confirmation for program downloads
The supporting signals.
| In-the-Wild Exploitation | No known exploitation. Not listed on CISA KEV as of 2026-09-18. No campaigns or threat actor usage reported. |
|---|---|
| Proof of Concept | No public PoC. The technique (user-mode memory patching of an auth check) is well-understood but no researcher has published exploit code. Discoverers: Mayeul Fargier, Erwan Cordier, Noé Flatreaud. |
| EPSS Score | Not yet scored. CVE was published 2026-09-17; EPSS models typically require 24-72 hours to generate initial scores. |
| KEV Status | Not listed. No CISA Known Exploited Vulnerabilities catalog entry as of 2026-09-18. |
| CVSS v4.0 | CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:H/SA:H — 9.2 CRITICAL. Local vector, low privileges, Changed Scope to downstream PLC systems. High subsequent-system integrity and availability impact reflects PLC program tampering. |
| CVSS v3.1 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H — 8.8 HIGH. Scope Changed captures workstation-to-PLC impact chain. |
| Affected Versions | GX Works3: all versions prior to 1.096A. Motion Control Settings: all versions prior to 1.070Y. Affects every release ever shipped. |
| Fixed Versions | GX Works3 1.096A or later; Motion Control Settings 1.070Y or later. Mitsubishi also recommends setting *Security Version* to 2 in project settings after upgrade. |
| Scanning / Exposure | GX Works3 is a Windows desktop application — not network-exposed. No Shodan/Censys/GreyNoise footprint. Installed base estimated at tens of thousands of engineering workstations globally across manufacturing, utilities, and critical infrastructure. |
| Disclosure Date | 2026-09-17. CISA advisory ICSA-26-260-02 published same day. Coordinated disclosure with Mitsubishi Electric PSIRT. |
noisgate verdict.
The single most decisive factor is the OT-safety blast radius: GX Works3 is canonical ICS engineering software where 100% of installs program PLCs that control physical processes — successful exploitation enables PLC program sabotage with potential safety/operational impact, which floors the verdict at HIGH regardless of friction. The local-only attack vector and absence of any public PoC or in-the-wild exploitation prevent escalation to CRITICAL.
Why this verdict
- Local-only vector with process-ownership semantics: The attacker patches their own GX Works3 process in memory — no privilege escalation needed, but they must already have interactive access to the engineering workstation. This is a genuine friction point that narrows the reachable population to insiders and post-compromise scenarios.
- Role multiplier — canonical OT/ICS engineering tool: GX Works3 exists solely to program MELSEC PLCs. 100% of installations are in industrial/critical infrastructure contexts. The chain ends in PLC program tampering → safety interlock bypass → potential physical damage. This is textbook OT-safety impact, which sets a verdict floor of HIGH per the high-value-role catalog.
- All versions affected, patch just released: Every GX Works3 installation ever deployed is vulnerable. The patch (1.096A) dropped September 17, 2026. OT environments are notoriously slow to patch engineering software due to validation requirements, so the exposure window will be long.
- No public PoC or active exploitation — prevents CRITICAL: The memory-patching technique is straightforward for a skilled reverser, but no exploit code is public, no campaigns are attributed, and CISA has not added this to KEV. This absence of weaponization evidence keeps the verdict below CRITICAL.
- Historical pattern of GX Works3 auth flaws: CVE-2022-29830 (hardcoded crypto keys), CVE-2022-29831 (hardcoded passwords), CVE-2022-29832 (cleartext storage), and CVE-2023-4088 all targeted authentication and credential protection in GX Works3. This is a systemic weakness in the product's security architecture, increasing the probability that researchers or attackers will chain this with prior knowledge.
Why not higher?
A CRITICAL assessment would require either active exploitation evidence, a public weaponized PoC, or a remote/network attack vector. This CVE requires local interactive access to the engineering workstation — a significant barrier even in the OT threat model. The absence of any in-the-wild exploitation, KEV listing, or public exploit code further argues against CRITICAL. The attack also bypasses an *application-level* block password, not OS or network authentication, limiting the blast radius to the specific project the user has open.
Why not lower?
The affected component is canonical OT/ICS engineering software — every installation directly programs PLCs that control physical processes. Successful exploitation enables safety interlock tampering and potential physical damage, which is the highest-consequence outcome class in the OT threat model. The floor rule for OT-safety impact with a canonically high-value component prevents any assessment below HIGH. Additionally, all versions are affected, the technique requires only low privileges and standard user-mode debugging capabilities, and Mitsubishi's track record of authentication flaws in this product line suggests the weakness is architecturally deep.
What to do — in priority order.
- Deploy EDR with debugger-attachment detection on all GX Works3 workstations — The attack requires attaching a debugger to the GX Works3 process. EDR products that alert on
PROCESS_VM_WRITEor debugger attachment to non-developer processes will catch this technique. Deploy within the noisgate mitigation SLA of 30 days for HIGH severity. Configure Sysmon Event ID 10 to log cross-process access targeting GX Works3 executables. - Enable application whitelisting on engineering workstations — Block execution of unauthorized debuggers (x64dbg, WinDbg, OllyDbg) and scripting tools on OT engineering workstations. Windows Defender Application Control (WDAC) or a dedicated OT endpoint protection product can enforce this. This directly prevents Step 3 of the attack chain.
- Implement project file integrity monitoring — Hash or digitally sign golden-copy PLC project files and monitor for unauthorized changes. Compare project files against baselines before any PLC download operation. This detects post-exploitation tampering even if the authentication bypass succeeds.
- Restrict PLC download operations to authorized change windows — Configure PLC key-switches to STOP or use MELSOFT authentication (where supported) to prevent unauthorized program downloads. Require two-person integrity for any PLC program change in safety-critical systems.
- Upgrade to GX Works3 1.096A and set Security Version to 2 — This is the definitive fix. After upgrading, open each project and set the Security Version to
2in project properties to enable the corrected authentication algorithm. Plan and execute within the noisgate remediation SLA of 180 days for HIGH severity, prioritizing safety-critical systems first.
- Network segmentation alone — while critical for defense-in-depth, this CVE requires local access to the workstation, not network access to the PLC. Segmentation does not prevent an insider or a user who already has legitimate workstation access from exploiting this flaw.
- PLC-side authentication (MELSOFT protocol passwords) — the vulnerability bypasses the *application-level block password* in GX Works3, not PLC communication authentication. PLC passwords do not prevent the attacker from viewing or modifying the project on the workstation itself.
- Antivirus signature scanning — no malware signature exists for this technique because it uses legitimate debugging APIs (ReadProcessMemory/WriteProcessMemory) against the user's own process. AV will not flag this unless it has behavioral rules for debugger attachment.
Crowdsourced verification payload.
Run this script on each Windows host where GX Works3 is installed, using any user account (no admin required). Execute: powershell -ExecutionPolicy Bypass -File .\Check-CVE-2026-15688.ps1. The script checks the installed GX Works3 version against the patched version 1.096A.
#Requires -Version 5.1
# Check-CVE-2026-15688.ps1
# Checks whether GX Works3 is patched against CVE-2026-15688
# Output: VULNERABLE / PATCHED / UNKNOWN
# Exit codes: 1 = VULNERABLE, 0 = PATCHED, 2 = UNKNOWN
$ErrorActionPreference = 'Stop'
$patchedVersion = [version]'1.96.0' # 1.096A maps to file version 1.96.x
# Common install paths for GX Works3
$searchPaths = @(
'C:\Program Files\MELSOFT\GX Works3',
'C:\Program Files (x86)\MELSOFT\GX Works3',
'C:\MELSOFT\GX Works3'
)
# Also check registry for install location
$regPaths = @(
'HKLM:\SOFTWARE\MITSUBISHI ELECTRIC\GX Works3',
'HKLM:\SOFTWARE\WOW6432Node\MITSUBISHI ELECTRIC\GX Works3'
)
$installDir = $null
foreach ($rp in $regPaths) {
if (Test-Path $rp) {
$val = (Get-ItemProperty -Path $rp -ErrorAction SilentlyContinue).InstallDir
if ($val -and (Test-Path $val)) { $installDir = $val; break }
}
}
if (-not $installDir) {
foreach ($sp in $searchPaths) {
if (Test-Path $sp) { $installDir = $sp; break }
}
}
if (-not $installDir) {
Write-Host 'UNKNOWN - GX Works3 installation not found on this host.'
exit 2
}
# Find the main executable
$exePath = Join-Path $installDir 'GXW3.exe'
if (-not (Test-Path $exePath)) {
$exePath = Get-ChildItem -Path $installDir -Filter 'GXW3.exe' -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty FullName
}
if (-not $exePath -or -not (Test-Path $exePath)) {
Write-Host "UNKNOWN - GX Works3 directory found at $installDir but GXW3.exe not located."
exit 2
}
try {
$fileVer = (Get-Item $exePath).VersionInfo.FileVersion
$prodVer = (Get-Item $exePath).VersionInfo.ProductVersion
# Parse version - handle Mitsubishi version format
$verObj = [version]((Get-Item $exePath).VersionInfo.FileVersionRaw)
Write-Host "GX Works3 found: $exePath"
Write-Host "File version: $fileVer"
Write-Host "Product version: $prodVer"
Write-Host "Patched version: >= 1.096A (file version $patchedVersion)"
Write-Host '---'
if ($verObj -ge $patchedVersion) {
Write-Host 'PATCHED - GX Works3 version is 1.096A or later. CVE-2026-15688 is remediated.'
Write-Host 'NOTE: Also verify Security Version is set to 2 in each project.'
exit 0
} else {
Write-Host "VULNERABLE - GX Works3 version $fileVer is below 1.096A. CVE-2026-15688 applies."
Write-Host 'ACTION: Upgrade to GX Works3 1.096A+ and set Security Version to 2.'
exit 1
}
} catch {
Write-Host "UNKNOWN - Error reading version info from $exePath : $_"
exit 2
}If you remember one thing.
2 — the patch alone does not activate the corrected authentication algorithm. There is no active exploitation or public PoC today, so this is not an emergency, but the all-versions-affected scope and Mitsubishi's history of authentication flaws in this product line mean you should not defer this to backlog.Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.