CVE-2025-7995
Executive Summary
CVE-2025-7995 is a critical type confusion vulnerability in Ashlar-Vellum Cobalt, a CAD/CAM software application. The flaw resides in the parsing of CO files, where improper validation of user-supplied data can lead to a type confusion condition. An attacker can exploit this by convincing a user to open a malicious CO file or visit a malicious page, leading to remote code execution in the context of the current process. The CVSS score is 7.8 (High), and no patch is currently available from the vendor. The EPSS score is 0.0%, indicating low exploitation probability in the wild, 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 Score: 7.8 (High)
- Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
- Attack Vector (AV): Local (L) – The attacker must have local access or the ability to deliver a file.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): Required (R) – The victim must open a malicious file or page.
- Scope (S): Unchanged (U) – The vulnerability does not affect other components.
- Confidentiality (C): High (H) – Full data access possible.
- Integrity (I): High (H) – Full data modification possible.
- Availability (A): High (H) – Full system compromise possible.
Threat Level: High. The vulnerability allows arbitrary code execution with no privileges required, though user interaction is needed. The lack of a patch increases the risk for organizations using Ashlar-Vellum Cobalt.
Deep Dive & Mechanics
The vulnerability is a type confusion (CWE-843) in the CO file parser of Ashlar-Vellum Cobalt. Type confusion occurs when a program uses a resource (e.g., a pointer or object) as a type that is different from its actual type. In this case, the CO file parser does not properly validate the data type of user-supplied content, leading to a mismatch between the expected and actual data types.
Technical Details:
- The CO file format contains various data structures that define 3D models and annotations.
- The parser reads these structures and interprets them based on type identifiers.
- Due to insufficient validation, an attacker can craft a CO file where a data block is tagged with a type that does not match its actual content.
- When the parser processes this block, it treats the data as a different type, leading to memory corruption.
- This corruption can be leveraged to overwrite critical data structures, such as function pointers or return addresses, enabling arbitrary code execution.
Attack Vector:
- The attacker delivers a malicious CO file via email, download, or a compromised website.
- The victim opens the file in Ashlar-Vellum Cobalt.
- The parser triggers the type confusion, leading to code execution.
Vulnerable vs. Patched Code
No patched version is available. The vulnerable code is in the CO file parser module. The following is a hypothetical example of the vulnerable code pattern:
Vulnerable Code (C++):
void ParseCOBlock(BlockData* block) {
switch (block->type) {
case TYPE_POINT:
ProcessPoint((PointData*)block->data);
break;
case TYPE_LINE:
ProcessLine((LineData*)block->data);
break;
// ... other types
default:
// No validation of type consistency
ProcessUnknown(block->data);
break;
}
}
Patched Code (Hypothetical):
void ParseCOBlock(BlockData* block) {
if (!ValidateBlockType(block)) {
// Invalid type combination
return;
}
switch (block->type) {
case TYPE_POINT:
if (block->data_size != sizeof(PointData)) {
// Size mismatch
return;
}
ProcessPoint((PointData*)block->data);
break;
case TYPE_LINE:
if (block->data_size != sizeof(LineData)) {
return;
}
ProcessLine((LineData*)block->data);
break;
// ... other types with validation
default:
// Reject unknown types
return;
}
}
The patched code adds validation of the data size and type consistency before processing.
Exploitation & Lab Setup
Red Team (Exploitation)
Lab Setup:
- Install Ashlar-Vellum Cobalt (vulnerable version) on a Windows VM.
- Prepare a malicious CO file using a fuzzer or manual crafting.
- Use a debugger (e.g., WinDbg) to analyze memory corruption.
Exploitation Steps:
- Craft a CO file with a type confusion payload. For example, set a block type to
TYPE_POINTbut provide data that is actually a function pointer table. - The parser will treat the data as a
PointDatastructure, but the memory layout will be interpreted incorrectly. - Overwrite a function pointer (e.g., in a vtable) with a pointer to shellcode.
- Trigger the function call to execute shellcode.
Example Payload (Python):
import struct
def craft_malicious_co():
# Craft a CO file with type confusion
# This is a simplified example
payload = b""
# Header
payload += b"CO" # Magic bytes
payload += struct.pack("<I", 0x100) # File size
# Block with type confusion
block_type = 0x01 # TYPE_POINT
block_size = 0x20
# Data that will be interpreted as PointData but is actually shellcode address
data = struct.pack("<Q", 0x41414141) # Address of shellcode
payload += struct.pack("<H", block_type)
payload += struct.pack("<H", block_size)
payload += data
with open("malicious.co", "wb") as f:
f.write(payload)
craft_malicious_co()
Blue Team (Defense)
Detection:
- Monitor for unusual CO file downloads or email attachments.
- Use endpoint detection and response (EDR) to detect memory corruption events.
- Implement application whitelisting to prevent untrusted executables.
Mitigation:
- Disable automatic file parsing in Ashlar-Vellum Cobalt if possible.
- Use a sandbox to open untrusted CO files.
- Apply vendor patches when available.
Indicators of Compromise (IOCs)
- File Hashes: (Example – actual hashes will vary)
- SHA256:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
- SHA256:
- Network Indicators:
- Outbound connections to known malicious IPs after file opening.
- Behavioral Indicators:
- Ashlar-Vellum Cobalt process (cobalt.exe) crashing or exhibiting abnormal memory access.
- Child processes spawned by cobalt.exe (e.g., cmd.exe, powershell.exe).
- Registry Changes:
- Unusual registry modifications under
HKEY_CURRENT_USER\Software\Ashlar-Vellum.
- Unusual registry modifications under
Detection Engineering
YARA Rule
rule CVE_2025_7995_CO_TypeConfusion {
meta:
description = "Detects malicious CO files exploiting CVE-2025-7995"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-7995"
strings:
$co_magic = "CO"
$type_confusion = { 01 00 20 00 } // Example: block type 0x01, size 0x20
condition:
$co_magic at 0 and $type_confusion
}
Sigma Rule
title: CVE-2025-7995 Ashlar-Vellum Cobalt CO File Type Confusion
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects exploitation attempts of CVE-2025-7995 via malicious CO files
author: Valters IT
date: 2025-04-10
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\cobalt.exe'
CommandLine|contains: '.co'
condition: selection
falsepositives:
- Legitimate use of CO files
level: high
Suricata Rule
alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-7995 Ashlar-Vellum Cobalt CO File Type Confusion"; flow:to_server,established; content:"CO"; offset:0; depth:2; content:"|01 00 20 00|"; within:4; classtype:attempted-user; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate: Disconnect affected systems from the network if exploitation is suspected.
- Block: Use email and web filters to block CO file attachments and downloads.
- Monitor: Increase logging for Ashlar-Vellum Cobalt processes and file access.
Long-Term Fixes:
- Vendor Patch: Await a patch from Ashlar-Vellum. Contact their support for updates.
- Workaround: If possible, use alternative CAD software or disable CO file parsing.
- User Training: Educate users not to open CO files from untrusted sources.
Detection:
- Deploy the YARA, Sigma, and Suricata rules provided above.
- Use EDR to detect anomalous behavior from cobalt.exe.
Valters IT
Securing Digital Frontiers
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.