Name | CVE-2024-47606 |
Description | GStreamer is a library for constructing graphs of media-handling components. An integer underflow has been detected in the function qtdemux_parse_theora_extension within qtdemux.c. The vulnerability occurs due to an underflow of the gint size variable, which causes size to hold a large unintended value when cast to an unsigned integer. This 32-bit negative value is then cast to a 64-bit unsigned integer (0xfffffffffffffffa) in a subsequent call to gst_buffer_new_and_alloc. The function gst_buffer_new_allocate then attempts to allocate memory, eventually calling _sysmem_new_block. The function _sysmem_new_block adds alignment and header size to the (unsigned) size, causing the overflow of the 'slice_size' variable. As a result, only 0x89 bytes are allocated, despite the large input size. When the following memcpy call occurs in gst_buffer_fill, the data from the input file will overwrite the content of the GstMapInfo info structure. Finally, during the call to gst_memory_unmap, the overwritten memory may cause a function pointer hijack, as the mem->allocator->mem_unmap_full function is called with a corrupted pointer. This function pointer overwrite could allow an attacker to alter the execution flow of the program, leading to arbitrary code execution. This vulnerability is fixed in 1.24.10. |
Source | CVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more) |
References | DLA-3994-1, DSA-5832-1 |
The table below lists information on source packages.
Source Package | Release | Version | Status |
---|---|---|---|
gst-plugins-good0.10 (PTS) | jessie, jessie (lts) | 0.10.31-3+nmu4+deb8u3 | vulnerable |
gst-plugins-good1.0 (PTS) | jessie, jessie (lts) | 1.4.4-2+deb8u6 | vulnerable |
stretch (security) | 1.10.4-1+deb9u1 | vulnerable | |
stretch (lts), stretch | 1.10.4-1+deb9u3 | vulnerable | |
buster (security), buster, buster (lts) | 1.14.4-1+deb10u3 | vulnerable | |
bullseye (security), bullseye | 1.18.4-2+deb11u2 | vulnerable | |
bookworm (security), bookworm | 1.22.0-5+deb12u1 | vulnerable | |
sid, trixie | 1.24.10-1 | fixed | |
gstreamer0.10 (PTS) | jessie | 0.10.36-1.5 | fixed |
gstreamer1.0 (PTS) | jessie, jessie (lts) | 1.4.4-2+deb8u1 | vulnerable |
stretch | 1.10.4-1 | vulnerable | |
buster | 1.14.4-1 | vulnerable | |
bullseye | 1.18.4-2.1 | vulnerable | |
bullseye (security) | 1.18.4-2.1+deb11u1 | fixed | |
bookworm | 1.22.0-2 | vulnerable | |
bookworm (security) | 1.22.0-2+deb12u1 | fixed | |
sid, trixie | 1.24.10-2 | fixed |
The information below is based on the following data on fixed versions.
Package | Type | Release | Fixed Version | Urgency | Origin | Debian Bugs |
---|---|---|---|---|---|---|
gst-plugins-good0.10 | source | jessie | (unfixed) | end-of-life | ||
gst-plugins-good0.10 | source | (unstable) | (unfixed) | |||
gst-plugins-good1.0 | source | jessie | (unfixed) | end-of-life | ||
gst-plugins-good1.0 | source | (unstable) | 1.24.10-1 | |||
gstreamer0.10 | source | (unstable) | (not affected) | |||
gstreamer1.0 | source | bullseye | 1.18.4-2.1+deb11u1 | DLA-3994-1 | ||
gstreamer1.0 | source | bookworm | 1.22.0-2+deb12u1 | DSA-5832-1 | ||
gstreamer1.0 | source | (unstable) | 1.24.10-1 |
- gstreamer0.10 <not-affected> (Vulnerable code introduced in 1.0)
https://securitylab.github.com/advisories/GHSL-2024-166_Gstreamer/
https://gstreamer.freedesktop.org/security/sa-2024-0014.html
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3851
Fixed by: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/f1cdc6f24340f6cce4cc7020628002f5c70dd6c7
Fixed by: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/72af11b248b4cb60d3dfe4e9459eec0d20052c9b (1.24.10)
Fixed by: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/f8e398c46fc074f266edb3f20479c0ca31b52448
Fixed by: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/2d7a11f5e6be5c323b2fed8158bc9df37752e495 (1.24.10)