CVE-2022-1923
High · 7.8CVSS
7.8
EPSS
0.4%
Published
Jul 19, 2022
CISA due date
—
Cloudanix analysis
A bug in video handling software can let attackers crash programs or potentially take control by tricking users into opening a specially made video file.
- 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 the matroskademux element's bzip decompression function that leads to a segmentation fault or heap memory overwrite depending on the libc implementation and OS memory allocator behavior.
Why it matters to the business
Media processing applications may experience crashes or potential compromise when handling certain MKV files, resulting in service outages or unauthorized code execution in content ingestion and playback pipelines.
How an attack unfolds
An attacker crafts an MKV file containing specially sized bzip-compressed data that triggers an integer overflow during demuxing; when the file is opened by a vulnerable GStreamer instance the overflow may cause a crash or allow memory corruption for further exploitation.
How to fix it
Upgrade GStreamer to commit ccf22e315cedf81e0075ab179ffb1b733da5206e or a later fixed release; rebuild and redeploy any dependent applications.
How to confirm the fix worked
Confirm the running GStreamer version contains commit ccf22e315cedf81e0075ab179ffb1b733da5206e; test playback of known trigger MKV files and verify absence of crashes or memory errors.
Typical attack path
- Create malicious MKV file with crafted bzip data to induce integer overflow
- Deliver file to target via email, web download, or shared storage
- Victim opens file in application using vulnerable GStreamer matroskademux
- Overflow occurs during decompression leading to segfault or heap overwrite
- Attacker achieves denial of service or potential code execution
How to detect it
Review application and system logs for segmentation faults or crashes involving matroskademux during MKV processing; inspect core dumps or heap analysis artifacts from affected processes.
What your security team should do
- Apply the fixed GStreamer commit immediately in all environments processing MKV content
- Inventory applications and services using GStreamer and prioritize updates by exposure
- Implement file-type sandboxing or validation for untrusted MKV inputs until patched
The record
DOS / potential heap overwrite in mkv demuxing using bzip decompression. Integer overflow in matroskademux element in bzip decompression 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