CVE-2022-1920
High · 7.8CVSS
7.8
EPSS
0.5%
Published
Jul 19, 2022
CISA due date
—
Cloudanix analysis
A flaw in media software that reads certain video files could let attackers take control of a computer simply by getting it to open a specially made 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 gst_matroska_demux_add_wvpk_header function in the matroskademux element causes heap buffer overwrite when parsing Matroska files, enabling arbitrary code execution.
Why it matters to the business
Applications that use GStreamer to process Matroska media files face risk of full system compromise from attacker-controlled files; the issue has been public for over four years with available exploits, increasing exposure for any media-handling pipelines.
How an attack unfolds
An attacker crafts a malicious Matroska file that triggers the integer overflow in the matroskademux element. When a vulnerable GStreamer application parses the file, the resulting heap overwrite is leveraged to achieve arbitrary code execution.
How to fix it
Upgrade gstreamer/gstreamer to the commit ccf22e315cedf81e0075ab179ffb1b733da5206e or later.
How to confirm the fix worked
Confirm GStreamer build contains commit ccf22e315cedf81e0075ab179ffb1b733da5206e; test parsing of crafted Matroska files that previously triggered the overflow.
Typical attack path
- Craft malicious Matroska file that triggers integer overflow in matroskademux
- Deliver file to target application or pipeline
- Application parses file and performs heap overwrite
- Execute arbitrary code via corrupted heap structures
How to detect it
Review application logs and crash reports for unexpected behavior or segmentation faults during Matroska parsing; inspect process memory dumps for heap corruption patterns after file processing.
What your security team should do
- Apply the fixed commit immediately across all GStreamer deployments
- Disable or restrict the matroskademux element when processing untrusted files
- Sandbox media-processing pipelines to limit impact of code execution
The record
Integer overflow in matroskademux element in gst_matroska_demux_add_wvpk_header function which allows a heap overwrite while parsing matroska files. Potential for arbitrary code execution through 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