CVE-2023-40475
High · 8.8CVSS
8.8
EPSS
2.1%
Published
May 3, 2024
CISA due date
—
Cloudanix analysis
A bug in widely used video software lets attackers take over a computer simply by getting it to open a specially crafted video file.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Integer overflow in MXF file parser allows attacker-controlled size values to bypass buffer allocation checks, resulting in out-of-bounds memory access and remote code execution within the GStreamer process.
Why it matters to the business
Systems that ingest or transcode MXF video content risk full process takeover, enabling data theft, ransomware deployment, or lateral movement in media workflows; prevalence of GStreamer in pipelines increases exposure surface for organizations handling professional video.
How an attack unfolds
An attacker crafts a malformed MXF file containing an oversized length field that triggers the integer overflow during header parsing; when the victim application opens or processes the file via GStreamer, the resulting memory corruption is leveraged to execute arbitrary code in the context of the current process.
How to fix it
Upgrade GStreamer to the commit ddb4fbe43149b157efb52b6472313f48308c1dbc or later; rebuild dependent applications against the patched library and verify the fix by confirming the corrected MXF demuxer size checks are present.
How to confirm the fix worked
Confirm the installed GStreamer source or package contains commit ddb4fbe43149b157efb52b6472313f48308c1dbc; run regression tests with crafted MXF files that previously triggered the overflow and verify no memory corruption occurs.
Typical attack path
- Attacker generates malicious MXF file exploiting integer overflow in header parsing
- Malicious file is delivered via email, web download, or shared storage
- Victim application invokes GStreamer to open or transcode the MXF file
- Integer overflow occurs, corrupting heap metadata and enabling code execution
- Attacker payload runs with privileges of the GStreamer process
How to detect it
Search application and system logs for GStreamer crashes or segfaults during MXF demuxing; inspect process creation events immediately following MXF file access; review any child processes spawned from GStreamer that exhibit anomalous behavior.
What your security team should do
- Immediately update all GStreamer installations to the fixed commit ddb4fbe43149b157efb52b6472313f48308c1dbc
- Inventory media-processing pipelines and containers that depend on GStreamer
- Implement file-type sandboxing or content-disarm-and-reconstruction for MXF inputs until patched
- Monitor EPSS trend and re-evaluate if exploit code appears in public repositories
The record
GStreamer MXF File Parsing Integer Overflow Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of GStreamer. Interaction with this library is required to exploit this vulnerability but attack vectors may vary depending on the implementation. The specific flaw exists within the parsing of MXF video files. The issue results from the lack of proper validation of user-supplied data, which can result in an integer overflow before allocating a buffer. An attacker can leverage this vulnerability to execute code in the context of the current process. . Was ZDI-CAN-21661.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | gstreamer1-plugins-bad-free | 0 | 1.16.1-4.el8 |
| AlmaLinux:8 | gstreamer1-plugins-bad-free-devel | 0 | 1.16.1-4.el8 |
| AlmaLinux:9 | gstreamer1-plugins-bad-free | 0 | 1.22.1-4.el9 |
| AlmaLinux:9 | gstreamer1-plugins-bad-free-devel | 0 | 1.22.1-4.el9 |
| Debian:10 | gst-plugins-bad1.0 | 0 | 1.14.4-1+deb10u4 |
| Debian:11 | gst-plugins-bad1.0 | 0 | 1.18.4-3+deb11u2 |
| Debian:12 | gst-plugins-bad1.0 | 0 | 1.22.0-4+deb12u2 |
| Debian:13 | gst-plugins-bad1.0 | 0 | 1.22.7-1 |
| Debian:14 | gst-plugins-bad1.0 | 0 | 1.22.7-1 |
| 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:8::appstream | gstreamer1-plugins-bad-free | 0 | 0:1.16.1-4.el8 |
| Red Hat:enterprise_linux:8::appstream | gstreamer1-plugins-bad-free-debuginfo | 0 | 0:1.16.1-4.el8 |
| Red Hat:enterprise_linux:8::appstream | gstreamer1-plugins-bad-free-debugsource | 0 | 0:1.16.1-4.el8 |
| Red Hat:enterprise_linux:8::appstream | gstreamer1-plugins-bad-free-devel | 0 | 0:1.16.1-4.el8 |
| Red Hat:enterprise_linux:8::crb | gstreamer1-plugins-bad-free | 0 | 0:1.16.1-4.el8 |
| Red Hat:enterprise_linux:8::crb | gstreamer1-plugins-bad-free-debuginfo | 0 | 0:1.16.1-4.el8 |
| Red Hat:enterprise_linux:8::crb | gstreamer1-plugins-bad-free-debugsource | 0 | 0:1.16.1-4.el8 |
| Red Hat:enterprise_linux:8::crb | gstreamer1-plugins-bad-free-devel | 0 | 0:1.16.1-4.el8 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-bad-free | 0 | 0:1.22.1-4.el9 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-bad-free-debuginfo | 0 | 0:1.22.1-4.el9 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-bad-free-debugsource | 0 | 0:1.22.1-4.el9 |
| Red Hat:enterprise_linux:9::appstream | gstreamer1-plugins-bad-free-devel | 0 | 0:1.22.1-4.el9 |
| Red Hat:enterprise_linux:9::crb | gstreamer1-plugins-bad-free | 0 | 0:1.22.1-4.el9 |
| Red Hat:enterprise_linux:9::crb | gstreamer1-plugins-bad-free-debuginfo | 0 | 0:1.22.1-4.el9 |
| Red Hat:enterprise_linux:9::crb | gstreamer1-plugins-bad-free-debugsource | 0 | 0:1.22.1-4.el9 |
| Red Hat:enterprise_linux:9::crb | gstreamer1-plugins-bad-free-devel | 0 | 0:1.22.1-4.el9 |
| Rocky Linux:8 | gstreamer1-plugins-bad-free | 0 | 0:1.16.1-4.el8 |
| Rocky Linux:9 | gstreamer1-plugins-bad-free | 0 | 0:1.22.1-4.el9 |
| SUSE:Enterprise Storage 7.1 | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.15.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | gstreamer-plugins-bad | 0 | 1.12.5-150000.3.18.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | gstreamer-plugins-bad | 0 | 1.16.3-150200.4.16.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.15.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.15.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.15.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.15.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP4 | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.15.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | gstreamer-plugins-bad | 0 | 1.22.0-150500.3.17.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP4 | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.15.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | gstreamer-plugins-bad | 0 | 1.22.0-150500.3.17.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP4 | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.15.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP5 | gstreamer-plugins-bad | 0 | 1.22.0-150500.3.17.1 |
| SUSE:Linux Enterprise Real Time 15 SP4 | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.15.1 |
| SUSE:Linux Enterprise Server 12 SP5 | gstreamer-plugins-bad | 0 | 1.8.3-18.12.1 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | gstreamer-plugins-bad | 0 | 1.12.5-150000.3.18.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | gstreamer-plugins-bad | 0 | 1.16.3-150200.4.16.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.15.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | gstreamer-plugins-bad | 0 | 1.8.3-18.12.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | gstreamer-plugins-bad | 0 | 1.12.5-150000.3.18.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | gstreamer-plugins-bad | 0 | 1.16.3-150200.4.16.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | gstreamer-plugins-bad | 0 | 1.16.3-150300.9.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.15.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | gstreamer-plugins-bad | 0 | 1.8.3-18.12.1 |
| SUSE:Manager Proxy 4.3 | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.15.1 |
| SUSE:Manager Server 4.3 | gstreamer-plugins-bad | 0 | 1.20.1-150400.3.15.1 |
| Ubuntu:14.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| Ubuntu:16.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| Ubuntu:18.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| Ubuntu:20.04:LTS | gst-plugins-bad1.0 | 0 | 1.16.3-0ubuntu1.1 |
| Ubuntu:22.04:LTS | gst-plugins-bad1.0 | 0 | 1.20.3-0ubuntu1.1 |
| Ubuntu:23.10 | gst-plugins-bad1.0 | 0 | 1.22.4-1ubuntu1.1 |
| Ubuntu:24.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | gst-plugins-bad0.10 | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | gst-plugins-bad1.0 | 0 | No fix |
| openSUSE:Leap 15.5 | gstreamer-plugins-bad | 0 | 1.22.0-lp155.3.10.1 |
Related vulnerabilities
- CVE-2023-44446 GStreamer MXF File Parsing Use-After-Free Remote Code Execution Vulnerability. Also affects gstreamer1-plugins-bad-free
- CVE-2023-40476 GStreamer H265 Parsing Stack-based Buffer Overflow Remote Code Execution Vulnerability. Also affects gstreamer1-plugins-bad-free
- CVE-2023-40474 GStreamer MXF File Parsing Integer Overflow Remote Code Execution Vulnerability. Also affects gstreamer1-plugins-bad-free
- CVE-2024-0444 GStreamer AV1 Video Parsing Stack-based Buffer Overflow Remote Code Execution… Also affects gstreamer1-plugins-bad-free
- CVE-2024-4453 GStreamer EXIF Metadata Parsing Integer Overflow Remote Code Execution Vulnerability. Also affects gstreamer1-plugins-bad-free
- CVE-2023-50186 GStreamer AV1 Video Parsing Stack-based Buffer Overflow Remote Code Execution… Also affects gstreamer1-plugins-bad-free
- CVE-2023-44429 GStreamer AV1 Codec Parsing Heap-based Buffer Overflow Remote Code Execution… Also affects gstreamer1-plugins-bad-free
- CVE-2023-37329 GStreamer SRT File Parsing Heap-based Buffer Overflow Remote Code Execution Vulnerability. Also affects gst-plugins-bad1.0