Back to Intelligence

CVE-2026-92202: Luxion KeyShot BIP File Parsing Flaw Enables Code Execution — Detection and Hardening Guide

SA
Security Arsenal Team
September 24, 2026
11 min read

The Zero Day Initiative has published ZDI-26-748, disclosing a remote code execution vulnerability in Luxion KeyShot, one of the most widely deployed 3D rendering and visualization applications in engineering, product design, and manufacturing environments. Tracked as CVE-2026-92202 with a CVSS score of 7.8 (High), the flaw is an Uncontrolled Search Path Element vulnerability in KeyShot's BIP (KeyShot Package) file parsing routine.

Exploitation requires user interaction — the target must open a malicious BIP file or visit a malicious page — but that is a low bar in practice. BIP files are routinely exchanged between designers, suppliers, and contractors across organizational boundaries. A weaponized BIP delivered via spear-phishing or a compromised supplier is a realistic intrusion vector, particularly against manufacturing and industrial design firms where KeyShot is standard tooling and where intellectual property theft is a primary adversary motive.

If your environment includes engineering workstations running KeyShot, this advisory warrants immediate action: verify installed versions, apply Luxion's fix, and deploy the detections below to catch exploitation attempts in the interim.

Technical Analysis

Affected Products and Identifiers

ItemDetail
ProductLuxion KeyShot (3D rendering/animation software)
Affected ComponentBIP (KeyShot Package) file parsing
CVECVE-2026-92202
AdvisoryZDI-26-748 (http://www.zerodayinitiative.com/advisories/ZDI-26-748/)
CVSS 3.x7.8 (High) — local vector with required user interaction
Vulnerability ClassCWE-427: Uncontrolled Search Path Element
AuthenticationNone required
User InteractionRequired (open malicious file / visit malicious page)

Specific affected version numbers were not enumerated in the ZDI summary at publication time; defenders should consult the ZDI advisory page and Luxion's release notes for the fixed build and treat all currently deployed versions as suspect until verified.

How the Vulnerability Works

An Uncontrolled Search Path Element flaw (CWE-427) occurs when an application loads a library or resource from a path influenced by untrusted input — typically the current working directory or a path derived from the opened file's location — without proper validation. In the Windows DLL loading model, if an application does not fully qualify the path to a DLL it loads, the OS resolves it using the DLL search order, which can include the directory of the opened document.

Applied to this advisory, the attack chain looks like this:

  1. Delivery: The attacker ships a malicious .bip file alongside — or embedding — a weaponized DLL crafted with the name KeyShot expects to load during package parsing (a classic DLL side-loading / search-order hijack pattern, MITRE ATT&CK T1574.001).
  2. Trigger: The victim double-clicks the BIP file (in a phishing attachment, a ZIP archive, or a synced folder). KeyShot parses the package and, during parsing, resolves a library from the directory containing the BIP rather than from KeyShot's installation directory.
  3. Execution: The attacker's DLL executes in the context of the logged-on user, under the trusted keyshot.exe process — which also means it inherits KeyShot's reputation with application-whitelisting and behavioral EDR tools that implicitly trust signed CAD software.
  4. Post-exploitation: From a signed, trusted parent process, the payload can stage follow-on tooling, establish persistence, and begin collection of CAD/rendering assets — the crown jewels of product-design organizations.

The CVSS vector's "local/user-interaction required" scoring should not breed complacency. Document-based and package-based execution is precisely how targeted intrusions against engineering firms begin, and KeyShot's user base — automotive, aerospace, consumer product design — is exactly the profile targeted by IP-theft-motivated actors.

Exploitation Status

At the time of writing, there is no confirmed in-the-wild exploitation, no public proof-of-concept, and CVE-2026-92202 is not listed in CISA's Known Exploited Vulnerabilities catalog. ZDI advisories are published after vendor coordination timelines, which means the technical details are now public — historically, the window between ZDI publication and weaponization of file-parsing flaws in niche engineering software is measured in weeks, not months. Treat this as pre-weaponization and close the gap now.

Detection & Response

The defensive telemetry for search-order hijacking is well understood: the core signal is keyshot.exe loading modules from user-writable or non-standard directories (Downloads, Temp, AppData\Local\Temp, user Desktop, extracted ZIP paths, network shares) instead of its installation directory (C:\Program Files\KeyShot* or C:\Program Files\Luxion\KeyShot*). Secondary signals include KeyShot spawning unexpected child processes and BIP files arriving via email or browser download channels.

Sigma Rules

YAML
---
title: Luxion KeyShot DLL Loaded From User-Writable Path
id: 3f8a1c47-9b2e-4d5a-a671-0c8e2f4b9d13
status: experimental
description: Detects keyshot.exe loading a DLL from a user-writable or non-installation directory, consistent with CVE-2026-92202 uncontrolled search path exploitation via a malicious BIP package.
references:
  - http://www.zerodayinitiative.com/advisories/ZDI-26-748/
  - https://attack.mitre.org/techniques/T1574/001/
author: Security Arsenal
date: 2026/06/15
tags:
  - attack.persistence
  - attack.privilege_escalation
  - attack.t1574.001
logsource:
  category: image_load
  product: windows
detection:
  selection_image:
    Image|endswith: '\keyshot.exe'
  selection_path:
    ImageLoaded|contains:
      - '\Downloads\'
      - '\Desktop\'
      - '\Temp\'
      - '\AppData\Local\Temp\'
      - '\AppData\Roaming\'
      - '\\'
      - '\Users\Public\'
  filter_legit:
    ImageLoaded|contains:
      - '\AppData\Roaming\Luxion\'
      - '\AppData\Local\Luxion\'
  condition: selection_image and selection_path and not filter_legit
falsepositives:
  - KeyShot plugins legitimately installed under the user's Luxion AppData directories
  - Corporate rendering-farm tooling deployed outside Program Files
level: high
---
title: KeyShot Process Spawning Command or Script Interpreter
id: 8c2d5e91-4a7f-4b38-9e62-1f5a7c3d8024
status: experimental
description: Detects keyshot.exe spawning command shells, script interpreters, or LOLBins. A signed CAD application launching cmd, PowerShell, rundll32, or mshta is a strong post-exploitation indicator following malicious BIP file execution (CVE-2026-92202).
references:
  - http://www.zerodayinitiative.com/advisories/ZDI-26-748/
  - https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
date: 2026/06/15
tags:
  - attack.execution
  - attack.t1059
logsource:
  category: process_creation
  product: windows
detection:
  selection_parent:
    ParentImage|endswith: '\keyshot.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'
      - '\wmic.exe'
  condition: selection_parent and selection_child
falsepositives:
  - Rare: KeyShot network-rendering helper scripts in managed render-farm deployments
level: critical
---
title: BIP Package File Created by Browser or Email Client
id: 5e1b9f36-7c48-4d2a-b893-6a0d4e71c935
status: experimental
description: Detects creation of .bip (KeyShot Package) files by browsers or email clients, highlighting inbound delivery of potentially malicious KeyShot packages associated with CVE-2026-92202 social-engineering lures.
references:
  - http://www.zerodayinitiative.com/advisories/ZDI-26-748/
  - https://attack.mitre.org/techniques/T1566/001/
author: Security Arsenal
date: 2026/06/15
tags:
  - attack.initial_access
  - attack.t1566.001
logsource:
  category: file_event
  product: windows
detection:
  selection_file:
    TargetFilename|endswith: '.bip'
  selection_source:
    Image|endswith:
      - '\chrome.exe'
      - '\msedge.exe'
      - '\firefox.exe'
      - '\OUTLOOK.EXE'
      - '\thunderbird.exe'
  condition: selection_file and selection_source
falsepositives:
  - Legitimate BIP file exchange between designers and external suppliers
level: medium

KQL Hunting (Microsoft Sentinel / Defender)

The following query hunts across Defender for Endpoint tables for the full exploitation pattern: KeyShot loading modules from anomalous locations, spawning suspicious children, and BIP files arriving via delivery applications. Run it as a scheduled analytics rule with a low threshold — KeyShot deployments are typically limited to engineering workstations, so event volume will be small and high-fidelity.

KQL — Microsoft Sentinel / Defender
// Hunt: KeyShot suspicious module loads, child processes, and inbound BIP files (CVE-2026-92202)
let Lookback = 14d;
let SuspiciousLoadPaths = dynamic(["\\Downloads\\", "\\Desktop\\", "\\Temp\\", "\\AppData\\Local\\Temp\\", "\\Users\\Public\\", "\\\\"]);
let SuspiciousChildren = dynamic(["cmd.exe", "powershell.exe", "pwsh.exe", "wscript.exe", "cscript.exe", "mshta.exe", "rundll32.exe", "regsvr32.exe", "certutil.exe", "bitsadmin.exe"]);
let KeyShotImageLoads =
    DeviceImageLoadEvents
    | where TimeGenerated > ago(Lookback)
    | where FileName =~ "keyshot.exe"
    | where FolderPath has_any (SuspiciousLoadPaths)
    | where not(FolderPath has "\\AppData\\Roaming\\Luxion\\")
    | project TimeGenerated, DeviceName, InitiatingProcessFileName, FolderPath, SHA256, Signal="Suspicious DLL load by keyshot.exe";
let KeyShotChildren =
    DeviceProcessEvents
    | where TimeGenerated > ago(Lookback)
    | where InitiatingProcessFileName =~ "keyshot.exe"
    | where FileName in~ (SuspiciousChildren)
    | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, InitiatingProcessCommandLine, AccountName, Signal="keyshot.exe spawned interpreter/LOLBin";
let InboundBip =
    DeviceFileEvents
    | where TimeGenerated > ago(Lookback)
    | where FileName endswith ".bip"
    | where InitiatingProcessFileName in~ ("chrome.exe", "msedge.exe", "firefox.exe", "OUTLOOK.EXE", "thunderbird.exe")
    | project TimeGenerated, DeviceName, FolderPath, SHA256, InitiatingProcessFileName, Signal="BIP file delivered via browser/email";
union KeyShotImageLoads, KeyShotChildren, InboundBip
| sort by TimeGenerated desc

For environments forwarding Sysmon via CEF/Syslog into Sentinel, an equivalent correlation over the CommonSecurityLog table filtering on keyshot.exe and Event ID 7 (image load) achieves the same coverage.

Velociraptor VQL

Use this hunt artifact across engineering workstations to surface both sides of the artifact pair: recently dropped .bip files in delivery locations and any DLLs co-located with them — the classic search-order hijack staging pattern.

VQL — Velociraptor
-- Hunt: KeyShot BIP packages and co-located DLLs in user-writable directories (CVE-2026-92202)
-- Look for BIP files in delivery locations
LET bip_files = SELECT FullPath, Size, Mtime, Atime
FROM glob(globs=['C:/Users/*/Downloads/**/*.bip',
                 'C:/Users/*/Desktop/**/*.bip',
                 'C:/Users/*/AppData/Local/Temp/**/*.bip'])
WHERE Mtime > now() - 1209600

-- Look for DLLs staged alongside BIP files in the same delivery locations
LET staged_dlls = SELECT FullPath, Size, Mtime
FROM glob(globs=['C:/Users/*/Downloads/**/*.dll',
                 'C:/Users/*/Desktop/**/*.dll',
                 'C:/Users/*/AppData/Local/Temp/**/*.dll'])
WHERE Mtime > now() - 1209600

-- Correlate: any keyshot.exe process with DLLs loaded from outside Program Files
SELECT * FROM {
    SELECT 'BIP_File' AS ArtifactType, FullPath, Size, Mtime FROM bip_files
} UNION {
    SELECT 'Staged_DLL' AS ArtifactType, FullPath, Size, Mtime FROM staged_dlls
} UNION {
    SELECT 'Suspicious_Load' AS ArtifactType,
           Exe AS FullPath, 0 AS Size, CreateTime AS Mtime
    FROM pslist()
    WHERE Name =~ 'keyshot' AND Exe !~ 'Program Files'
}

Remediation and Verification Script

The following PowerShell script inventories KeyShot installations, applies DLL search-order hardening registry controls (which mitigate this entire vulnerability class at the OS level), and enables audit logging for BIP file access. Run elevated on engineering workstations or deploy via your RMM/Intune.

PowerShell
# CVE-2026-92202 - KeyShot Uncontrolled Search Path Mitigation & Verification
# Run as Administrator

# --- 1. Inventory installed KeyShot versions ---
Write-Host "[*] Inventorying KeyShot installations..." -ForegroundColor Cyan
$keyshot = Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*",
           "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" -ErrorAction SilentlyContinue |
           Where-Object { $_.DisplayName -match "KeyShot" } |
           Select-Object DisplayName, DisplayVersion, InstallLocation
if ($keyshot) { $keyshot | Format-Table -AutoSize } else { Write-Host "[+] No KeyShot installation found." }

# --- 2. OS-level DLL search-order hardening (mitigates CWE-427 class) ---
# SafeDllSearchMode: removes CWD from the standard search order priority
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name "SafeDllSearchMode" -Value 1 -Type DWord
Write-Host "[+] SafeDllSearchMode enabled."

# CWDIllegalInDllSearch = 2: block DLL loads from the current working directory
# This directly blunts document-adjacent DLL hijacking like the BIP parsing flaw
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name "CWDIllegalInDllSearch" -PropertyType DWord -Value 2 -Force | Out-Null
Write-Host "[+] CWDIllegalInDllSearch set to 2 (block CWD DLL loads)."

# --- 3. Enable Sysmon-relevant auditing: process creation with command line ---
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Audit" -Force | Out-Null
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Audit" -Name "ProcessCreationIncludeCmdLine_Enabled" -Value 1 -Type DWord
auditpol /set /subcategory:"Process Creation" /success:enable | Out-Null
Write-Host "[+] Command-line process auditing enabled."

# --- 4. Report BIP files in high-risk delivery locations for review ---
Write-Host "[*] Scanning for .bip files in Downloads/Desktop/Temp (last 30 days)..." -ForegroundColor Cyan
$cutoff = (Get-Date).AddDays(-30)
Get-ChildItem -Path "$env:SystemDrive\Users" -Recurse -Filter "*.bip" -ErrorAction SilentlyContinue |
    Where-Object { $_.LastWriteTime -gt $cutoff -and $_.FullName -match "Downloads|Desktop|Temp" } |
    Select-Object FullName, LastWriteTime, @{N='SizeMB';E={[math]::Round($_.Length/1MB,2)}} |
    Format-Table -AutoSize

Write-Host "[*] Complete. Reboot required for DLL search-order changes to take full effect." -ForegroundColor Green
Write-Host "[!] ACTION REQUIRED: Update KeyShot to the vendor-fixed build per ZDI-26-748." -ForegroundColor Yellow

Validation note: Test CWDIllegalInDllSearch=2 in a pilot group first — legitimate plugins or render-farm tooling that intentionally loads libraries from working directories may break. If a business dependency exists, scope the hardening to workstations without that dependency and rely on the Sigma/EDR detections elsewhere.

Remediation

  1. Apply the vendor fix immediately. Obtain the patched KeyShot build from Luxion's official download portal and cross-reference the fixed version against the ZDI-26-748 advisory (http://www.zerodayinitiative.com/advisories/ZDI-26-748/). ZDI advisories follow coordinated disclosure, meaning a fix (or a vendor statement) accompanies publication — do not wait for exploitation telemetry to appear.
  2. Inventory your attack surface. KeyShot frequently lives outside standard software inventories because it is licensed per-seat to design teams. Use the PowerShell inventory section above, your EDR software inventory, or SCCM/Intune to find every instance — including older KeyShot versions that auto-update mechanisms may have abandoned.
  3. Apply OS-level search-order hardening. SafeDllSearchMode and CWDIllegalInDllSearch=2 mitigate the entire CWE-427 class, not just this CVE. Deploy broadly after pilot testing.
  4. Restrict BIP delivery channels. Add .bip to email gateway attachment inspection policies (detonate in sandbox where supported), enable Mark-of-the-Web enforcement, and consider blocking BIP attachments from external senders pending patch deployment — suppliers can exchange packages via managed file transfer instead.
  5. Deploy the detections above to engineering VLANs and any workstation with KeyShot installed. Given the small population of KeyShot hosts, alert volume will be minimal and every hit deserves investigation.
  6. User awareness, targeted. Brief design and engineering teams specifically: do not open BIP packages received unexpectedly, even from known contacts — supplier-compromise is the realistic delivery vector for this bug class.
  7. Watch the KEV. CVE-2026-92202 is not currently in CISA's Known Exploited Vulnerabilities catalog; monitor for addition, which would trigger Binding Operational Directive 22-01 remediation deadlines for federal agencies and should trigger expedited patching SLAs for everyone else.

File-parsing flaws in engineering software are a durable initial-access vector precisely because these tools are trusted, signed, and operated by users who routinely exchange binary packages with third parties. Closing this one is a patch plus a registry change plus three detection rules — cheap insurance against the kind of intrusion that ends with your product designs on someone else's server.

Related Resources

Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub

Is your security operations ready?

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