On August 13, 2026, CISA published ICS Advisory ICSA-26-225-10, disclosing CVE-2026-64629 — an out-of-bounds read vulnerability in Siemens Parasolid, the geometric modeling kernel that underpins hundreds of CAD/CAM/CAE applications worldwide. The flaw is triggered when Parasolid parses specially crafted files in the X_T format (Parasolid's native text transmit format). A successful exploit can crash the host application or — per Siemens' own assessment — allow arbitrary code execution in the context of the user opening the file.
This matters far beyond Siemens' own product line. Parasolid is embedded in Solid Edge, NX, SolidWorks-adjacent tooling, and a long tail of third-party engineering and manufacturing software. The affected deployment footprint spans the Critical Manufacturing sector globally, and the attack vector is a file format that engineers exchange daily — via email, PLM systems, shared drives, and supplier portals. That combination of a ubiquitous parser, a common file-exchange workflow, and a CVSS v3 score of 7.8 (High) makes this a priority patch-and-hunt item for any organization with engineering workstations.
Technical Analysis
Affected Products and Versions
| Product | Affected Versions | Fixed Version | CVE |
|---|---|---|---|
| Siemens Parasolid V38.0 | < 38.0.235 | 38.0.235 and later | CVE-2026-64629 |
| Siemens Parasolid V38.1 | < 38.1.230 | 38.1.230 and later | CVE-2026-64629 |
CVSS v3: 7.8 (High) — consistent with a local, user-interaction-required file-parsing flaw (typical vector: AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H).
How the Vulnerability Works
CVE-2026-64629 is an out-of-bounds read (CWE-125) in Parasolid's X_T file parser. X_T files are text-based geometry transmit files that describe solid models, surfaces, and topology. When a victim opens a maliciously crafted .x_t file in any application built on a vulnerable Parasolid kernel, the parser reads beyond the bounds of an allocated buffer.
From a defender's perspective, the exploitation chain looks like this:
- Delivery: Attacker delivers a weaponized
.x_tfile via phishing email, a compromised supplier, a poisoned PLM/vault repository, or a watering-hole download targeting engineers. - Trigger: The victim opens the file — or it is opened automatically by a previewer, thumbnailer, indexing service, or automated CAD import/conversion pipeline.
- Impact: The out-of-bounds read corrupts application state. At minimum, this crashes the application (denial of service against engineering productivity). Siemens explicitly notes the potential for arbitrary code execution, which would occur with the privileges of the user running the CAD application — typically an engineer with access to sensitive IP, PLM systems, and OT-adjacent networks.
Exploitation Status
As of the advisory publication, CISA and Siemens have not reported confirmed in-the-wild exploitation, and CVE-2026-64629 is not currently listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. There is no public proof-of-concept at time of writing. However, file-parsing vulnerabilities in CAD kernels have a well-documented history of being weaponized for targeted IP theft against manufacturing and defense-adjacent organizations — treat this as exploitable and patch on an accelerated cadence.
Detection & Response
Because exploitation requires a malicious X_T file to be opened by a Parasolid-based application, the highest-fidelity detections focus on three observables: (1) anomalous child processes or post-crash behavior from CAD applications, (2) X_T file provenance from email/web downloads, and (3) unexpected application crashes on engineering workstations. Memory-corruption exploits are noisy at the point of execution — the host process either crashes or starts doing things a CAD kernel never should.
Sigma Rules
---
title: CAD Application Spawning Suspicious Child Process
tid: 8f2c4a91-3d6e-4b1a-9c7d-2e5f8a1b3c4d
status: experimental
description: Detects CAD/engineering applications (Parasolid-based and similar) spawning shells, script interpreters, or LOLBins — a strong indicator of successful file-parsing exploit execution such as CVE-2026-64629 delivered via a malicious X_T file.
references:
- https://www.cisa.gov/news-events/ics-advisories/icsa-26-225-10-0
- https://attack.mitre.org/techniques/T1203/
author: Security Arsenal
date: 2026/08/14
tags:
- attack.execution
- attack.t1203
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\solidedge.exe'
- '\ugraf.exe'
- '\nx.exe'
- '\siemensnx.exe'
- '\onshape.exe'
- '\mastercam.exe'
- '\solidworks.exe'
- '\sldworks.exe'
- '\fusion360.exe'
- '\adcx.exe'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\rundll32.exe'
- '\regsvr32.exe'
- '\certutil.exe'
- '\bitsadmin.exe'
condition: selection_parent and selection_child
falsepositives:
- Rare CAD macro or automation integrations launching scripts — validate against engineering team workflows before tuning
level: high
---
title: X_T Parasolid File Downloaded from Internet Zone
tid: 3b7e1f42-8a5c-4d29-b6e1-9f4c7d2a8e5b
status: experimental
description: Detects Mark-of-the-Web tagged X_T (Parasolid transmit) files written to disk, indicating delivery via browser or email — the primary delivery vector for CVE-2026-64629 exploitation attempts against engineering users.
references:
- https://www.cisa.gov/news-events/ics-advisories/icsa-26-225-10-0
- https://attack.mitre.org/techniques/T1566/
author: Security Arsenal
date: 2026/08/14
tags:
- attack.initial_access
- attack.t1566.001
logsource:
category: file_event
product: windows
detection:
selection:
TargetFilename|endswith:
- '.x_t:Zone.Identifier'
- '.x_b:Zone.Identifier'
filter_paths:
TargetFilename|contains:
- '\ProgramData\Siemens\'
- '\\corp_share\'
condition: selection and not filter_paths
falsepositives:
- Legitimate engineering file downloads from supplier portals — high volume expected; use for triage context and correlation with child-process alerts rather than standalone blocking
level: low
---
title: Unexpected Crash of CAD Application Process
tid: 5d9a3e18-6c4b-4f72-a1d8-7b3e9c2f4a6d
status: experimental
description: Detects Windows Error Reporting events for CAD/engineering applications, which may indicate attempted exploitation of the Parasolid X_T out-of-bounds read (CVE-2026-64629) causing application crashes.
references:
- https://www.cisa.gov/news-events/ics-advisories/icsa-26-225-10-0
- https://attack.mitre.org/techniques/T1203/
author: Security Arsenal
date: 2026/08/14
tags:
- attack.execution
- attack.t1203
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith:
- '\werfault.exe'
- '\wermgr.exe'
CommandLine|contains:
- 'solidedge'
- 'ugraf'
- 'sldworks'
- 'mastercam'
- 'fusion360'
condition: selection
falsepositives:
- Legitimate application instability on engineering workstations — CAD crashes are common; correlate with recent X_T file opens and MOTW events to elevate fidelity
level: medium
KQL — Microsoft Sentinel / Defender
The following hunt queries engineering endpoints for post-exploitation behavior from CAD applications, correlating with recent X_T file activity. It is designed to surface both successful exploitation (child processes) and failed attempts (crashes shortly after file open).
// Hunt: CAD application child process or crash correlated with recent X_T file activity
let CadApps = dynamic(["solidedge.exe","ugraf.exe","nx.exe","sldworks.exe","solidworks.exe","mastercam.exe","fusion360.exe","onshape.exe"]);
let SuspiciousChildren = dynamic(["cmd.exe","powershell.exe","pwsh.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe","regsvr32.exe","certutil.exe","bitsadmin.exe"]);
let XtFiles =
DeviceFileEvents
| where TimeGenerated > ago(7d)
| where FileName endswith ".x_t" or FileName endswith ".x_b"
| project XtTime = TimeGenerated, DeviceId, DeviceName, XtPath = FolderPath;
DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName has_any (CadApps)
| where FileName has_any (SuspiciousChildren)
| project ProcTime = TimeGenerated, DeviceId, DeviceName,
CadProcess = InitiatingProcessFileName,
ChildProcess = FileName, ChildCmdLine = ProcessCommandLine,
AccountName
| join kind=inner XtFiles on DeviceId
| where ProcTime between (XtTime .. XtTime + 10m)
| project DeviceName, XtPath, XtTime, CadProcess, ChildProcess, ChildCmdLine, AccountName, ProcTime
| order by ProcTime desc;
// Companion query: application error events for CAD processes (crash telemetry via Defender)
DeviceEvents
| where TimeGenerated > ago(7d)
| where ActionType == "AppCrash" or ActionType contains "Error"
| where FileName has_any (dynamic(["solidedge.exe","ugraf.exe","nx.exe","sldworks.exe","mastercam.exe","fusion360.exe"]))
| summarize CrashCount = count(), FirstCrash = min(TimeGenerated), LastCrash = max(TimeGenerated) by DeviceName, FileName
| order by CrashCount desc;
Velociraptor VQL
For endpoint forensics on engineering workstations — particularly to identify X_T files with Mark-of-the-Web and to enumerate running Parasolid-based processes for scoping:
-- Hunt: X_T/X_B files with Mark-of-the-Web (internet-delivered Parasolid files)
SELECT FullPath AS XtFile,
parse_pe(file=FullPath + ':Zone.Identifier') AS ZoneData,
Mtime AS ModifiedTime,
Size AS FileSize
FROM glob(globs='C:/Users/*/**/*.x_t:Zone.Identifier')
-- Hunt: Active CAD/engineering processes with command lines and owners
SELECT Pid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE Name =~ '(?i)(solidedge|ugraf|sldworks|solidworks|mastercam|fusion360|nx\.exe)'
Remediation / Verification Script
Use this PowerShell script to inventory installed Siemens and Parasolid-based applications, check for vulnerable Parasolid component versions on disk, and flag X_T files staged in user download locations — suitable for deployment via your RMM or software management tooling:
# CVE-2026-64629 - Siemens Parasolid X_T Out-of-Bounds Read - Verification Script
# Run as Administrator on engineering workstations
$Report = @()
# 1. Enumerate installed Siemens / Parasolid-based products
$Installed = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*,
HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* -ErrorAction SilentlyContinue |
Where-Object { $_.DisplayName -match 'Parasolid|Siemens|Solid Edge|NX' } |
Select-Object DisplayName, DisplayVersion, InstallDate
foreach ($app in $Installed) {
$Report += [PSCustomObject]@{
Check = 'InstalledProduct'
Detail = "$($app.DisplayName) - $($app.DisplayVersion)"
Vulnerable = if ($app.DisplayVersion -match '^38\.0\.' -and [version]($app.DisplayVersion -replace '[^0-9\.]','') -lt [version]'38.0.235') { 'YES - PATCH REQUIRED' }
elseif ($app.DisplayVersion -match '^38\.1\.' -and [version]($app.DisplayVersion -replace '[^0-9\.]','') -lt [version]'38.1.230') { 'YES - PATCH REQUIRED' }
else { 'Review against vendor advisory' }
}
}
# 2. Search for Parasolid kernel DLLs (pskernel.dll) and check versions
$KernelDlls = Get-ChildItem -Path 'C:\Program Files','C:\Program Files (x86)' -Recurse -Filter 'pskernel.dll' -ErrorAction SilentlyContinue
foreach ($dll in $KernelDlls) {
$ver = [version]$dll.VersionInfo.ProductVersion
$vuln = ($ver.Major -eq 38 -and $ver.Minor -eq 0 -and $ver -lt [version]'38.0.235') -or
($ver.Major -eq 38 -and $ver.Minor -eq 1 -and $ver -lt [version]'38.1.230')
$Report += [PSCustomObject]@{
Check = 'ParasolidKernelDLL'
Detail = "$($dll.FullName) - Version $ver"
Vulnerable = if ($vuln) { 'YES - CVE-2026-64629 - PATCH REQUIRED' } else { 'No' }
}
}
# 3. Flag recently downloaded X_T files (potential staging artifacts)
$XtFiles = Get-ChildItem -Path 'C:\Users\*\Downloads','C:\Users\*\Desktop' -Recurse -Include '*.x_t','*.x_b' -ErrorAction SilentlyContinue |
Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-30) }
foreach ($f in $XtFiles) {
$zone = Get-Content -Path "$($f.FullName):Zone.Identifier" -ErrorAction SilentlyContinue
$Report += [PSCustomObject]@{
Check = 'StagedXtFile'
Detail = "$($f.FullName) - LastWrite $($f.LastWriteTime) - MOTW: $(if($zone){'Yes'}else{'No'})"
Vulnerable = 'N/A - Review provenance'
}
}
$Report | Format-Table -AutoSize
$Report | Export-Csv -Path "$env:TEMP\CVE-2026-64629_Assessment.csv" -NoTypeInformation
Write-Host "`nAssessment complete. Report saved to $env:TEMP\CVE-2026-64629_Assessment.csv" -ForegroundColor Cyan
Remediation
Primary action — patch immediately:
- Upgrade Parasolid V38.0 to version 38.0.235 or later, and Parasolid V38.1 to version 38.1.230 or later. Siemens has released fixed versions; obtain them through the Siemens Support Center and your normal PLM/CAD update channels.
- Inventory downstream exposure. Parasolid is an OEM kernel — many third-party CAD, CAM, simulation, and viewer applications embed it. Contact each engineering software vendor to confirm which of their releases incorporate the fixed Parasolid build. Do not assume your Siemens-named products are the only attack surface.
- Update automated pipelines. CAD import/export services, PLM vault processors, file conversion servers, and rendering/thumbnail services that parse X_T files server-side are equally vulnerable and often run unattended — patch these first, as they process files without user interaction.
Compensating controls where patching is delayed:
- Block or sandbox X_T file handling for internet-facing workflows. Enforce detonation of
.x_t/.x_bemail attachments in your secure email gateway, and strip them from external senders where the business workflow permits. - Disable automatic preview/thumbnail generation for X_T files in Explorer shell extensions and PLM web interfaces until patched — auto-parsing removes the user-interaction requirement from the attacker's perspective.
- Apply Attack Surface Reduction-style hardening on engineering workstations: block child process creation from CAD applications (the Sigma rule above maps directly to a Defender ASR custom rule or WDAC policy), and enforce Mark-of-the-Web handling via SmartScreen/Defender.
- Segment engineering workstations from OT networks and restrict their outbound internet access. A successfully exploited CAD workstation is a beachhead into both IP repositories and, frequently, manufacturing floor networks.
- Educate engineering staff on the specific lure: unsolicited X_T files from "suppliers" or "customers" should be treated with the same suspicion as macro-enabled Office documents.
Reference: CISA ICS Advisory ICSA-26-225-10 — https://www.cisa.gov/news-events/ics-advisories/icsa-26-225-10-0 and the corresponding Siemens ProductCERT advisory (SSA series) linked from the CISA notice.
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.