简介
远程 Amazon Linux 2 主机缺少安全更新。
描述
远程主机上安装的 freerdp 版本低于 2.11.7-1。因此,该软件受到 ALAS2-2026-3239 公告中提及的多个漏洞影响。
FreeRDP 是远程桌面协议的免费实现。在 3.24.0 之前,由于缺少 H.264 metablock regionRects 坐标的水平边界验证,FreeRDP 客户端的 AVC420/AVC444 YUV 到 RGB 转换路径中会发生客户端堆缓冲区溢出。在 yuv.c 文件中,clamp() 函数(第 347 行)仅会根据图像区域的 YUV 高度来验证 top/bottom 的有效性,却从未根据图像区域的宽度来检查 left/right 的有效性。当 avc420_yuv_to_rgb(第 67 行)使用 rect->left 计算目标和源指针时,它会执行未经检查的指针运算,这可能导致访问超出已分配表面缓冲区范围。恶意服务器发送具有 AVC420 编解码器的 WIRE_TO_SURFACE_PDU_1,该编解码器包含 regionRects 条目,其左侧大大超出了表面宽度(例如,128px 表面上的 left=60000)。H.264 比特流解码成功后,yuv420_process_work_callback 会调用 avc420_yuv_to_rgb,该函数计算 pDstPoint = pDstData + rect->top * nDstStep + rect->left * 4,并将 16 字节的 SSE 向量写入到已分配堆区域之外 1888+ 字节的位置。此漏洞已在 3.24.0 中修复。(CVE-2026-29774)
FreeRDP 是远程桌面协议的免费实现。在 3.24.0 之前的版本中,由于 bitmap_cache_put 中的差一边界检查,FreeRDP 的位图缓存子系统中会发生客户端堆越界读取/写入。恶意服务器可以发送一个 cacheId 等于 maxCells 的 CACHE_BITMAP_ORDER (Rev1),从而绕过保护机制,访问位于已分配数组之外一个元素处的 cells[]。此漏洞已在 3.24.0 中修复。(CVE-2026-29775)
FreeRDP 是远程桌面协议的免费实现。在 3.24.0 之前,FreeRDP 核心库的 update_read_cache_bitmap_order 函数中的整数下溢 此漏洞在 3.24.0 中已修复。
(CVE-2026-29776)
FreeRDP 是远程桌面协议的免费实现。在 3.24.0 之前,IMA-ADPCM 和 MS-ADPCM 音频解码器中存在一个 size_t 下溢问题,可通过 RDPSND 音频通道导致堆缓冲区溢出写入。在 libfreerdp/codec/dsp.c 中,IMA-ADPCM 和 MS-ADPCM 解码器在未检查下溢的情况下,从一个 size_t 变量中减去块头大小。当 nBlockAlign(从服务器接收)被设置为使 size % block_size == 0 时,会在 size 小于头部大小(4 或 8 字节)的位置触发头部解析,此时该减法会导致 size 回绕为 ~SIZE_MAX。随后,while (size > 0) 循环将以一个天文数字级别的迭代次数继续执行。此漏洞已在 3.24.0 中修复。(CVE-2026-31883)
FreeRDP 是远程桌面协议的免费实现。在 3.24.0 之前,当 nBlockAlign 为 0 时,MS-ADPCM 和 IMA-ADPCM 解码器中存在除零,从而导致崩溃。在 libfreerdp/codec/dsp.c 中,两个 ADPCM 解码器使用 size % block_size,其中 block_size = context->common.format.nBlockAlign。nBlockAlign 值来自 RDPSND 通道上的“服务器音频格式”PDU。在到达解码器之前,数值 0 并未在任何地方经过验证。当 nBlockAlign = 0 时,模运算造成 SIGFPE(浮点异常)崩溃。此漏洞已在 3.24.0 中修复。(CVE-2026-31884)
FreeRDP 是远程桌面协议的免费实现。在 3.24.0 之前,由于未检查输入数据中的 predictor 和 step_index 值,MS-ADPCM 和 IMA-ADPCM 解码器中存在越界读取。此漏洞已在 3.24.0 中修复。(CVE-2026-31885)
FreeRDP 是远程桌面协议的免费实现。在 3.24.0 之前版本中,当 SrcSize 为 0 时,freerdp_bitmap_decompress_planar 中存在越界读取。函数会取消引用 *srcp(指向 pSrcData),而不会首先验证 SrcSize >= 1。当 SrcSize 为 0 且 pSrcData 是非NULL,则读取超过源缓冲区终点的一个字节。此漏洞已在 3.24.0 中修复。
(CVE-2026-31897)
Tenable 已直接从测试产品的安全公告中提取上述描述块。
请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。
解决方案
运行“yum update freerdp”或“yum update --advisory ALAS2-2026-3239”以更新系统。
插件详情
文件名: al2_ALAS-2026-3239.nasl
代理: unix
支持的传感器: Frictionless Assessment AWS, Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Continuous Assessment, 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:P/RL:O/RC:C
漏洞信息
CPE: p-cpe:/a:amazon:linux:freerdp-debuginfo, cpe:/o:amazon:linux:2, p-cpe:/a:amazon:linux:freerdp-devel, p-cpe:/a:amazon:linux:freerdp, p-cpe:/a:amazon:linux:libwinpr, p-cpe:/a:amazon:linux:freerdp-libs, p-cpe:/a:amazon:linux:libwinpr-devel
必需的 KB 项: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list
易利用性: Exploits are available