CVE-2025-55650
Executive Summary
CVE-2025-55650 is a heap use-after-free vulnerability in GPAC MP4Box v2.4, specifically within the gf_node_get_tag function in scenegraph/base_scenegraph.c. This flaw allows an attacker to cause a Denial of Service (DoS) by supplying a crafted MP4 file. The vulnerability arises from improper memory management when processing malformed MP4 scene graph data, leading to a use-after-free condition. No public proof-of-concept (PoC) or patch is currently available, and the EPSS score is 0.0%, indicating low exploitation activity in the wild. The CVSS v3.1 base score is 5.5 (Medium), with a vector of AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H, reflecting the need for user interaction and local access.
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:N/I:N/A:H
- Base Score: 5.5 (Medium)
- Attack Vector (AV): Local (L) – The attacker must provide a crafted 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 malicious file.
- Scope (S): Unchanged (U) – Impact is confined to the vulnerable component.
- Confidentiality (C): None (N) – No data exposure.
- Integrity (I): None (N) – No data modification.
- Availability (A): High (H) – Complete denial of service.
Threat Level: Medium. The vulnerability requires user interaction and local access, limiting remote exploitation. However, it can be weaponized in phishing campaigns or bundled with media files to crash MP4Box, disrupting workflows.
Deep Dive & Mechanics
The vulnerability resides in the gf_node_get_tag function within scenegraph/base_scenegraph.c. This function is responsible for retrieving a tag associated with a scene graph node. When processing a crafted MP4 file, the function may access a heap-allocated memory region that has already been freed, leading to a use-after-free condition.
Root Cause: Improper reference counting or lack of NULL pointer checks after memory deallocation. When the scene graph is parsed, nodes are created and destroyed. If a node is freed but its pointer is still referenced, subsequent calls to gf_node_get_tag will dereference a dangling pointer, causing a crash.
Attack Vector: An attacker crafts a malicious MP4 file with specially crafted scene graph data that triggers the use-after-free. The victim must open this file using GPAC MP4Box v2.4.
Impact: Denial of Service (DoS) – the application crashes, potentially leading to data loss or service interruption.
Vulnerable vs. Patched Code
Vulnerable Code (v2.4):
// gf_node_get_tag in base_scenegraph.c
GF_Err gf_node_get_tag(GF_Node *node, u32 *tag) {
if (!node) return GF_BAD_PARAM;
*tag = node->tag; // Use-after-free if node is freed
return GF_OK;
}
Patched Code (Hypothetical):
// Patched version with NULL check and reference counting
GF_Err gf_node_get_tag(GF_Node *node, u32 *tag) {
if (!node || !node->is_valid) return GF_BAD_PARAM; // Check validity
*tag = node->tag;
return GF_OK;
}
Note: No official patch is available. The hypothetical fix adds a validity flag to prevent access to freed nodes.
Exploitation & Lab Setup
Red Team (Exploitation)
- Craft Malicious MP4 File: Use a fuzzer (e.g., AFL++) to generate a malformed MP4 file that triggers the use-after-free in
gf_node_get_tag. - Deliver Payload: Send the crafted file via email, download link, or USB drive.
- Trigger Vulnerability: Victim opens the file with
MP4Box -info crafted.mp4. - Observe Crash: MP4Box crashes, causing DoS.
Example Command:
# Generate a malformed MP4 file (hypothetical)
python3 craft_exploit.py -o malicious.mp4
# Trigger the vulnerability
MP4Box -info malicious.mp4
Blue Team (Detection & Prevention)
- Monitor File Integrity: Use file integrity monitoring (FIM) to detect unusual MP4 files.
- Sandbox Execution: Run MP4Box in a sandboxed environment to contain crashes.
- User Awareness: Train users not to open untrusted MP4 files.
- Network Filtering: Block suspicious file downloads at the perimeter.
Indicators of Compromise (IOCs)
- File Hashes (SHA256): (None available – generate upon PoC creation)
- Process Name:
MP4Box.exeorMP4Box - Crash Signature: Access violation reading location 0xXXXXXXXX in
gf_node_get_tag - Network Traffic: None (local file-based)
- Registry Keys: None
Detection Engineering
YARA Rule
rule CVE_2025_55650_GPAC_UseAfterFree {
meta:
description = "Detects crafted MP4 files exploiting CVE-2025-55650"
author = "Valters IT"
date = "2025-04-10"
hash = "unknown"
strings:
$s1 = "moov" ascii wide nocase
$s2 = "trak" ascii wide nocase
$s3 = "mdia" ascii wide nocase
$s4 = "minf" ascii wide nocase
$s5 = "stbl" ascii wide nocase
$s6 = { 00 00 00 00 } // Placeholder for crafted data
condition:
uint32(0) == 0x66747970 and // 'ftyp' box
all of ($s1, $s2, $s3, $s4, $s5) and
#s6 > 10
}
Sigma Rule
title: CVE-2025-55650 GPAC MP4Box Use-After-Free
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects crashes in GPAC MP4Box due to crafted MP4 files
author: Valters IT
date: 2025-04-10
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\MP4Box.exe'
CommandLine|contains: '-info'
condition: selection
falsepositives:
- Legitimate MP4 file analysis
level: medium
Suricata Rule
alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-55650 GPAC MP4Box Use-After-Free"; flow:to_server,established; content:"|00 00 00 00|"; depth:4; content:"ftyp"; distance:0; within:4; content:"moov"; distance:0; within:4; content:"trak"; distance:0; within:4; content:"mdia"; distance:0; within:4; content:"minf"; distance:0; within:4; content:"stbl"; distance:0; within:4; classtype:attempted-dos; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Avoid opening untrusted MP4 files with GPAC MP4Box v2.4.
- Short-term: Apply memory safety patches (e.g., ASLR, CFG) to mitigate exploitation.
- Long-term: Upgrade to a patched version of GPAC when available.
- Workaround: Use alternative media analysis tools (e.g., FFmpeg) until a patch is released.
Valters IT – Securing digital frontiers with precision and expertise.