CVE-2022-1924
High · 7.8CVSS
7.8
EPSS
0.4%
Published
Jul 19, 2022
CISA due date
—
Cloudanix analysis
A bug in widely used media software can make programs crash or let attackers take control when someone opens 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 matroskademux LZO decompression allows heap overwrite or segfault depending on libc and OS memory allocation behavior.
Why it matters to the business
Applications that process untrusted MKV files may crash or suffer memory corruption, disrupting media workflows and creating potential for arbitrary code execution on affected systems.
How an attack unfolds
An attacker supplies a specially crafted MKV file containing LZO-compressed data that triggers the integer overflow during demuxing; depending on the runtime environment this results in a crash or a controllable heap overwrite that can be leveraged for code execution. Public exploits exist for this issue.
How to fix it
Upgrade GStreamer to the commit ccf22e315cedf81e0075ab179ffb1b733da5206e or any later release that contains the fix; rebuild and redeploy all dependent applications and containers.
How to confirm the fix worked
Verify the installed GStreamer git revision contains commit ccf22e315cedf81e0075ab179ffb1b733da5206e; test playback of known-triggering MKV samples in a controlled environment and confirm absence of crash or corruption.
Typical attack path
- Craft malicious MKV file triggering LZO integer overflow in matroskademux
- Deliver file via web download, email attachment or removable media
- Victim opens file with any GStreamer-based media player or application
- Demuxer processes compressed track and overflows heap or faults
How to detect it
Monitor application and system logs for segmentation faults or heap-related errors in processes that use the matroskademux element while handling MKV files; correlate with file-open events for untrusted media.
What your security team should do
- Immediately update all GStreamer installations to the fixed commit
- Inventory and replace any custom builds or embedded copies of the vulnerable library
- Add GStreamer version checks to CI/CD pipelines and container base images
- Restrict processing of untrusted MKV files until patches are deployed
The record
DOS / potential heap overwrite in mkv demuxing using lzo decompression. Integer overflow in matroskademux element in lzo 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