Siemens has patched a high-severity DLL sideloading vulnerability in Siemens Software Center — tracked as CVE-2026-110936 (CVSS v4: 8.4) — after confirming it was being exploited in the wild as part of ClickFix social engineering campaigns delivering remote access trojans (RATs).
This combination is what makes the story operationally significant. DLL sideloading flaws are typically post-compromise primitives: an attacker needs code execution or file write access first. ClickFix closes that gap elegantly — it convinces the user to run the initial malware themselves. The result is a full attack chain that starts with a fake browser prompt and ends with a persistent, privileged RAT living inside a trusted, signed Siemens application.
If your environment includes engineering workstations, HMI operators, or anyone administering Siemens industrial software, this is not a theoretical exposure. Those users are exactly the personas ClickFix lures target, and exactly the machines where Siemens Software Center is installed.
Technical Analysis
The Vulnerability: CVE-2026-110936
Siemens Software Center — the centralized component used to install, update, and manage Siemens industrial software portfolios (TIA Portal, WinCC, and related engineering tools) — fails to properly constrain its DLL search order. An attacker who can place a specially crafted DLL into a directory the application searches can have that DLL loaded and executed with the same privileges as the Software Center process.
Key characteristics from a defender's perspective:
- Vulnerability class: DLL sideloading / uncontrolled search path (MITRE ATT&CK: T1574.001/T1574.002 — Hijack Execution Flow)
- Attack vector: Local — requires the malicious DLL to be staged on the target filesystem
- Privilege context: Code executes in the security context of Siemens Software Center, which is frequently run with elevated privileges during software installation and update workflows
- Severity: CVSS v4 score of 8.4 (High)
- Exploitation status: Confirmed active exploitation in the wild via ClickFix campaigns. This is not a theoretical or PoC-only bug.
The ClickFix Delivery Mechanism
ClickFix (and its variants such as ClearFake and FakeCAPTCHA) is a social engineering technique that has surged through 2025 and into 2026. The lure is a compromised or malicious web page presenting a fake error — a "browser verification," a CAPTCHA, a "fix this document" prompt — that instructs the victim to:
- Press Win+R to open the Run dialog
- Press Ctrl+V to paste a "verification string" (actually a malicious command silently copied to the clipboard by JavaScript on the page)
- Press Enter
That pasted string is typically a PowerShell one-liner (powershell -enc ..., mshta, or curl-based stager) executed via explorer.exe. In this campaign, the staged payload drops a malicious DLL into a directory searched by Siemens Software Center, then waits for — or triggers — the application to load it. Because the DLL is loaded by a legitimate, signed Siemens binary, many application control policies and naive EDR detections are bypassed entirely.
Why Sideloading Into Trusted Applications Matters
From an IR perspective, DLL sideloading into vendor-signed software is one of the most effective defense-evasion techniques we see in engagements:
- The executing process is digitally signed and trusted — application whitelisting (WDAC/AppLocker rules keyed on publisher) allows it
- Command-line telemetry shows a benign parent process (the Siemens binary), not the malware
- The malicious logic lives in a DLL file on disk, which may be the only scannable artifact — and it often masquerades with a legitimate-sounding name
- Persistence is inherited: every time Software Center launches (including via scheduled update checks), the payload re-executes
Detection & Response
The detections below target the three observable stages: the ClickFix initial execution, the DLL staging, and the sideload itself. Deploy them together — any single stage in isolation can have benign explanations, but the chain is unambiguous.
Sigma Rules
---
title: ClickFix-Style Execution via Run Dialog - Suspicious Child of Explorer
id: 3f8a2c91-7d4e-4b1a-9c6f-2e5d8a1b4f09
status: experimental
description: Detects ClickFix social engineering pattern where a user is tricked into pasting a malicious command into the Windows Run dialog, resulting in script interpreters or download cradles spawned directly by explorer.exe with suspicious command lines.
references:
- https://thehackernews.com/2026/10/clickfix-attackers-exploit-siemens.html
- https://attack.mitre.org/techniques/T1204/002/
- https://attack.mitre.org/techniques/T1059/001/
author: Security Arsenal
date: 2026/10/20
tags:
- attack.execution
- attack.t1204.002
- attack.t1059.001
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith: '\explorer.exe'
selection_image:
Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
- '\mshta.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\curl.exe'
- '\cmd.exe'
selection_cl:
CommandLine|contains:
- ' -enc'
- ' -e '
- 'iex'
- 'Invoke-Expression'
- 'Invoke-WebRequest'
- 'iwr '
- 'hidden'
- 'bypass'
- 'mshta http'
- 'http://'
- 'https://'
condition: selection_parent and selection_image and selection_cl
falsepositives:
- Rare legitimate administrative use of Run dialog with encoded commands
level: high
---
title: DLL Dropped in Siemens Software Center Directory by Non-Installer Process
id: 9c1e5b47-2a8d-4f36-b7e1-5d3a9c6f8210
status: experimental
description: Detects creation of DLL files in Siemens Software Center installation or search-path directories by processes other than legitimate installers/updaters, consistent with CVE-2026-110936 DLL staging for sideloading.
references:
- https://thehackernews.com/2026/10/clickfix-attackers-exploit-siemens.html
- https://attack.mitre.org/techniques/T1574/001/
author: Security Arsenal
date: 2026/10/20
tags:
- attack.persistence
- attack.privilege_escalation
- attack.t1574.001
logsource:
category: file_event
product: windows
detection:
selection_path:
TargetFilename|contains:
- '\Siemens\SoftwareCenter\'
- '\Siemens\Automation\'
- '\Program Files\Siemens\'
- '\Program Files (x86)\Siemens\'
selection_ext:
TargetFilename|endswith: '.dll'
filter_installers:
Image|endswith:
- '\msiexec.exe'
- '\setup.exe'
- '\Siemens.SoftwareCenter.exe'
- '\TrustedInstaller.exe'
- '\TiWorker.exe'
condition: selection_path and selection_ext and not filter_installers
falsepositives:
- Legitimate Siemens software deployments using non-standard installer names - baseline installer names in your environment
level: high
---
title: Siemens Software Center Loading DLL from User-Writable Path
id: 5b7d3e92-4f1a-4c68-a2d9-8e6b1f3a7c45
status: experimental
description: Detects Siemens Software Center or related Siemens processes loading DLLs from user-writable locations such as Downloads, Temp, AppData, or Public folders - a hallmark of DLL sideloading exploitation of CVE-2026-110936.
references:
- https://thehackernews.com/2026/10/clickfix-attackers-exploit-siemens.html
- https://attack.mitre.org/techniques/T1574/002/
author: Security Arsenal
date: 2026/10/20
tags:
- attack.defense_evasion
- attack.privilege_escalation
- attack.t1574.002
logsource:
category: image_load
product: windows
detection:
selection_process:
Image|contains: '\Siemens\'
selection_dll_path:
ImageLoaded|contains:
- '\Users\'
- '\AppData\'
- '\Temp\'
- '\Downloads\'
- '\Public\'
- '\ProgramData\'
condition: selection_process and selection_dll_path
falsepositives:
- Developer or test builds of Siemens components - verify signature status of loaded DLL
level: critical
KQL — Microsoft Sentinel / Defender XDR
This query correlates the ClickFix execution pattern with subsequent suspicious DLL drops touching Siemens paths, giving you the full campaign in one hunt. Run it over a 7-day window for initial triage, then daily as a scheduled analytic rule.
// Hunt: ClickFix initial execution correlated with Siemens DLL staging (CVE-2026-110936)
let Lookback = 7d;
let ClickFixExec = DeviceProcessEvents
| where Timestamp > ago(Lookback)
| where InitiatingProcessFileName =~ "explorer.exe"
| where FileName in~ ("powershell.exe", "pwsh.exe", "mshta.exe", "wscript.exe", "cscript.exe", "curl.exe", "cmd.exe")
| where ProcessCommandLine has_any ("-enc", "iex", "Invoke-Expression", "Invoke-WebRequest", "iwr ", "hidden", "bypass", "http://", "https://")
| project ClickFixTime = Timestamp, DeviceId, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessFileName;
let SiemensDllWrites = DeviceFileEvents
| where Timestamp > ago(Lookback)
| where ActionType == "FileCreated"
| where FileName endswith ".dll"
| where FolderPath has_any ("\\Siemens\\SoftwareCenter\\", "\\Program Files\\Siemens\\", "\\Program Files (x86)\\Siemens\\", "\\Siemens\\Automation\\")
| where InitiatingProcessFileName !in~ ("msiexec.exe", "setup.exe", "TrustedInstaller.exe", "TiWorker.exe")
| project DllWriteTime = Timestamp, DeviceId, DeviceName, FolderPath, FileName, SHA256, DllWriterProcess = InitiatingProcessFileName, DllWriterCmd = InitiatingProcessCommandLine;
ClickFixExec
| join kind=inner SiemensDllWrites on DeviceId
| where DllWriteTime between (ClickFixTime .. ClickFixTime + 2h)
| project ClickFixTime, DllWriteTime, DeviceName, AccountName, ProcessCommandLine, FolderPath, FileName, SHA256, DllWriterProcess, DllWriterCmd
| sort by ClickFixTime desc;
Two supporting single-stage hunts worth running independently:
// Hunt A: Siemens processes loading DLLs from user-writable paths (sideload behavior)
DeviceImageLoadEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFolderPath has "\\Siemens\\" or FolderPath has "\\Siemens\\"
| where FolderPath has_any ("\\Users\\", "\\AppData\\", "\\Temp\\", "\\Downloads\\", "\\Public\\")
| where FileName endswith ".dll"
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessFolderPath, FolderPath, FileName, SHA256
| sort by Timestamp desc;
// Hunt B: Any file writes into Siemens install dirs by non-installer processes
DeviceFileEvents
| where Timestamp > ago(7d)
| where ActionType in ("FileCreated", "FileModified", "FileRenamed")
| where FolderPath has "\\Siemens\\"
| where FileName endswith ".dll"
| where InitiatingProcessFileName !in~ ("msiexec.exe", "setup.exe", "TrustedInstaller.exe", "TiWorker.exe", "System")
| summarize FirstSeen = min(Timestamp), LastSeen = max(Timestamp), Devices = dcount(DeviceId)
by InitiatingProcessFileName, InitiatingProcessFolderPath, FileName
| sort by Devices asc;
Velociraptor VQL
Use this artifact to sweep your Siemens-equipped fleet for unsigned or anomalous DLLs in Software Center directories, plus evidence of ClickFix-style execution (PowerShell spawned by explorer). Deploy as a hunt across the OU containing engineering/OT workstations.
-- CVE-2026-110936 Hunt: Suspicious DLLs in Siemens paths + ClickFix execution evidence
-- Part 1: Inventory DLLs in Siemens Software Center directories with signature status
LET dll_inventory = SELECT
FullPath,
Mtime AS Modified,
Size,
hash(path=FullPath).MD5 AS MD5,
authenticode(filename=FullPath).Status AS SignatureStatus,
authenticode(filename=FullPath).Subject AS Signer
FROM glob(globs=[
'C:/Program Files/Siemens/**/*.dll',
'C:/Program Files (x86)/Siemens/**/*.dll',
'C:/Program Files/Siemens/SoftwareCenter/*.dll'
])
WHERE SignatureStatus != 'trusted'
OR Signer !~ 'Siemens'
-- Part 2: Recent ClickFix-pattern process execution (script interpreter child of explorer)
LET clickfix_procs = SELECT
Pid,
Name,
CommandLine,
Exe,
Username,
CreateTime
FROM pslist()
WHERE Name =~ '(?i)powershell|pwsh|mshta|wscript|cscript|curl'
AND CommandLine =~ '(?i)(-enc|iex|invoke-expression|invoke-webrequest|hidden|bypass|http)'
SELECT * FROM dll_inventory
UNION ALL
SELECT * FROM clickfix_procs
Note: run the two parts as separate artifacts in production if your VQL version complains about the schema mismatch in the UNION — the DLL inventory alone is the highest-value output.
Verification & Hardening Script
This PowerShell script (run as Administrator) reports the installed Siemens Software Center state, flags unsigned DLLs in Siemens directories, and checks for ClickFix-style artifacts. It is read-only — safe for broad deployment via your RMM or Intune.
# CVE-2026-110936 Assessment Script - Security Arsenal
# Verifies Siemens Software Center state and hunts for sideloaded DLLs / ClickFix artifacts
$report = [ordered]@{}
# 1. Locate Siemens Software Center installations
$siemensPaths = @(
"$env:ProgramFiles\Siemens",
"${env:ProgramFiles(x86)}\Siemens"
) | Where-Object { Test-Path $_ }
$report['SiemensInstalled'] = ($siemensPaths.Count -gt 0)
Write-Host "[+] Siemens directories found: $($siemensPaths -join '; ')"
# 2. Enumerate installed Siemens software and versions (verify against patched baseline)
$installed = Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*,
HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* -ErrorAction SilentlyContinue |
Where-Object { $_.DisplayName -match 'Siemens' } |
Select-Object DisplayName, DisplayVersion, InstallDate
$installed | Format-Table -AutoSize
Write-Host "[!] ACTION: Compare DisplayVersion values against the fixed versions in the Siemens ProductCERT advisory for CVE-2026-110936."
# 3. Scan for unsigned / non-Siemens DLLs in Siemens installation directories
$suspiciousDlls = foreach ($path in $siemensPaths) {
Get-ChildItem -Path $path -Recurse -Filter *.dll -ErrorAction SilentlyContinue |
ForEach-Object {
$sig = Get-AuthenticodeSignature $_.FullName
if ($sig.Status -ne 'Valid' -or $sig.SignerCertificate.Subject -notmatch 'Siemens') {
[PSCustomObject]@{
Path = $_.FullName
LastWrite = $_.LastWriteTime
SigStatus = $sig.Status
Signer = $sig.SignerCertificate.Subject
}
}
}
}
if ($suspiciousDlls) {
Write-Host "[-] SUSPICIOUS: Unsigned or non-Siemens-signed DLLs found (potential sideload staging):" -ForegroundColor Red
$suspiciousDlls | Format-Table -AutoSize
$report['SuspiciousDllCount'] = $suspiciousDlls.Count
} else {
Write-Host "[+] No unsigned DLLs detected in Siemens directories."
$report['SuspiciousDllCount'] = 0
}
# 4. Check for DLLs in user-writable paths referencing Siemens (dropper staging)
$userWritableHits = Get-ChildItem "$env:USERPROFILE\Downloads", "$env:TEMP", "$env:LOCALAPPDATA\Temp" -Recurse -Filter *.dll -ErrorAction SilentlyContinue |
Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-14) } |
Select-Object FullName, LastWriteTime
if ($userWritableHits) {
Write-Host "[!] Recent DLLs in user-writable paths - review for staging activity:" -ForegroundColor Yellow
$userWritableHits | Format-Table -AutoSize
}
# 5. Review recent Run dialog history (MRU) for ClickFix-style pasted commands
$runMru = Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU" -ErrorAction SilentlyContinue
if ($runMru) {
$runMru.PSObject.Properties | Where-Object { $_.Name -match '^[a-z]$' } |
ForEach-Object {
if ($_.Value -match '(?i)powershell|mshta|curl|iex|-enc|http') {
Write-Host "[-] CLICKFIX INDICATOR in Run dialog history: $($_.Value)" -ForegroundColor Red
}
}
}
Write-Host "`n[+] Assessment complete. Escalate any RED findings to IR immediately."
Remediation
1. Patch immediately. Apply the updated Siemens Software Center release referenced in the Siemens ProductCERT advisory for CVE-2026-110936. Siemens publishes security advisories through its ProductCERT portal — pull the advisory and fixed-version matrix directly from the vendor:
- Siemens ProductCERT advisories: https://cert-portal.siemens.com/productcert/
- Campaign reporting: https://thehackernews.com/2026/10/clickfix-attackers-exploit-siemens.html
Given confirmed in-the-wild exploitation, treat this as an emergency change for any internet-adjacent or user-interactive workstation running Siemens software — do not wait for the next patch cycle. Monitor CISA KEV for inclusion; Siemens ICS advisories with active exploitation are routinely added, which would impose a BOD 22-01 remediation deadline for federal agencies and serve as a de facto deadline for everyone else.
2. Constrain the DLL search path where patching lags. As an interim mitigation on unpatched systems:
- Enable
SafeDllSearchMode(enabled by default, but verify it hasn't been disabled) and consider deploying theCWDIllegalInDllSearchregistry value set to2to block DLL loads from the current working directory for network/USB-sourced paths - Audit NTFS permissions on all Siemens installation directories — standard users must not have write access. The ClickFix chain works because the staged payload runs in the user's context; if the user can't write to the search path, sideloading fails
- Remove Siemens Software Center from devices that don't require it — every installation is attack surface
3. Blunt the ClickFix vector itself. This is the highest-leverage systemic fix:
- Disable or restrict the Run dialog for non-admin users via GPO (
Remove Run menu from Start Menu) — ClickFix is almost entirely dependent on Win+R. This single policy breaks the technique's primary delivery path - Block script interpreters for standard users via AppLocker/WDAC where operationally feasible, or at minimum constrain PowerShell with Constrained Language Mode for non-admins
- Train users on the ClickFix pattern specifically. Generic phishing training does not cover "paste this into your Run dialog." Add a ClickFix scenario to your next awareness cycle — the tell is any website asking you to press Win+R or paste anything
4. Hunt before you assume you're clean. Because the sideloaded DLL persists across application restarts, patching alone does not evict an already-planted payload. Run the VQL sweep and the PowerShell assessment across all Siemens-bearing endpoints before declaring remediation complete. Any unsigned DLL in a Siemens path is an IR ticket, not a cleanup task.
5. Network-layer compensating controls. RATs need C2. Enforce egress filtering on engineering workstations (which should have tightly scoped internet access anyway), and alert on Siemens processes initiating outbound network connections — Siemens Software Center has a narrow, well-documented set of legitimate update endpoints. Anything else from that process tree is worth a second look.
The Bottom Line
CVE-2026-110936 is a reminder that "local-only" vulnerabilities become remote compromises the moment a social engineer supplies the delivery mechanism. ClickFix is prolific precisely because it converts the most reliable exploit in the industry — the user — into initial access. Patch Siemens Software Center now, restrict the Run dialog, verify no unsigned DLLs are already sitting in your Siemens directories, and treat engineering workstations as the high-value targets they are.
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.