简介
远程 Amazon Linux 2 主机缺少安全更新。
描述
远程主机上安装的 gstreamer1-plugins-good 版本低于 1.18.4-6。因此,该软件受到 ALAS2-2025-2964 公告中提及的多个漏洞影响。
1.18.4 之前的 GStreamer 可能在解析某些畸形的 Matroska 文件时造成堆损坏。
(CVE-2021-3498)
GStreamer 是用于构建媒体处理组件图形的库。在 isomp4/qtdemux.c 的 convert_to_s334_1a 函数中发现一个越界写入漏洞。由于分配给存储阵列的内存大小与循环条件 i * 2 < ccpair_size 之间存在差异而出现该漏洞。特别是当 ccpair_size 为偶数时storage 中分配的大小与循环的预期边界不匹配从而导致越界写入。此缺陷允许改写超出存储阵列分配边界最多 3 个字节。此漏洞已在 1.24.10 中修复。(CVE-2024-47539)
GStreamer 是用于构建媒体处理组件图形的库。在 qtdemux.c 的 qtdemux_parse_container 函数中发现一个 OOB 读取漏洞。在父函数 qtdemux_parse_node 中未正确检查长度值。因此,如果长度足够大,可能会导致指针末端指向缓冲区边界之外。因此在 qtdemux_parse_container 函数中while 循环可能会触发 OOB 读取访问超出 buf 边界的内存。此漏洞可导致读取多达 4GB 的进程内存或可能在访问无效内存时造成分段错误 (SEGV)。此漏洞已在 1.24.10 中修复。(CVE-2024-47543)
GStreamer 是用于构建媒体处理组件图形的库。在 qtdemux.c 内的 qtdemux_parse_trak 函数中检测到整数下溢。在 strf 解析案例期间如果减法大小 -= 40 小于 40可导致负整数溢出。如果发生这种情况对 gst_buffer_fill 的后续调用将会调用具有较大 tocopy 大小的 memcpy从而导致 OOB 读取。此漏洞已在 1.24.10 中修复。(CVE-2024-47545)
GStreamer 是用于构建媒体处理组件图形的库。在 qtdemux.c 的 extract_cc_from_data 函数中检测到整数下溢。在 FOURCC_c708 的情况下如果 atom_length 小于 8则减法 atom_length - 8 可导致下溢。当减法下溢时*cclen 最终会变成一个很大的数然后 cclen 会传递到 g_memdup2 进而导致越界越界 (OOB) 读取。此漏洞已在 1.24.10 中修复。(CVE-2024-47546)
GStreamer 是用于构建媒体处理组件图形的库。在 qtdemux.c 的 qtdemux_parse_svq3_stsd_data 函数中发现一个 OOB 读取。在 FOURCC_SMI_ 情况下未进行正确验证就从输入文件读取 seqh_size。如果 seqh_size 大于数据缓冲区的剩余大小则可导致对 gst_buffer_fill 的后续调用发生 OOB 读取其内部使用 memcpy。此漏洞可导致读取多达 4GB 的进程内存或可能在访问无效内存时造成分段错误 (SEGV)。此漏洞已在 1.24.10 中修复。(CVE-2024-47596)
GStreamer 是用于构建媒体处理组件图形的库。在 qtdemux.c 内的 qtdemux_parse_samples 函数中检测到 OOB 读取。当函数 qtdemux_parse_samples 读取的数据超出 stream->stco 缓冲区边界时会出现此问题。以下代码片段显示了对 qt_atom_parser_get_offset_unchecked 的调用这会导致解析提供的 GHSL-2024-245_crash1.mp4 文件时发生 OOB 读取。此问题可能导致最多 8 个字节的越界读取。此漏洞已在 1.24.10 中修复。(CVE-2024-47597)
GStreamer 是用于构建媒体处理组件图形的库。在 qtdemux.c 的 qtdemux_merge_sample_table 函数中发现一个 OOB 读取漏洞。问题在于读取 stts_duration 之前未正确检查 stts 缓冲区的大小进而允许程序读取超出 stts->data 边界的 4 个字节。此漏洞会读取最多 4 字节超出 stts 数组分配的边界。此漏洞已在 1.24.10 中修复。(CVE-2024-47598)
GStreamer 是用于构建媒体处理组件图形的库。在 gstjpegdec.c 的 gst_jpeg_dec_negotiate 函数中发现一个空指针取消引用漏洞。此函数不会检查 gst_video_decoder_set_output_state 的空返回值。发生这种情况时outstate 指针的取消引用将导致空指针取消引用。此漏洞可通过触发分段错误 (SEGV) 来导致拒绝服务 (DoS)。此漏洞已在 1.24.10 中修复。(CVE-2024-47599)
GStreamer 是用于构建媒体处理组件图形的库。在matroska-demux.c 内的 gst_matroska_demux_parse_blockgroup_or_simpleblock 函数中发现一个空指针取消引用漏洞。此函数在执行取消引用之前未正确检查 GstBuffer *sub 指针的有效性。因此可能会发生空指针取消引用。此漏洞已在 1.24.10 中修复。(CVE-2024-47601)
GStreamer 是用于构建媒体处理组件图形的库。在matroska-demux.c 内的 gst_matroska_demux_add_wvpk_header 函数中发现一个空指针取消引用漏洞。此函数未正确检查以下代码中 stream->codec_priv 指针的有效性。如果 stream->codec_priv 为 NULL对 GST_READ_UINT16_LE 的调用将尝试取消引用空指针从而导致应用程序崩溃。此漏洞已在 1.24.10 中修复。
(CVE-2024-47602)
GStreamer 是用于构建媒体处理组件图形的库。在 Matroska-demux.c 的 gst_matroska_demux_update_tracks 函数中发现一个空指针取消引用漏洞。当使用无效的端点值调用 gst_caps_is_equal 函数时会出现该漏洞。
如果发生这种情况则在 gst_buffer_get_size 函数中对 GST_BUFFER_MEM_PTR 的调用可返回空指针。尝试取消引用此空指针的大小字段会导致空指针取消引用。此漏洞已在 1.24.10 中修复。(CVE-2024-47603)
GStreamer 是用于构建媒体处理组件图形的库。已在 gstavisubtitle.c 的 gst_avi_subtitle_parse_gab2_chunk 函数中发现一个 OOB 读取漏洞。该函数直接从输入文件读取 name_length 值而不对其进行正确检查。然后a 条件无法正确处理 name_length 大于 0xFFFFFFFF - 17 的情况从而导致整数溢出。在这种情况下函数尝试访问超出缓冲区的内存从而导致 OOB 读取。此漏洞已在 1.24.10 中修复。(CVE-2024-47774)
GStreamer 是用于构建媒体处理组件图形的库。在 gstwavparse.c 的 parse_ds64 函数中发现一个 OOB 读取漏洞。parse_ds64 函数在尝试读取数据之前未检查缓冲区 buf 中是否包含足够的数据从而在未执行边界检查的情况下执行多个 GST_READ_UINT32_LE 操作。当 buf 小于预期时这可能导致 OOB 读取。此漏洞允许超出数据缓冲区边界的读取可能导致崩溃拒绝服务或敏感数据泄露。此漏洞已在 1.24.10 中修复。(CVE-2024-47775)
GStreamer 是用于构建媒体处理组件图形的库。在 gstwavparse.c 内的 gst_wavparse_cue_chunk 中发现一个 OOB 读取。发生此漏洞的原因是数据缓冲区的大小与提供给函数的大小值之间存在差异。此不匹配造成比较 if (size < 4 + ncues * 24) 在某些情况下失败从而允许后续循环访问数据缓冲区的边界之外的边界。造成此差异的根本原因是根据上游数据大小裁剪区块大小时的计算错误。此漏洞允许超出数据缓冲区边界的读取可能导致崩溃拒绝服务或敏感数据泄露。此漏洞已在 1.24.10 中修复。(CVE-2024-47776)
GStreamer 是用于构建媒体处理组件图形的库。已在 gstwavparse.c 的 gst_wavparse_smpl_chunk 函数中发现一个 OOB 读取漏洞。此函数尝试从 data + 12 偏移中读取 4 个字节而不检查数据缓冲区的大小是否足够。如果缓冲区太小函数会读取超出其边界。此漏洞可能会导致读取超出数据缓冲区边界的 4 个字节。此漏洞已在 1.24.10 中修复。(CVE-2024-47777)
GStreamer 是用于构建媒体处理组件图形的库。在 gstwavparse.c 内的 gst_wavparse_adtl_chunk 中发现一个 OOB 读取漏洞。由于对大小参数的验证不充分该参数可能超出数据缓冲区的边界导致出现此漏洞。因此在后续的 while 循环中发生 OOB 读取。此漏洞可导致读取多达 4GB 的进程内存或可能在访问无效内存时造成分段错误 (SEGV)。此漏洞已在 1.24.10 中修复。(CVE-2024-47778)
GStreamer 是用于构建媒体处理组件图形的库。发现一个释放后使用读取漏洞会影响 Matroska 流中 CodecPrivate 元素的处理。
在 gst_matroska_demux_parse_stream 函数内的 GST_MATROSKA_ID_CODECPRIVATE 情况下会使用 gst_ebml_read_binary 分配数据区块。稍后会通过调用 g_free (track->codec_priv) 在 gst_matroska_track_free 函数中释放分配的内存。最后会通过 gst_value_serialize_buffer 在 caps_serialize 函数中访问已释放的内存。gst_value_serialize_buffer 函数中将访问已释放的内存。这会导致 UAF 读取漏洞因为该函数会尝试处理已经释放的内存。此漏洞已在 1.24.10 中修复。
(CVE-2024-47834)
Tenable 已直接从测试产品的安全公告中提取上述描述块。
请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。
解决方案
运行 'yum update gstreamer1-plugins-good' 以更新系统。
插件详情
文件名: al2_ALAS-2025-2964.nasl
代理: unix
支持的传感器: Frictionless Assessment AWS, Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Continuous Assessment, Nessus
风险信息
矢量: CVSS2#AV:N/AC:M/Au:N/C:P/I:P/A:P
矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
时间矢量: CVSS:3.0/E:P/RL:O/RC:C
Threat Vector: CVSS:4.0/E:P
Vector: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
漏洞信息
CPE: cpe:/o:amazon:linux:2, p-cpe:/a:amazon:linux:gstreamer1-plugins-good-gtk, p-cpe:/a:amazon:linux:gstreamer1-plugins-good, p-cpe:/a:amazon:linux:gstreamer1-plugins-good-debuginfo
必需的 KB 项: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list
易利用性: No known exploits are available
参考资料信息
CVE: CVE-2021-3498, CVE-2024-47539, CVE-2024-47543, CVE-2024-47545, CVE-2024-47546, CVE-2024-47596, CVE-2024-47597, CVE-2024-47598, CVE-2024-47599, CVE-2024-47601, CVE-2024-47602, CVE-2024-47603, CVE-2024-47774, CVE-2024-47775, CVE-2024-47776, CVE-2024-47777, CVE-2024-47778, CVE-2024-47834