CVE-2025-8004
Executive Summary
CVE-2025-8004 is a critical remote code execution vulnerability in Ashlar-Vellum Cobalt, a CAD/CAM software suite. The flaw resides in the parsing of XE files, where an out-of-bounds read occurs due to insufficient validation of user-supplied data. An attacker can exploit this by convincing a user to open a malicious XE file or visit a crafted web page, leading to arbitrary code execution in the context of the current process. The vulnerability has a CVSS score of 7.8 (High) and is currently unpatched, with no known public exploits or proof-of-concept code available. The EPSS score is 0.0%, indicating low exploitation likelihood at this time, but the risk remains significant for targeted attacks.
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.
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: Local (requires user interaction)
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: Required (victim must open a malicious file or visit a malicious page)
- Scope: Unchanged
- Confidentiality Impact: High
- Integrity Impact: High
- Availability Impact: High
The threat level is elevated due to the lack of a patch and the potential for full system compromise. While no active exploitation has been reported, the vulnerability is weaponizable in targeted phishing campaigns.
Deep Dive & Mechanics
The vulnerability is an out-of-bounds read (CWE-125) in the XE file parser of Ashlar-Vellum Cobalt. When parsing a specially crafted XE file, the software fails to validate the length of a data structure before reading from it. This allows an attacker to read beyond the allocated buffer, potentially leaking sensitive memory contents or, more critically, corrupting memory in a way that leads to code execution.
The specific flaw (ZDI-CAN-26236) involves a read past the end of an allocated data structure. By carefully crafting the XE file, an attacker can trigger a controlled out-of-bounds read that overwrites a function pointer or other critical data, redirecting execution flow to attacker-controlled shellcode. The exploit requires user interaction, typically through social engineering to open the malicious file.
Vulnerable vs. Patched Code
Since no patch is available, a direct code comparison is not possible. However, the vulnerable code likely resembles:
// Vulnerable pseudo-code
void parse_XE_data(char *buffer, size_t size) {
uint32_t length = *(uint32_t*)buffer; // Read length from file
char *data = buffer + 4;
// No check if length > size - 4
process_data(data, length); // Out-of-bounds read if length > size - 4
}
A patched version would include a bounds check:
// Patched pseudo-code
void parse_XE_data(char *buffer, size_t size) {
if (size < 4) return;
uint32_t length = *(uint32_t*)buffer;
if (length > size - 4) return; // Bounds check
char *data = buffer + 4;
process_data(data, length);
}
Exploitation & Lab Setup
Red Team
Prerequisites:
- Ashlar-Vellum Cobalt installed (any version)
- A crafted XE file (malicious)
Steps:
- Create a malicious XE file with a crafted header that specifies a large length value, causing an out-of-bounds read.
- Embed shellcode in the file such that the out-of-bounds read overwrites a function pointer with the address of the shellcode.
- Host the file on a web server or send via email.
- Convince the target to open the file (e.g., "Open this CAD drawing for review").
Example exploit structure (pseudo):
# exploit.py - Conceptual only
import struct
shellcode = b"\x90\x90\x90\x90" # Placeholder
malicious_data = b"A" * 1000
length = 0xFFFFFFFF # Trigger out-of-bounds
with open("malicious.xe", "wb") as f:
f.write(struct.pack("<I", length))
f.write(malicious_data)
f.write(shellcode)
Note: No public exploit code exists; this is a conceptual representation.
Blue Team
Detection:
- Monitor for unusual file access patterns involving
.xefiles. - Use endpoint detection and response (EDR) to flag processes reading large amounts of memory unexpectedly.
- Deploy behavioral analysis to detect shellcode execution.
Hunting:
- Search for processes named
cobalt.exeor similar that crash with access violations. - Look for network connections initiated by the CAD software after opening a file.
Indicators of Compromise (IOCs)
- File Hashes: (None available; would be generated upon discovery)
- File Names:
malicious.xe,*.xe(suspicious files) - Process Names:
cobalt.exe,cobalt_xe.exe - Network Indicators: Outbound connections from the CAD software to unknown IPs
- Registry Keys: (None specific)
- YARA Rule: (See Detection Engineering)
Detection Engineering
YARA Rule
rule CVE_2025_8004_XE_OutOfBounds {
meta:
description = "Detects malicious XE files exploiting CVE-2025-8004"
author = "Valters IT"
date = "2025-04-01"
reference = "CVE-2025-8004"
strings:
$header = { 58 45 } // "XE" magic bytes
$large_length = { FF FF FF 7F } // Example large length
condition:
$header at 0 and $large_length
}
Sigma Rule
title: CVE-2025-8004 Exploitation Attempt
id: cve-2025-8004-sigma
status: experimental
description: Detects potential exploitation of CVE-2025-8004 via XE file parsing
author: Valters IT
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\cobalt.exe'
CommandLine|contains: '.xe'
condition: selection
falsepositives:
- Legitimate use of XE files
level: high
Suricata Rule
alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-8004 XE File Out-of-Bounds Read"; flow:to_server,established; content:"|58 45|"; offset:0; depth:2; content:"|FF FF FF 7F|"; within:4; classtype:attempted-user; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable automatic file parsing for XE files in Ashlar-Vellum Cobalt if possible.
- Workaround: Use a sandbox or virtual machine to open untrusted XE files.
- Long-term: Monitor vendor for patches; consider migrating to alternative CAD software if no patch is released.
- User Training: Educate users on phishing risks and not opening unsolicited CAD files.
Valters IT
DevSecOps & Cyber Threat Intelligence
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.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.