CVE-2022-1925
High · 7.8CVSS
7.8
EPSS
0.5%
Published
Jul 19, 2022
CISA due date
—
Cloudanix analysis
A bug in widely used media software can let attackers crash or potentially take over programs that open certain video files.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Moderate
- Impact
- Data Tampering
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Integer overflow in gst_matroska_decompress_data within the matroskaparse element causes a heap overflow during HEADERSTRIP decompression of MKV files; size restrictions in matroskademux prevent triggering via that path.
Why it matters to the business
Media processing applications and pipelines using GStreamer for MKV handling risk denial of service or potential arbitrary code execution, disrupting playback, transcoding, and streaming services across downstream dependents.
How an attack unfolds
An attacker supplies a crafted MKV file containing malicious HEADERSTRIP data to any application or pipeline using the vulnerable matroskaparse element; the integer overflow is triggered during decompression, leading to heap corruption that may be leveraged for code execution given the available exploit maturity.
How to fix it
Upgrade gstreamer/gstreamer to the fixed commit ccf22e315cedf81e0075ab179ffb1b733da5206e or any later revision that includes bounds checking in matroskaparse decompression.
How to confirm the fix worked
Confirm the presence of the patch commit in the source tree, rebuild and retest media pipelines with known trigger MKV samples, or verify runtime behavior no longer exhibits overflow on decompression.
Typical attack path
- Craft an MKV file embedding oversized HEADERSTRIP decompression metadata
- Deliver the file to a target application or service using GStreamer matroskaparse
- Trigger gst_matroska_decompress_data to perform the integer overflow and heap write
- Leverage resulting memory corruption for denial of service or code execution
How to detect it
Review application logs and crash reports for segmentation faults or heap errors originating from gstreamer matroska parsing routines when processing MKV containers; correlate with file ingestion timestamps.
What your security team should do
- Prioritize upgrade of all GStreamer installations to the patched commit within 30 days
- Inventory and replace any custom builds or embedded copies of the vulnerable matroskaparse code
- Add MKV file sanitization or sandboxing for untrusted media ingestion paths
- Monitor vulnerability feeds for any increase in exploit maturity or public PoCs
The record
DOS / potential heap overwrite in mkv demuxing using HEADERSTRIP decompression. Integer overflow in matroskaparse element in gst_matroska_decompress_data function which causes a heap overflow. Due to restrictions on chunk sizes in the matroskademux element, the overflow can't be triggered, however the matroskaparse element has no size checks.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:9 | gstreamer1-plugins-good | 0 | 1.18.4-6.el9 |
| AlmaLinux:9 | gstreamer1-plugins-good-gtk | 0 | 1.18.4-6.el9 |
| Debian:10 | gst-plugins-good1.0 | 0 | 1.14.4-1+deb10u2 |
| Debian:11 | gst-plugins-good1.0 | 0 | 1.18.4-2+deb11u1 |
| Debian:12 | gst-plugins-good1.0 | 0 | 1.20.3-1 |
| Debian:13 | gst-plugins-good1.0 | 0 | 1.20.3-1 |
| Mageia:8 | gstreamer1.0-plugins-good | 0 | 1.18.5-1.1.mga8 |
| Mageia:9 | gstreamer1.0 | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-devtools | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-editing-services | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-libav | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-moodbar | 0 | 1.2.1-5.mga9 |
| Mageia:9 | gstreamer1.0-omx | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-plugins-bad | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-plugins-bad | 0 | 1.22.8-1.mga9.tainted |
| Mageia:9 | gstreamer1.0-plugins-base | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-plugins-good | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-plugins-ugly | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-plugins-ugly | 0 | 1.22.8-1.mga9.tainted |
| Mageia:9 | gstreamer1.0-python | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-rtsp-server | 0 | 1.22.8-1.mga9 |
| Mageia:9 | gstreamer1.0-vaapi | 0 | 1.22.8-1.mga9 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-good | 0 | 0:1.18.4-6.el9 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-good-debuginfo | 0 | 0:1.18.4-6.el9 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-good-debugsource | 0 | 0:1.18.4-6.el9 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-good-gtk | 0 | 0:1.18.4-6.el9 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-good-gtk-debuginfo | 0 | 0:1.18.4-6.el9 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-good-qt-debuginfo | 0 | 0:1.18.4-6.el9 |
| SUSE:Enterprise Storage 7 | gstreamer-plugins-good | 0 | 1.16.3-150200.3.9.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-ESPOS | gstreamer-plugins-good | 0 | 1.16.3-150200.3.9.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | gstreamer-plugins-good | 0 | 1.16.3-150200.3.9.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP3 | gstreamer-plugins-good | 0 | 1.16.3-150200.3.9.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP4 | gstreamer-plugins-good | 0 | 1.20.1-150400.3.3.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | gstreamer-plugins-good | 0 | 1.8.3-16.6.2 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | gstreamer-plugins-good | 0 | 1.8.3-16.6.2 |
| SUSE:Linux Enterprise Server 12 SP4-LTSS | gstreamer-plugins-good | 0 | 1.8.3-16.6.2 |
| SUSE:Linux Enterprise Server 12 SP5 | gstreamer-plugins-good | 0 | 1.8.3-16.6.2 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | gstreamer-plugins-good | 0 | 1.12.5-150000.3.7.2 |
| SUSE:Linux Enterprise Server 15 SP2-BCL | gstreamer-plugins-good | 0 | 1.16.3-150200.3.9.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | gstreamer-plugins-good | 0 | 1.16.3-150200.3.9.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | gstreamer-plugins-good | 0 | 1.8.3-16.6.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | gstreamer-plugins-good | 0 | 1.8.3-16.6.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | gstreamer-plugins-good | 0 | 1.12.5-150000.3.7.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | gstreamer-plugins-good | 0 | 1.16.3-150200.3.9.1 |
| SUSE:Linux Enterprise Workstation Extension 12 SP5 | gstreamer-0_10-plugins-good | 0 | 0.10.31-17.7.1 |
| SUSE:Manager Proxy 4.1 | gstreamer-plugins-good | 0 | 1.16.3-150200.3.9.1 |
| SUSE:Manager Retail Branch Server 4.1 | gstreamer-plugins-good | 0 | 1.16.3-150200.3.9.1 |
| SUSE:Manager Server 4.1 | gstreamer-plugins-good | 0 | 1.16.3-150200.3.9.1 |
| SUSE:OpenStack Cloud 9 | gstreamer-plugins-good | 0 | 1.8.3-16.6.2 |
| SUSE:OpenStack Cloud Crowbar 9 | gstreamer-plugins-good | 0 | 1.8.3-16.6.2 |
| Ubuntu:18.04:LTS | gst-plugins-good1.0 | 0 | 1.14.5-0ubuntu1~18.04.3 |
| Ubuntu:20.04:LTS | gst-plugins-good1.0 | 0 | 1.16.3-0ubuntu1.1 |
| Ubuntu:22.04:LTS | gst-plugins-good1.0 | 0 | 1.20.3-0ubuntu1 |
| Ubuntu:Pro:16.04:LTS | gst-plugins-good1.0 | 0 | 1.8.3-1ubuntu0.5+esm1 |
| openSUSE:Leap 15.3 | gstreamer-plugins-good | 0 | 1.16.3-150200.3.9.1 |
| openSUSE:Leap 15.4 | gstreamer-plugins-good | 0 | 1.16.3-150200.3.9.1 |
| openSUSE:Leap 15.4 | gstreamer-plugins-good | 0 | 1.20.1-150400.3.3.1 |
Related vulnerabilities
- CVE-2024-47834 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47774 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47775 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47778 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47776 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47777 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47603 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good
- CVE-2024-47606 GStreamer is a library for constructing graphs of media-handling components. Also affects gstreamer1-plugins-good