概要
遠端 Amazon Linux 2023 主機缺少一個安全性更新。
說明
因此,它會受到 ALAS2023-2026-2111 公告中所提及的多個弱點影響。
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.29.0 無法在處理 http_response_recv_body() 中的 Transfer-Encoding: chunked HTTP 回應時強制執行RESPONSE_SIZE_LIMIT。控制惡意 RD 閘道端點的攻擊者可傳送過大的區塊回應本文,以耗盡用戶端記憶體資源,而不會觸發設定的大小限制。(CVE-2026-67297)
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.29.0 (受影響的版本 <= 3.28.0) 在 rdpecam 相機重新導向用戶端中包含除以零弱點。 ecam_dev_process_start_streams_request() 會剖析來自 StartStreamsRequest PDU 的伺服器控制CAM_MEDIA_TYPE_DESCRIPTION,但只會驗證 Format 和 Flags,而不驗證 FrameRateDenominator。當惡意或遭入侵的 RDP 伺服器傳送 FrameRateDenominator 設為零的 StartStreamsRequest 時,ecam_encoder_context_init() (channels/rdpecam/client/encoding.c) 會計算 FrameRateNumerator / FrameRateDenominator,造成整數除以零 (SIGFPE) 並終止 FreeRDP 用戶端處理程序。必須在用戶端上啟用相機重新導向,才能連線通道。已在 FreeRDP 3.29.0中修正。(CVE-2026-67302)
FreeRDP 之前 3.29.0 在 channels/serial/client/serial_main.c 的 serial_process_irp_device_control() 中包含可連線的判斷提示 (WINPR_ASSERT(OutputBufferLength == BytesReturned))。當啟用序列裝置重新導向,且伺服器控制的 IRP_MJ_DEVICE_CONTROL 要求指定具有非零 OutputBufferLength 的不支援 IOCTL 時,CommDeviceIoControl() 可能會以 BytesReturned = 0 失敗,造成不相符觸發宣告並中止用戶端進程 (拒絕服務) 。(CVE-2026-67303)
當讀取器狀態解碼失敗時,FreeRDP 之前 3.29.0 在智慧卡裝置控制要求清除中包含 NULL 指標解除參照弱點。攻擊者可以使用非零 cReader 和截斷的讀取器狀態資料傳送格式錯誤的智慧卡 IRP 要求,透過free_reader_states函式中的 NULL 指標存取來損毀進程。(CVE-2026-67304)
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)
之前的 FreeRDP 3.30.0 在 kerberos_DecryptMessage() 中包含一個越界弱點 (winpr/libwinpr/sspi/Kerberos/kerberos.c)。對等提供的 GSS 包裝權杖 (RFC 4121) 的 16 位元 EC (額外計數) 欄位直接用於指標算術運算中,以定位加密區域,而無需進行邊界檢查,而僅驗證 RRC 和緩衝區總長度。惡意對等體 (伺服器或用戶端) 可在 CredSSP/NLA 驗證期間提供較大的 EC 值 (最多 0xFFFF),將解密作業的基本指標移過 ~60 位元組權杖緩衝區的末端。由於 AES-CTS-HMAC ENCTYPE 會在 HMAC 完整性檢查之前就地解密,因此會導致越界讀取和就地越界寫入,可能導致資訊洩漏、記憶體損毀或拒絕服務。
(CVE-2026-72745)
FreeRDP 之前 3.30.0 在 RDSTLS 交握中包含伺服器端驗證繞過。當伺服器設定為 RdstlsSecurity = TRUE 時,交握會僅根據攻擊者提供的線路 pduType 來分派傳入 PDU,而不會確認收到的 PDU 是目前步驟所需的 PDU。因為 rdpRdstls 物件是calloc歸零,所以其resultCode預設為0 (RDSTLS_RESULT_SUCCESS)。
未經驗證的遠端用戶端可以傳送功能 PDU,而不是所需的驗證要求 PDU;rdstls_process_capabilities() 傳回成功,但從未設定 resultCode,因此伺服器會以攜帶 resultCode SUCCESS 的 AUTHRSP 回應,並將會話視為已驗證,而不評估任何密碼、重新導向 GUID 或自動重新連接 Cookie。這會影響已發行的 FreeRDP 3.x 系列 (例如 3.27.1) 和主 HEAD;在發布公告時,沒有可用的修補版本。
(CVE-2026-72746)
FreeRDP 是遠端桌面通訊協定 (RDP) 的免費實作。在之前 3.30.0,libfreerdp/core/rdstls.c 中的 FreeRDP 伺服器端 RDSTLS 會在 rdstls_server_authenticate 等候RDSTLS_TYPE_AUTHREQ時接受攻擊者提供的 RDSTLS_TYPE_CAPABILITIES PDU,使 resultCode 處於RDSTLS_RESULT_SUCCESS,並允許遠端未經驗證的用戶端繞過 RedirectionGuid、使用者名稱、網域或密碼檢查。3.30.0 版已修正此問題。(CVE-2026-73241)
FreeRDP 是遠端桌面通訊協定 (RDP) 的免費實作。在之前 3.30.0,FreeRDP 的 winpr/libwinpr/sspi/Kerberos/kerberos.c kerberos_DecryptMessage函式在 IOV 指標位移中與 RRC 搭配使用之前,無法綁定對等控制的 GSS 包裝權杖 EC 欄位,從而允許惡意RDP對等體在 CredSSP/NLA Kerberos 解密期間觸發越界讀取和就地寫入。3.30.0 版已修正此問題。(CVE-2026-73242)
Tenable 已直接從所測試產品的安全公告擷取前置描述區塊。
請注意,Nessus 並未測試這些問題,而是僅依據應用程式自我報告的版本號碼作出判斷。
解決方案
執行「dnf update freerdp --releasever 2023.12.20260831」或「dnf update --advisory ALAS2023-2026-2111 --releasever 2023.12.20260831」以更新系統。
Plugin 詳細資訊
檔案名稱: al2023_ALAS2023-2026-2111.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:2023, p-cpe:/a:amazon:linux:freerdp-debuginfo, p-cpe:/a:amazon:linux:freerdp-debugsource, p-cpe:/a:amazon:linux:freerdp-devel, p-cpe:/a:amazon:linux:freerdp-libs-debuginfo, p-cpe:/a:amazon:linux:freerdp-libs, p-cpe:/a:amazon:linux:freerdp-server-debuginfo, p-cpe:/a:amazon:linux:freerdp-server, p-cpe:/a:amazon:linux:freerdp, p-cpe:/a:amazon:linux:libwinpr-debuginfo, 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-67297, CVE-2026-67298, CVE-2026-67299, CVE-2026-67300, CVE-2026-67301, CVE-2026-67302, CVE-2026-67303, CVE-2026-67304, CVE-2026-67306, CVE-2026-68580, CVE-2026-73241, CVE-2026-73242