← Back to Feed CACHED · 2026-09-18 01:52:49 · CACHE_KEY CVE-2026-15688
CVE-2026-15688 · CWE-303 · Disclosed 2026-09-17

Incorrect Implementation of Authentication Algorithm Vulnerability in Mitsubishi Electric GX Works3 and…

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

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.

"OT engineering tool auth bypass lets any local user tamper with PLC programs — safety impact floors this at HIGH"
02 · The Attack Path

5 steps from start to impact.

STEP 01

Gain local access to GX Works3 workstation

The attacker must obtain interactive access to a Windows workstation where GX Works3 is installed. In OT environments this is typically an engineering workstation on the control network. Access could come via insider privilege, stolen credentials, phishing an engineer's laptop, or lateral movement from IT into the OT DMZ.
Conditions required:
  • Local or RDP access to a host running GX Works3
  • Standard user account on Windows
Where this breaks in practice:
  • 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
Detection/coverage: EDR telemetry on the engineering workstation; jump-server session logging; physical access logs
STEP 02

Launch GX Works3 and open target project

The attacker opens the GX Works3 application and loads the target PLC project file. The project opens normally but block-password-protected sections remain locked, preventing viewing or editing of sensitive program blocks. The attacker needs the .gx3 project file to be accessible on the workstation or a shared drive.
Conditions required:
  • GX Works3 installed and licensed
  • Target project file accessible
Where this breaks in practice:
  • Project files may be stored on restricted shares with ACLs
  • Some orgs use version-control systems with audit trails for project files
Detection/coverage: File access auditing on project file shares; GX Works3 application logs
STEP 03

Attach debugger and patch authentication check in memory

The attacker uses a user-mode debugger (e.g., x64dbg, WinDbg, or a custom script) to attach to the running GX Works3 process. They locate the block-password validation routine in the loaded executable module and patch the conditional jump or return value in memory so the check always returns success. No admin privileges are required because the user owns the GX Works3 process they launched. No public PoC exists yet, but the technique is straightforward binary patching.
Conditions required:
  • Ability to run a debugger on their own process (standard user right on Windows)
  • Knowledge of the authentication routine offset (reverse engineering required)
Where this breaks in practice:
  • 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
Detection/coverage: EDR alerts on debugger attachment to GX Works3 process; Sysmon Event ID 10 (ProcessAccess with PROCESS_VM_WRITE)
STEP 04

Access protected program blocks

With the authentication check bypassed, the attacker can now view, edit, or delete any block-password-protected program section. This includes safety function blocks, motion control routines, and proprietary logic. The attacker can exfiltrate intellectual property or introduce malicious logic.
Conditions required:
  • Successful memory patch from Step 3
Where this breaks in practice:
  • Change detection systems that compare project files against golden baselines
  • Peer review workflows for PLC program changes
Detection/coverage: Project file diff/hash monitoring; version control audit logs
STEP 05

Download tampered program to PLC

The attacker downloads the modified control program to the target MELSEC PLC over the engineering network. If the PLC is in RUN mode, a mode change or online edit is required. Modified safety logic could cause incorrect actuator behavior, disable safety interlocks, or create conditions for physical damage.
Conditions required:
  • Network connectivity from workstation to target PLC
  • PLC access credentials or default/no authentication on MELSOFT protocol
Where this breaks in practice:
  • 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
Detection/coverage: PLC program change audit logs; network IDS rules for MELSOFT protocol write commands; safety system self-diagnostics
03 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationNo known exploitation. Not listed on CISA KEV as of 2026-09-18. No campaigns or threat actor usage reported.
Proof of ConceptNo 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 ScoreNot yet scored. CVE was published 2026-09-17; EPSS models typically require 24-72 hours to generate initial scores.
KEV StatusNot listed. No CISA Known Exploited Vulnerabilities catalog entry as of 2026-09-18.
CVSS v4.0CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:H/SA:H9.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.1CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H8.8 HIGH. Scope Changed captures workstation-to-PLC impact chain.
Affected VersionsGX Works3: all versions prior to 1.096A. Motion Control Settings: all versions prior to 1.070Y. Affects every release ever shipped.
Fixed VersionsGX 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 / ExposureGX 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 Date2026-09-17. CISA advisory ICSA-26-260-02 published same day. Coordinated disclosure with Mitsubishi Electric PSIRT.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to HIGH (8.5/10)

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.

HIGH Vulnerability mechanics and affected versions
HIGH OT/ICS blast radius assessment
MEDIUM Real-world exploitability timeline (no PoC yet, but technique is straightforward)
LOW EPSS and threat actor interest (too early to assess)

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.

05 · Compensating Control

What to do — in priority order.

  1. 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_WRITE or 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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 2 in 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.
What doesn't work
  • 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.
06 · Verification

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.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
#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
}
07 · Bottom Line

If you remember one thing.

TL;DR
Patch GX Works3 to 1.096A and Motion Control Settings to 1.070Y, prioritizing workstations that program safety PLCs and production-critical controllers. Per the noisgate mitigation SLA for HIGH severity, deploy compensating controls (EDR debugger-attachment alerting and application whitelisting on engineering workstations) within 30 days. Per the noisgate remediation SLA, complete the patch rollout across all GX Works3 installations within 180 days, though safety-critical systems should be patched in the first change window available. After patching, open each project and set *Security Version* to 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

  1. CISA ICS Advisory ICSA-26-260-02
  2. Strix AI — CVE-2026-15688 Detail
  3. Assurant Cyber — ICSA-26-260-02 Analysis
  4. Nozomi Networks — GX Works3 Safety PLC Security Flaws
  5. OpenCVE — CVE-2026-15688
  6. OffSeq Threat Radar — CVE-2026-15688
  7. Mitsubishi Electric PSIRT — Authentication Bypass Advisory (2023)
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.