☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 7.8 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H 🐛 CWE-121
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2024-11578

CVE-2024-11578 Remote Code Execution in Luxion
📅 PUBLISHED: 2024-11-22 20:43 UTC 🔄 UPDATED: 2026-08-12 09:00 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 2.30%
👁️
2.30% probability
57.5× above the median CVE
Tier: HIGH
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1203
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS VECTOR BREAKDOWN 7.8
AV: L Attack Vector Local
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: H Availability High
7.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-11578 is a critical stack-based buffer overflow vulnerability in Luxion KeyShot, a professional 3D rendering and animation application. The flaw resides in the parsing of 3DS (3D Studio) files. By crafting a malicious 3DS file with an overly long data field, an attacker can overflow a stack-based buffer, leading to remote code execution (RCE) in the context of the current user. Exploitation requires user interaction—the victim must open the malicious file or visit a page that triggers the file load. The vulnerability was reported via the Zero Day Initiative (ZDI-CAN-23693) and currently has no official patch. The CVSS score is 7.8 (High), and the EPSS probability is 0.0%, indicating low active exploitation in the wild.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
  • Base Score: 7.8 (High)
  • Attack Vector (AV): Local (L) – The attacker must deliver the malicious file to the victim.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): Required (R) – Victim must open the file.
  • Scope (S): Unchanged (U) – The vulnerability does not affect other components.
  • Confidentiality (C): High (H) – Full data compromise possible.
  • Integrity (I): High (H) – Full data modification possible.
  • Availability (A): High (H) – Full denial of service possible.

Threat Level: High. Although EPSS is low, the lack of a patch and the ease of exploitation (user opens a file) make this a significant risk for organizations using Luxion KeyShot.

Deep Dive & Mechanics

The vulnerability is a classic stack-based buffer overflow (CWE-121) in the 3DS file parser of Luxion KeyShot. The 3DS file format is a binary format used by Autodesk 3ds Max. When KeyShot parses a 3DS file, it reads various chunks (data blocks) that contain geometry, materials, and other scene data. The flaw occurs when the parser copies user-supplied data from a chunk into a fixed-size stack buffer without validating the length. By providing a chunk with an oversized data field, an attacker can overwrite the stack, including the return address and other critical data.

Technical Flow:

  1. The victim opens a malicious .3ds file in KeyShot.
  2. The parser reads a chunk header (ID + length).
  3. The parser copies the chunk data into a stack buffer using a function like strcpy or memcpy without bounds checking.
  4. The oversized data overwrites the stack, corrupting the saved return address.
  5. When the function returns, execution jumps to an attacker-controlled address (e.g., a ROP chain or shellcode).
  6. The attacker gains code execution in the context of the KeyShot process.

Root Cause: Lack of input validation on the length of chunk data before copying to a stack buffer.

Vulnerable vs. Patched Code

Since no official patch is available, we can only hypothesize the vulnerable code pattern. A typical vulnerable snippet might look like:

// Vulnerable code (hypothetical)
void Parse3DSChunk(FILE *file) {
    char buffer[256];
    uint16_t chunk_id;
    uint32_t chunk_length;
    fread(&chunk_id, 2, 1, file);
    fread(&chunk_length, 4, 1, file);
    // No length check before copy
    fread(buffer, chunk_length, 1, file);
    // Process buffer...
}

A patched version would include a length check:

// Patched code (hypothetical)
void Parse3DSChunk(FILE *file) {
    char buffer[256];
    uint16_t chunk_id;
    uint32_t chunk_length;
    fread(&chunk_id, 2, 1, file);
    fread(&chunk_length, 4, 1, file);
    if (chunk_length > sizeof(buffer)) {
        // Handle error or truncate
        return;
    }
    fread(buffer, chunk_length, 1, file);
    // Process buffer...
}

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • Luxion KeyShot installed (any version prior to patch).
  • Ability to deliver a malicious .3ds file to the victim (e.g., via email, download, or USB).

Exploitation Steps:

  1. Craft the Malicious 3DS File: Use a hex editor or a custom script to create a 3DS file with an oversized chunk. The chunk ID should be one that triggers the vulnerable code path (e.g., a material or geometry chunk). The data field should contain shellcode or a ROP chain.
  2. Deliver the File: Send the file to the victim via phishing email, social engineering, or a compromised website.
  3. Trigger the Vulnerability: The victim opens the file in KeyShot. The overflow occurs, and the attacker's payload executes.
  4. Post-Exploitation: The attacker gains code execution in the context of the KeyShot process, which can be used to install malware, exfiltrate data, or pivot to other systems.

Example Payload (Conceptual):

