CVE-2022-1922
High · 7.8CVSS
7.8
EPSS
0.5%
Published
Jul 19, 2022
CISA due date
—
Cloudanix analysis
A flaw in how certain media software reads special video files could let an attacker crash the program or take control of the computer when the file is opened.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Full Compromise
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Integer overflow in gst_matroska_decompress_data during zlib decompression of MKV data allows a segfault or heap overwrite depending on libc and OS memory allocation behavior.
Why it matters to the business
Media playback or processing applications may crash or be compromised when handling specially crafted MKV files, potentially disrupting content workflows or enabling local code execution.
How an attack unfolds
An attacker crafts an MKV file containing zlib-compressed data designed to trigger an integer overflow in the matroska demuxer; when a user opens the file with a vulnerable GStreamer-based application the overflow may corrupt heap memory or cause a crash, with success depending on the underlying allocator.
How to fix it
Upgrade gstreamer to the commit ccf22e315cedf81e0075ab179ffb1b733da5206e or later; rebuild and redeploy any dependent applications or containers.
How to confirm the fix worked
Confirm the installed GStreamer package or source tree contains commit ccf22e315cedf81e0075ab179ffb1b733da5206e; test playback of known trigger MKV files to verify absence of crash or corruption.
Typical attack path
- Attacker creates malicious MKV file with oversized zlib block
- Victim opens file using vulnerable GStreamer application
- matroskademux processes the stream and calls decompress_data
- Integer overflow occurs during realloc, leading to segfault or heap write
- Attacker gains code execution or causes denial of service if overwrite succeeds
How to detect it
Review application and system logs for GStreamer crashes or segmentation faults while processing MKV containers; inspect for unusual heap behavior or memory corruption indicators in media-processing processes.
What your security team should do
- Immediately update all GStreamer installations to the fixed commit
- Scan internal media pipelines and third-party tools for GStreamer usage
- Add MKV file handling to security testing and fuzzing routines
- Monitor for new exploit code given public exploit availability
The record
DOS / potential heap overwrite in mkv demuxing using zlib decompression. Integer overflow in matroskademux element in gst_matroska_decompress_data function which causes a segfault, or could cause a heap overwrite, depending on libc and OS. Depending on the libc used, and the underlying OS capabilities, it could be just a segfault or a heap overwrite. If the libc uses mmap for large chunks, and the OS supports mmap, then it is just a segfault (because the realloc before the integer overflow will use mremap to reduce the size of the chunk, and it will start to write to unmapped memory). However, if using a libc implementation that does not use mmap, or if the OS does not support mmap while using libc, then this could result in a heap overwrite.
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