概要
遠端 Amazon Linux 2 主機缺少安全性更新。
說明
遠端主機上安裝的 freerdp 版本比 2.11.7-1 舊。因此,它會受到 ALAS2-2026-3887 公告中所提及的多個弱點影響。
FreeRDP 之前 3.28.0 會將 RDP 檔案中以正斜線開頭的行視為原始命令列選項,從而將整個 CLI 剖析器表面暴露給不受信任的檔案。攻擊者可以使用 /rdp2tcp、/cert:ignore 或 /drive 選項製作惡意 RDP 檔案,以執行任意命令、繞過憑證驗證或在沒有使用者互動的情況下公開本機檔案系統。(CVE-2026-64624)
之前 3.29.0 的 FreeRDP (受影響版本 <= 3.28.0) 在 tls_verify_certificate()、tls_match_hostname() 和 x509_utils_get_dns_names() 中包含多個TLS憑證身分驗證弱點。由於 FreeRDP 執行自訂通用名稱和 DNS SAN 字串比對,而不是使用 OpenSSL 的長度感知身分驗證 API,因此它 (1) 在內嵌 NUL 位元組處截斷 DNS SAN 值 (接受例如
'victim.example\0.attacker.example' 為 'victim.example')、(2) 即使存在不相符的 DNS SAN 項目,也接受相符的通用名稱,以及 (3) 透過 DNS/CN 比對接受 IP 文字目標,而不比較 iPAddress SAN。在受信任或錯誤核發的憑證鏈下,出示此類憑證的攻擊者可以繞過伺服器身分驗證,進而削弱 TLS 伺服器驗證。
(CVE-2026-66402)
FreeRDP 之前 3.29.0 在智慧卡快取要求解碼器中包含 NULL 指標解除參照弱點,這些解碼器會接受 LookupName 在SCARD_IOCTL_READCACHEA和SCARD_IOCTL_WRITECACHEA作業中的 NULL NDR 指標。啟用智慧卡模擬時,攻擊者可以傳送具有 NULL 查詢名稱指標的特製智慧卡快取要求,以觸發 null 指標上的 strlen(),導致用戶端處理程序終止。(CVE-2026-67288)
之前 (受影響版本 <= 3.28.0) 的 3.29.0 FreeRDP 不會驗證伺服器控制RDP重新導向 TargetNetAddress 欄位中的 CRLF 和控制字元。此值會複製到用戶端的 ServerHostname 中,當用戶端透過 HTTP Proxy 連線時,會透過 http_proxy_connect() 直接寫入 Proxy CONNECT 要求行和 Host 標頭,而不進行篩選。惡意或遭入侵的 RDP 伺服器可傳送包含內嵌控制字元的特製重新導向 PDU,以將任意標頭/要求插入 HTTP 代理 CONNECT 要求。(CVE-2026-67289)
之前 3.29.0 的 FreeRDP (受影響的版本 <= 3.28.0) 在 libfreerdp/cache/glyph.c 的 update_process_glyph_fragments()/glyph_cache_fragment_put() 中包含一個堆積越界讀取。處理GLYPH_FRAGMENT_ADD更新時,程式代碼會讀取一個位元組的伺服器控制宣告片段大小,但在配置和複製該位元組之前,不會確認它是否適合剩餘的接收緩衝區。惡意 RDP 伺服器可能會傳送宣告大小過大的短片段,導致用戶端讀取超出配置的緩衝區,進而造成越界讀取和用戶端損毀。(CVE-2026-67291)
FreeRDP 之前 3.29.0 (受影響的版本 <= 3.28.0) 包含不正確的憑證主機名稱驗證弱點。TLS 主機名稱比對器 (libfreerdp/crypto/tls.c 中的 tls_match_hostname() ) 會將 *.example.com 等萬用字元模式視為比對任何以 .example.com 結尾的主機名稱,因此它錯誤地接受 a.b.example.com 等多標籤子網域的萬用字元憑證 (OpenSSL 的 X509_check_host() 拒絕)。這會削弱萬用字元憑證條件下的 TLS 伺服器驗證。
(CVE-2026-67293)
FreeRDP 會在 3.29.0 用戶端伺服器 TLS 驗證期間不正確驗證對等憑證的擴充金鑰使用 (EKU) 用途。在 x509_utils_verify() 中,當伺服器用途 (X509_PURPOSE_SSL_SERVER) 驗證失敗時,程式碼會回復為用戶端用途和任何用途驗證,因此可以接受僅對 clientAuth 有效的受信任主機名稱相符憑證作為RDP伺服器憑證。在依賴用戶端與伺服器憑證之間 EKU 區隔的環境中,這可讓受信任的 CA 所核發的僅限 clientAuth 憑證繞過伺服器憑證用途驗證。(CVE-2026-67294)
FreeRDP 之前 3.29.0 無法正確驗證磁碟機重新導向中伺服器提供的 RDPDR 路徑,從而允許攻擊者存取已設定的共用根目錄之外的前綴同級路徑。惡意 RDP 伺服器可以傳送略過共用根邊界檢查的非 root 路徑,來讀取、寫入、刪除和列舉同級目錄中的檔案。(CVE-2026-67295)
FreeRDP 版本 3.28.0 和更早版本的伺服器端 RAIL 通道處理常式 (channels/rail/server/rail_main.c 中的 rail_server_handle_messages() ) 中包含堆積緩衝區溢位。處理 RAIL PDU 標頭時,程式碼會從對等控制的 orderLength 欄位中減去 RAIL_PDU_HEADER_LENGTH,而無需先驗證 orderLength 至少是標頭長度。對於 orderLength 值 0..3,這會導致無符號整數反向溢位到非常大的大小,這會繞過 Stream_EnsureRemainingCapacity() 容量檢查 (由於指標算術循環),然後傳遞給 WTSVirtualChannelRead(),從而導致越界堆積寫入。惡意或遭入侵的 RDP 用戶端可利用此弱點來損毀堆積並損毀伺服器。已在 FreeRDP 3.29.0中修正。(CVE-2026-67298)
FreeRDP 之前 3.29.0 在非同步更新訊息 Proxy 中包含用戶端堆積釋放後使用,以便在啟用 AsyncUpdate 時WINDOW_ICON_ORDER使用 (例如 xfreerdp /async-update)。在 update_message_WindowIcon() 中,淺層 CopyMemory() 會以剖析器擁有的 windowIcon->iconInfo 指標覆寫新配置的 lParam->iconInfo。剖析器回呼傳回之後,update_recv_window_info_order() 會釋放 window_icon.iconInfo,但佇列的非同步訊息仍會保留,稍後會分派該過時指標。惡意或已入侵的 RDP 伺服器傳送特製的 RAIL 視窗替代輔助訂單並帶有 WINDOW_ORDER_ICON,可能會觸發釋放後使用,導致記憶體損毀和用戶端當機。(CVE-2026-67299)
FreeRDP 之前 3.29.0 在啟用 AsyncUpdate 時的 RAIL WINDOW_STATE_ORDER 和 NOTIFY_ICON_STATE_ORDER 的非同步更新訊息代理中包含用戶端堆積釋放後使用弱點。當惡意或遭入侵的 RDP 伺服器傳送特製的更新命令時,訊息 Proxy 會淺層複製包含巢狀剖析器擁有指標的結構 (例如 titleInfo.string、windowRects、visibilityRects、圖示緩衝區)。剖析器會在回呼傳回之後釋放這些巢狀緩衝區,因此佇列的非同步訊息稍後會分派過時的指標,這可能會導致記憶體損毀或用戶端損毀。
(CVE-2026-67300)
之前 3.29.0 的 FreeRDP 包含 PolygonSC 和 PolygonCB 主要繪圖順序的非同步更新訊息 Proxy 中的越界讀取弱點。啟用 AsyncUpdate 時 (例如 xfreerdp /async-update),update_message_PolygonSC() 和 update_message_PolygonCB() 會配置新的點陣列,但會從訂單結構的位址複製點資料,而不是從 polygonSC->points / polygonCB->points 複製點資料,導致用戶端越界讀取。惡意或受損的 RDP 伺服器發送特製的 PolygonSC/PolygonCB 更新命令可能會觸發記憶體洩漏或用戶端崩潰。(CVE-2026-67301)
FreeRDP 版本 3.28.0 和更早版本在 libfreerdp/codec/planar.c 中planar_decompress_plane_rle和planar_decompress_plane_rle_only RDP6 平面 RLE 點陣圖解碼器函式中包含越界讀取弱點。只有 1 位元組控制位元組會進行邊界檢查;後續 0-15 攻擊者宣告的原始位元組會被讀取,而無需驗證來源緩衝區是否包含它們。惡意或遭入侵的 RDP 伺服器可以傳送截斷的平面編碼點陣圖或表面更新 (可透過點陣圖更新 PDU 和 RDPGFX 表面命令路徑存取),導致用戶端讀取來源緩衝區的結尾。此問題已在 FreeRDP 3.29.0中修正。(CVE-2026-67306)
FreeRDP 之前 3.29.0 包含跨 ALSA、sndio、WinMM 和 OpenSL ES 後端的音訊輸入重新導向通道 (audin) 中的整數溢位弱點,無法驗證來自 RDP 伺服器的 FramesPerPacket 參數。攻擊者可提供惡意的 FramesPerPacket 值,造成配置大小循環,導致 ALSA 上的堆積型緩衝區溢位或所有平台上的拒絕服務。
(CVE-2026-68580)
Tenable 已直接從所測試產品的安全公告擷取前置描述區塊。
請注意,Nessus 並未測試這些問題,而是僅依據應用程式自我報告的版本號碼作出判斷。
解決方案
執行「yum update freerdp」或「yum update --advisory ALAS2-2026-3887」以更新系統。
Plugin 詳細資訊
檔案名稱: al2_ALAS-2026-3887.nasl
代理程式: unix
支援的感應器: Agentless Assessment, Continuous Assessment, Frictionless Assessment Agent, Frictionless Assessment AWS, Nessus Agent, Tenable Cloud Security, Tenable Self-Hosted Container Security, Nessus
風險資訊
媒介: CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C
媒介: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
時間媒介: CVSS:3.0/E:U/RL:O/RC:C
Threat Vector: CVSS:4.0/E:U
Vector: CVSS:4.0/AV:N/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:freerdp-debuginfo, p-cpe:/a:amazon:linux:freerdp-devel, p-cpe:/a:amazon:linux:freerdp-libs, p-cpe:/a:amazon:linux:freerdp, p-cpe:/a:amazon:linux:libwinpr-devel, p-cpe:/a:amazon:linux:libwinpr
必要的 KB 項目: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list
可輕鬆利用: No known exploits are available
參考資訊
CVE: CVE-2026-64624, CVE-2026-66402, CVE-2026-67288, CVE-2026-67289, CVE-2026-67291, CVE-2026-67293, CVE-2026-67294, CVE-2026-67295, CVE-2026-67298, CVE-2026-67299, CVE-2026-67300, CVE-2026-67301, CVE-2026-67306, CVE-2026-68580