概要
遠端 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 為偶數時儲存裝置中的配置大小不符合迴圈的預期邊界進而導致超出邊界寫入。此錯誤允許在超出儲存陣列的配置邊界的情況下覆寫最多 3 個位元組。此弱點已在 1.24.10 中修復。(CVE-2024-47539)
GStreamer 是用來建構媒體處理元件圖形的程式庫。在內 qtdemux.c 的 qtdemux_parse_container 函式中發現一個 OOB 讀取弱點。在父項函式 qtdemux_parse_node 中並未正確檢查長度的值。因此如果長度夠大就會造成指標 end 指向緩衝區邊界之外。因此在 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進而導致 out-of-length邊界 (OOB) 讀取。此弱點已在 1.24.10 中修復。(CVE-2024-47546)
GStreamer 是用來建構媒體處理元件圖形的程式庫。在 qtdemux.c 的 qtdemux_parse_svq3_stsd_data 函式中發現一個 OOB 讀取問題。在 FOURCC_SMI_ 案例中seqh_size 會在未經過適當驗證的情況下從輸入檔案讀取。如果 seqh_size 大於資料緩衝區的剩餘大小可導致在內部使用 memcpy 的下列 gst_buffer_fill 呼叫中發生 OOB 讀取。此弱點可導致在存取無效記憶體時讀取高達 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 個位元組。此弱點最多可讀取 stts 陣列已配置邊界之外的 4 個位元組。此弱點已在 1.24.10 中修復。(CVE-2024-47598)
GStreamer 是用來建構媒體處理元件圖形的程式庫。在 gstjpegdec.c 的 gst_jpeg_dec_negotiate 函式中發現一個 null 指標解除參照弱點。此函式不會檢查來自 gst_video_decoder_set_output_state 的 NULL 傳回值。發生此情況時區外指標的解除參照會導致 null 指標解除參照。此弱點可透過觸發記憶體區段錯誤 (SEGV),進而導致拒絕服務 (DoS)。此弱點已在 1.24.10 中修復。(CVE-2024-47599)
GStreamer 是用來建構媒體處理元件圖形的程式庫。在 Matroska-demux.c 內的 gst_matroska_demux_parse_blockgroup_or_simpleblock 函式中發現一個 null 指標解除參照弱點。此函式在執行解除參照前未正確檢查 GstBuffer *sub 指標的有效性。因此可能會發生 null 指標解除參照。此弱點已在 1.24.10 中修復。(CVE-2024-47601)
GStreamer 是用來建構媒體處理元件圖形的程式庫。在 Matroska-demux.c 內的 gst_matroska_demux_add_wvpk_header 函式中發現一個 null 指標解除參照弱點。此函式未正確檢查下列程式碼中 stream->codec_priv 指標的有效性。如果 stream->codec_priv 為 NULL則對 GST_READ_UINT16_LE 的呼叫會嘗試解除參照 null 指標進而導致應用程式損毀。此弱點已在 1.24.10 中修正。
(CVE-2024-47602)
GStreamer 是用來建構媒體處理元件圖形的程式庫。在matroska-demux.c 的 gst_matroska_demux_update_tracks 函式中發現一個 null 指標解除參照弱點。此弱點會在使用無效的 caps 值呼叫 gst_caps_is_equal 函式時發生。
若發生此情況則在 gst_buffer_get_size 函式中GST_BUFFER_MEM_PTR 呼叫可傳回 null 指標。嘗試解除參照此 null 指標的大小欄位會導致 null 指標解除參照。此弱點已在 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 讀取之前未先檢查該緩衝區 buf 中是否包含足夠的資料進而在未執行邊界檢查的情況下執行多個 GST_READ_UINT32_LE 作業。這可導致當 buf 小於預期值時發生 OOB 讀取。此弱點允許超出資料緩衝區邊界進行讀取可能導致當機 (拒絕服務) 或敏感資料洩漏。此弱點已在 1.24.10 中修復。(CVE-2024-47775)
GStreamer 是用來建構媒體處理元件圖形的程式庫。在 gstwavparse.c 的 gst_wavparse_cue_chunk 中發現 OOB 讀取情形。造成此弱點的原因是資料緩衝區大小和提供給函式的大小值有差異。在某些情況下此不相符會造成 (大小 < 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 配置資料區塊。之後在 gst_matroska_track_free 函式中透過對 g_free (track->codec_priv) 的呼叫釋放配置的記憶體。最後在 caps_serialize 函式中透過 gst_value_serialize_buffer 存取已釋放的記憶體。已釋放的記憶體將在 gst_value_serialize_buffer 函式中存取。這會導致 UAF 讀取弱點因為該函式會嘗試處理已釋放的記憶體。此弱點已在 1.24.10 中修正。
(CVE-2024-47834)
Tenable 已直接從所測試產品的安全公告擷取前置描述區塊。
請注意,Nessus 並未測試這些問題,而是僅依據應用程式自我報告的版本號碼作出判斷。
解決方案
執行 'yum update gstreamer1-plugins-good' 以更新系統。
Plugin 詳細資訊
檔案名稱: 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