# Python script to generate a malicious 3DS file (conceptual)
import struct

def create_malicious_3ds():
    # 3DS file header (0x4D4D = main chunk)
    main_chunk = struct.pack('<H', 0x4D4D)
    # Placeholder for chunk length (will be updated)
    main_chunk += struct.pack('<I', 0)
    
    # Malicious sub-chunk (e.g., 0xAFFF = material chunk)
    sub_chunk_id = 0xAFFF
    # Overflow data: NOP sled + shellcode + return address
    overflow_data = b'\x90' * 100  # NOP sled
    overflow_data += b'\xcc' * 100  # INT3 (breakpoint for testing)
    overflow_data += struct.pack('<I', 0x41414141)  # Overwritten return address
    
    sub_chunk = struct.pack('<H', sub_chunk_id)
    sub_chunk += struct.pack('<I', len(overflow_data) + 6)  # Length includes header
    sub_chunk += overflow_data
    
    main_chunk += sub_chunk
    # Update main chunk length
    main_chunk = main_chunk[:2] + struct.pack('<I', len(main_chunk)) + main_chunk[6:]
    
    with open('malicious.3ds', 'wb') as f:
        f.write(main_chunk)

create_malicious_3ds()

Note: This is a conceptual example. Actual exploitation would require precise knowledge of the vulnerable function's stack layout and ASLR/DEP bypass techniques.

Blue Team (Defense)

Detection & Prevention:

  • User Awareness: Train users not to open 3DS files from untrusted sources.
  • Application Control: Use AppLocker or similar to restrict KeyShot execution to trusted users.
  • Sandboxing: Run KeyShot in a sandboxed environment (e.g., Windows Sandbox, Firejail) to limit impact.
  • Memory Protection: Enable DEP and ASLR on the system (usually enabled by default).
  • File Scanning: Use antivirus/EDR solutions that can detect malicious 3DS files based on heuristic analysis.
  • Network Segmentation: Limit the ability of KeyShot to communicate with external hosts.

Hunting Queries:

  • Monitor for KeyShot crashes (Event ID 1000 in Windows Application log).
  • Look for unusual child processes spawned by KeyShot.
  • Detect outbound connections from KeyShot to unknown IPs.

Indicators of Compromise (IOCs)

  • File Hashes (Example): (No known samples yet)
  • Network Indicators: Outbound connections from KeyShot to attacker-controlled IPs.
  • Process Indicators: KeyShot.exe spawning cmd.exe, powershell.exe, or other suspicious processes.
  • File System Indicators: Creation of new executable files in temporary directories.
  • Registry Indicators: Unusual registry modifications by KeyShot process.

Detection Engineering

YARA Rule

rule CVE_2024_11578_KeyShot_3DS_Overflow {
    meta:
        description = "Detects malicious 3DS files exploiting CVE-2024-11578"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-11578"
    strings:
        $chunk_header = { 4D 4D }  // Main chunk ID
        $overflow_pattern = /.{256,}/  // Data longer than 256 bytes (adjust as needed)
    condition:
        $chunk_header at 0 and #overflow_pattern > 0
}

Sigma Rule

title: CVE-2024-11578 KeyShot 3DS File Parsing Overflow
id: 8a9b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects KeyShot crashes or suspicious behavior related to CVE-2024-11578
author: Valters IT
date: 2025-04-10
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith: '\KeyShot.exe'
        CommandLine|contains: '.3ds'
    condition: selection
falsepositives:
    - Legitimate 3DS file processing
level: high

Suricata Rule

alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2024-11578 KeyShot 3DS File Download"; flow:to_server,established; content:"|4D 4D|"; depth:2; content:"|AFFF|"; within:100; classtype:attempted-user; sid:1000001; rev:1;)

Note: The Suricata rule is a placeholder for detecting malicious 3DS file downloads. Adjust the chunk ID and thresholds based on actual analysis.

Remediation & Mitigation

  • Immediate Action: Discontinue use of Luxion KeyShot until a patch is released. If not possible, restrict file opening to trusted sources only.
  • Vendor Patch: Monitor Luxion's official website for updates. Apply the patch as soon as it becomes available.
  • Workaround: Use a file converter to convert 3DS files to a safer format (e.g., OBJ) before opening in KeyShot.
  • Compensating Controls: Implement application whitelisting, sandboxing, and strict file upload validation.
  • Long-Term: Adopt a secure development lifecycle for file parsers, including fuzzing and static analysis.

Valters IT
DevSecOps & Cyber Threat Intelligence

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

Luxion KeyShot
KeyShot 3DS

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-11578/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.