Back to Intelligence

CVE-2026-27875: Johnson Controls Simplex Incident Manager Credential Exposure — Detection and Remediation Guide

SA
Security Arsenal Team
August 21, 2026
12 min read

CISA has published ICS Advisory ICSA-26-232-01 covering CVE-2026-27875, a cleartext storage of sensitive information vulnerability (CWE-312/CWE-316 class behavior) in Johnson Controls Simplex Incident Manager, all versions up to and including V2.01. The flaw carries a CVSS v3.1 base score of 5.8 (Medium) — but do not let the score lull you into deprioritizing it. This product sits in critical manufacturing, commercial facilities, government facilities, transportation, and energy environments worldwide, and the vulnerability hands a low-privilege local user the keys to the kingdom: user passwords and authentication tokens, readable directly from process memory.

In building automation and incident management contexts, the Simplex Incident Manager host is frequently a shared, always-on Windows workstation or server that bridges physical security systems (fire alarm panels, mass notification, access control) with IT networks. Credentials extracted from this application don't just compromise one application — they can cascade into connected building automation controllers, operator workstations, and any integrated enterprise systems. If an attacker has already established a foothold via phishing or an exposed service on the OT/IT boundary, this vulnerability is the privilege-escalation and lateral-movement accelerant.

Technical Analysis

Affected Products and Versions

AttributeDetail
VendorJohnson Controls Inc.
ProductSimplex Incident Manager
Affected Versions<= V2.01
CVECVE-2026-27875
CVSS v3.15.8 (Medium) — Local, low privileges required
WeaknessCleartext Storage of Sensitive Information in Memory
DeploymentWorldwide — Critical Manufacturing, Commercial Facilities, Government Services and Facilities, Transportation Systems, Energy

How the Vulnerability Works (Defender's Perspective)

The Simplex Incident Manager application retains user credentials — passwords and authentication tokens — in cleartext within process memory during normal operation. Any local account with low privileges that can read the target process's memory space can scrape these secrets. The attack chain is straightforward:

  1. Initial foothold: Attacker gains low-privilege local access to the host running Simplex Incident Manager — via a phished user, a compromised service account, remote access tooling, or physical access to an operator workstation.
  2. Memory access: The attacker opens a handle to the Incident Manager process (or triggers a process dump) and reads its memory regions. On Windows, this is typically accomplished via OpenProcess with PROCESS_VM_READ, tools like ProcDump, comsvcs.dll MiniDump, or custom memory-scraping utilities.
  3. Credential extraction: Cleartext passwords and live authentication tokens are parsed from memory — no cracking required.
  4. Post-exploitation: The stolen credentials provide unauthorized access to the Incident Manager application itself and any connected downstream systems (notification appliances, panels, integrated platforms), plus reusable credentials for lateral movement if operators reuse passwords — which, in OT environments, they frequently do.

The Local attack vector and Low privilege requirement are why the CVSS score lands at 5.8 rather than higher — but in shared-workstation OT environments, "local low-privilege access" describes the default condition of many operator accounts.

Exploitation Status

As of the advisory publication, there is no confirmed in-the-wild exploitation and CVE-2026-27875 is not currently listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Public proof-of-concept code has not been observed. However, memory-scraping credential theft is one of the most mature and well-tooled techniques in existence (MITRE ATT&CK T1003), so the barrier to exploitation is trivially low once local access exists. Treat this as exploitable today.

Detection & Response

The defensive opportunity here is strong: extracting credentials from process memory is a noisy, well-understood behavior. Whether the attacker targets the Incident Manager process specifically or abuses the foothold to also hit LSASS, your detections should focus on suspicious process memory access and dump tooling on hosts running Simplex Incident Manager.

Sigma Rules

YAML
---
title: Suspicious Memory Access to Simplex Incident Manager Process
id: 8f2c1d4a-3b6e-4a9f-b7c2-5e8d1a0f3c94
status: experimental
description: Detects processes opening handles with memory-read access rights to Johnson Controls Simplex Incident Manager processes, consistent with CVE-2026-27875 credential extraction from cleartext process memory.
references:
  - https://www.cisa.gov/news-events/ics-advisories/icsa-26-232-01
  - https://attack.mitre.org/techniques/T1003/
author: Security Arsenal
date: 2026/08/21
tags:
  - attack.credential_access
  - attack.t1003
logsource:
  category: process_access
  product: windows
detection:
  selection_target:
    TargetImage|contains:
      - '\\Simplex'
      - '\\IncidentManager'
      - 'IncidentManager.exe'
      - 'SimplexIM.exe'
  selection_access:
    GrantedAccess|contains:
      - '0x1410'
      - '0x1438'
      - '0x143a'
      - '0x1FFFFF'
      - '0x1010'
  filter_legit:
    SourceImage|contains:
      - 'C:\\Windows\\System32\\'
      - 'C:\\Program Files\\Johnson Controls\\'
      - 'C:\\Program Files (x86)\\Johnson Controls\\'
  condition: selection_target and selection_access and not filter_legit
falsepositives:
  - Vendor maintenance tools and legitimate Johnson Controls service utilities
  - Antivirus/EDR memory scanning engines (tune by SourceImage hash)
level: high
---
title: Process Dump Tool Execution on Incident Management Host
id: 2d7e9b31-6a4c-4f18-9d55-8c3a1e6b0f27
status: experimental
description: Detects execution of known process-dumping utilities and comsvcs.dll MiniDump abuse on hosts, a common method to extract cleartext credentials such as those exposed by CVE-2026-27875.
references:
  - https://www.cisa.gov/news-events/ics-advisories/icsa-26-232-01
  - https://attack.mitre.org/techniques/T1003/001/
author: Security Arsenal
date: 2026/08/21
tags:
  - attack.credential_access
  - attack.t1003
logsource:
  category: process_creation
  product: windows
detection:
  selection_procdump:
    CommandLine|contains:
      - 'procdump'
      - ' -ma '
      - ' -mm '
  selection_comsvcs:
    CommandLine|contains:
      - 'comsvcs.dll'
      - 'MiniDump'
  selection_sqldumper:
    Image|endswith:
      - '\\sqldumper.exe'
      - '\\createdump.exe'
      - '\\dumpit.exe'
      - '\\nanodump.exe'
  condition: 1 of selection_*
falsepositives:
  - Legitimate crash-dump collection by support engineers during vendor troubleshooting
  - Automated application error reporting (WER) — tune by parent process
level: high
---
title: LSASS Memory Access by Non-System Process on OT Workstation
id: 4a1b8c65-9d20-4e73-b381-6f0c2a7d5e19
status: experimental
description: Detects non-standard processes accessing LSASS memory. Relevant as follow-on behavior after credential theft via CVE-2026-27875 on hosts bridging building automation and IT networks.
references:
  - https://www.cisa.gov/news-events/ics-advisories/icsa-26-232-01
  - https://attack.mitre.org/techniques/T1003/001/
author: Security Arsenal
date: 2026/08/21
tags:
  - attack.credential_access
  - attack.t1003.001
logsource:
  category: process_access
  product: windows
detection:
  selection:
    TargetImage|endswith: '\\lsass.exe'
    GrantedAccess|contains:
      - '0x1010'
      - '0x1410'
      - '0x1438'
      - '0x143a'
      - '0x1FFFFF'
  filter_system:
    SourceImage|startswith:
      - 'C:\\Windows\\System32\\'
      - 'C:\\ProgramData\\Microsoft\\Windows Defender\\'
  condition: selection and not filter_system
falsepositives:
  - EDR/AV credential-theft protection modules (allowlist by signed binary hash)
  - Legitimate identity management agents
level: critical

KQL — Microsoft Sentinel / Defender

This query hunts across Defender process-access telemetry and ingested Sysmon/CEF logs for memory-access patterns and dump tooling consistent with exploitation of CVE-2026-27875 on Simplex hosts:

KQL — Microsoft Sentinel / Defender
let Lookback = 14d;
let DumpTools = dynamic(["procdump", "comsvcs.dll", "MiniDump", "sqldumper", "createdump", "nanodump", "dumpit"]);
union
(DeviceProcessEvents
 | where TimeGenerated > ago(Lookback)
 | where ProcessCommandLine has_any (DumpTools)
 | project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessFileName, SHA256),
(DeviceEvents
 | where TimeGenerated > ago(Lookback)
 | where ActionType == "OpenProcessApiCall"
 | where AdditionalFields has "lsass" or AdditionalFields has_any ("Simplex", "IncidentManager")
 | project TimeGenerated, DeviceName, InitiatingProcessAccountName, InitiatingProcessFileName, InitiatingProcessCommandLine, AdditionalFields),
(SecurityEvent
 | where TimeGenerated > ago(Lookback)
 | where EventID == 4656 or EventID == 4663
 | where ObjectName has_any ("lsass", "IncidentManager", "Simplex")
 | project TimeGenerated, Computer, SubjectUserName, ProcessName, ObjectName, AccessMask),
(CommonSecurityLog
 | where TimeGenerated > ago(Lookback)
 | where Message has_any (DumpTools) or Message has_any ("IncidentManager", "Simplex") and Message has "GrantedAccess"
 | project TimeGenerated, Computer, SourceUserName, Message)
| order by TimeGenerated desc

Velociraptor VQL

Use this artifact to sweep Simplex Incident Manager fleet endpoints for live dump-tool execution and unexpected handles to the application process:

VQL — Velociraptor
-- Hunt for credential-dumping tooling and suspicious processes on Simplex Incident Manager hosts
SELECT Pid, Ppid, Name, Exe, CommandLine, Username, CreateTime
FROM pslist()
WHERE CommandLine =~ '(?i)(procdump|comsvcs\.dll|MiniDump|sqldumper|createdump|nanodump|dumpit|\-ma )'
   OR Exe =~ '(?i)(procdump|sqldumper|nanodump|createdump|dumpit)'
   OR (Name =~ '(?i)(incidentmanager|simplex)')

A companion artifact to identify leftover dump files — evidence that extraction already occurred:

VQL — Velociraptor
-- Search for recently created memory dump files that may contain extracted credentials
SELECT FullPath, Size, Mtime, Btime
FROM glob(globs=['C:/Users/*/*.dmp', 'C:/Windows/Temp/*.dmp', 'C:/ProgramData/**/*.dmp', 'C:/*.dmp'])
WHERE Mtime > now() - 1209600
ORDER BY Mtime DESC

If either artifact returns hits, treat the host as compromised: isolate it, collect a full memory image before remediation (yes — ironically the same mechanism that makes this bug dangerous makes forensic capture valuable), and force credential rotation for every account that has ever authenticated to that Incident Manager instance.

Remediation & Verification Script

The following PowerShell script inventories the Simplex Incident Manager installation version, checks for suspicious dump artifacts, and validates that OS-level credential protections (LSA Protection, Credential Guard, restricted WDigest-style plaintext caching) are in place on the host:

PowerShell
# CVE-2026-27875 - Simplex Incident Manager Host Hardening & Verification
# Run elevated on each host running Simplex Incident Manager

$Report = @()

# 1. Identify Simplex Incident Manager installation and version
$installPaths = @(
    "$env:ProgramFiles\Johnson Controls",
    "${env:ProgramFiles(x86)}\Johnson Controls",
    "$env:ProgramFiles\Simplex",
    "${env:ProgramFiles(x86)}\Simplex"
)
foreach ($path in $installPaths) {
    if (Test-Path $path) {
        Get-ChildItem -Path $path -Recurse -Include *.exe -ErrorAction SilentlyContinue |
            Where-Object { $_.Name -match 'Incident|Simplex|IM' } |
            ForEach-Object {
                $Report += [PSCustomObject]@{
                    Check   = 'InstallInventory'
                    Detail  = "$($_.FullName) - Version $($_.VersionInfo.ProductVersion)"
                    Status  = if ($_.VersionInfo.ProductVersion -match '^(1\.|2\.0|2\.01)') { 'VULNERABLE - <= V2.01' } else { 'Review version against vendor advisory' }
                }
            }
    }
}

# 2. Check LSA Protection (RunAsPPL) - blocks non-trusted memory reads of LSASS
$ppl = (Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name RunAsPPL -ErrorAction SilentlyContinue).RunAsPPL
$Report += [PSCustomObject]@{
    Check  = 'LSA Protection (RunAsPPL)'
    Detail = "RunAsPPL = $ppl"
    Status = if ($ppl -eq 1) { 'PASS' } else { 'FAIL - Set HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\RunAsPPL = 1' }
}

# 3. Check Credential Guard
$cg = Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard -ErrorAction SilentlyContinue
$Report += [PSCustomObject]@{
    Check  = 'Credential Guard'
    Detail = "SecurityServicesRunning: $($cg.SecurityServicesRunning -join ',')"
    Status = if ($cg.SecurityServicesRunning -contains 1) { 'PASS' } else { 'WARN - Enable Credential Guard via GPO/Intune' }
}

# 4. Ensure plaintext credential caching (WDigest UseLogonCredential) is disabled
$wdigest = (Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest' -Name UseLogonCredential -ErrorAction SilentlyContinue).UseLogonCredential
$Report += [PSCustomObject]@{
    Check  = 'WDigest plaintext caching'
    Detail = "UseLogonCredential = $wdigest"
    Status = if ($wdigest -eq 0) { 'PASS' } else { 'FAIL - Set UseLogonCredential = 0' }
}

# 5. Sweep for suspicious dump artifacts (last 14 days)
$dumpPaths = @("$env:TEMP", 'C:\Windows\Temp', 'C:\ProgramData', 'C:\')
$susDumps = foreach ($p in $dumpPaths) {
    Get-ChildItem -Path $p -Filter *.dmp -Recurse -ErrorAction SilentlyContinue -Depth 2 |
        Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-14) }
}
$Report += [PSCustomObject]@{
    Check  = 'Recent dump artifacts'
    Detail = if ($susDumps) { ($susDumps.FullName -join '; ') } else { 'None found' }
    Status = if ($susDumps) { 'INVESTIGATE - possible credential extraction' } else { 'PASS' }
}

# 6. Verify restricted local logon - list local admins for least-privilege review
$admins = Get-LocalGroupMember -Group 'Administrators' -ErrorAction SilentlyContinue
$Report += [PSCustomObject]@{
    Check  = 'Local Administrators'
    Detail = ($admins.Name -join '; ')
    Status = 'REVIEW - remove any account not operationally required'
}

$Report | Format-Table -AutoSize
$Report | Export-Csv -Path "C:\CVE-2026-27875-HostAudit-$(hostname)-$(Get-Date -Format yyyyMMdd).csv" -NoTypeInformation
Write-Host "`nAudit exported. Remediate FAIL/INVESTIGATE items and upgrade Simplex Incident Manager past V2.01 per the Johnson Controls advisory." -ForegroundColor Yellow

Remediation

  1. Upgrade Simplex Incident Manager. All versions <= V2.01 are affected. Contact Johnson Controls and apply the fixed release referenced in the vendor advisory as soon as it is available for your deployment. Track via the official CISA advisory: https://www.cisa.gov/news-events/ics-advisories/icsa-26-232-01 and the Johnson Controls product security page. Until patched, treat every Incident Manager host as holding plaintext credentials.

  2. Rotate credentials now — and again after patching. Any account that has authenticated through Incident Manager on a vulnerable version should have its password and any issued tokens rotated. If the host's local-access controls were weak, assume compromise and rotate everything, including service accounts used for panel/controller integration.

  3. Minimize local attack surface. Because exploitation requires local access, the highest-leverage compensating control is shrinking who and what can touch the host:

    • Remove local administrator rights from operator accounts; enforce least privilege.
    • Restrict interactive and RDP logon to named, required accounts via GPO (Deny log on locally / Allow log on through Remote Desktop Services).
    • Disable or tightly control remote access tools and vendor support accounts when not in active use.
  4. Harden the OS against memory credential theft. Enable LSA Protection (RunAsPPL), Credential Guard, and set WDigest UseLogonCredential=0 (script above). Deploy Attack Surface Reduction rules blocking credential stealing from LSASS. These controls don't fix CVE-2026-27875's application-level flaw, but they raise the cost of the broader credential-theft playbook and protect against follow-on LSASS dumping.

  5. Segment the host. Simplex Incident Manager hosts bridging building automation and corporate networks should sit in a dedicated, firewalled VLAN with no direct internet egress, restricted east-west traffic, and brokered administrative access (jump host / PAM). This contains the blast radius of both the foothold and the stolen credentials.

  6. Deploy monitoring. Forward Sysmon (Event ID 10 process access, Event ID 1 process creation) and Windows Security logs from all Simplex hosts to your SIEM and enable the Sigma and KQL detections above. Alert on any .dmp file creation outside approved support workflows.

  7. Follow CISA ICS guidance. Apply the standard mitigations CISA reiterates in every ICS advisory: minimize network exposure for control system devices, isolate control networks behind firewalls, and use secure remote access (updated VPNs with MFA) only when operationally necessary.

Final Assessment

CVE-2026-27875 is not a headline-grabbing 9.8 remote code execution — it is something more insidious: a quiet credential leak baked into software that guards physical safety systems in critical facilities. Medium-severity scores on local privilege-escalation and credential-exposure bugs routinely become the second stage of intrusions that start somewhere else entirely. If you run Simplex Incident Manager V2.01 or earlier, patch when Johnson Controls releases the fix, rotate credentials, lock down local access, and turn on memory-access telemetry today.

Related Resources

Security Arsenal Managed SOC Services AlertMonitor Platform Book a SOC Assessment soc-mdr Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.