简介
远程 Amazon Linux 2023 主机缺少安全更新。
描述
因此,该软件受到 ALAS2023-2026-2012 公告中提及的多个漏洞影响。
AVC444 YUV 缓冲区分配中存在堆缓冲区溢出写入
在 libfreerdp/codec/h264.c 中,avc444_ensure_buffer() 使用 UINT32 算术计算 AVC444 YUV444 中间缓冲区大小的计算为:piDstSize[x] = piDstStride[x] * padDstHeight。当真乘积超过 UINT32_MAX 时,该值将换行为非零小整数。唯一的保护措施是如果 (piDstSize[x] == 0) 返回 FALSE,则非零封装传递。然后,winpr_aligned_recallo() 会分配一个过小的缓冲区,而 yuv444_context_decode() - YUV420CombineToYUV444() 会使用实际步幅和矩形维度写入,进而造成堆缓冲区溢出写入。
行 498-499 处的重新分配触发器正确地比较 1ull * piMainStride[0] * padDstHeight(64 位),但第 504 行处的分配仍使用 32 位乘法。(CVE-2026-55191)
由于解码器/表面尺寸不匹配,H.264 YUV 到 RGB 转换中存在越界读取
在 h264->subsystem->Decompress() 返回后,所有主要的 H.264 后端都会使用由 H.264 位流 SPS 调整大小的解码器内部 YUV 缓冲区覆盖 h264->pYUVData 和 h264->iStride。这些尺寸永远不会与存储在 h264->width / h264->height 中的 RDPGFX 表面尺寸进行比较。
areRectsValid() 根据传递到 avc420_decompress() / avc444_decompress() 的表面宽度/高度来验证区域矩形。后续的 YUV-RGB 转换(yuv420_context_decode - avc420_yuv_to_rgb 或 avc444_yuv_to_rgb)针对较小的解码器大小的 YUV 平面消耗这些表面大小的矩形,从而在两个轴上造成越界读取。
clamp() 仅限制使用 MIN(context->height, srcHeight) 的 rect.top/rect.bottom,其中 srcHeight 为 h264->height(FFmpeg/OpenH264/MediaCodec 路径上的表面高度)。它不会限制 rect.left/rect.right。
check_rect() 只会在 YUV444 组合路径上调用,而不会在 AVC420/AVC444 RGB 转换路径上调用。
(CVE-2026-55192)
由于未限制 bind_ack max_xmit_frag,TS 网关 RPC 片段接收中发生堆缓冲区溢出写入
在 TS 网关连接上,rpc->max_recv_frag 被初始化为 0x0FF8 (4088),并将 ReceiveFragment 分配到该大小。在 rpc_bind.c 中,客户端从服务器分配 rpc->max_recv_frag = header.bind_ack.max_xmit_frag,但没有上限。恶意网关可设置 max_xmit_frag = 0xFFFF 而 ReceiveFragment 永远不会调整大小。
之后,rpc_client.c 拒绝包含 if (header.frag_length > rpc->max_recv_frag) 的片段。当两个值均为 65535 时,检查通过(65535 > 65535 为 false)。然后,接收循环将 rpc_channel_read() - BIO_read() 调用到固定的 4088 字节 ReceiveFragment 中,从而写入多达 65535 字节并溢出多达 61447 个受攻击者控制的字节。(CVE-2026-55193)
由于 alloc_hint 容量不匹配,TS 网关 RPC RESPONSE 重组中存在堆缓冲区溢出写入
在 rpc_client_recv_fragment() 中,当重组 PTYPE_RESPONSE PDU 时,客户端仅使用服务器声明的 alloc_hint 调用 Stream_EnsureCapacity(pdu->s, response->alloc_hint)。
如果现有容量已经 >= alloc_hint,而不考虑当前写入偏移量或即将复制的实际存根长度,则 Stream_EnsureCapacity() 会返回成功。
恶意网关可设置小 alloc_hint(比如 100)同时发送大片段(frag_length = 6000,生成 StubLength [?] 5968)。4096 字节重组缓冲区未增长,Stream_Write(pdu->s, ..., StubLength) 将攻击者控制的 stub 数据复制到堆分配末尾后的位置。在默认版本中,这可能会通过 WINPR_ASSERT 中止;在发布版本 (NDEBUG) 上,断言被省略,并且溢出变成可利用的堆写入。
这与单独的 ReceiveFragment / bind_ack max_xmit_frag 问题(同一网关模块中的不同缓冲区和代码路径)不同。(CVE-2026-55194)
通过特制字形片段造成的 glyph_cache_get 中的越界读取
恶意 RDP 服务器可通过字形缓存在 FreeRDP 客户端中触发越界堆读取。
glyph_cache_get() 使用 >(应使用 >=)对索引进行边界检查,同级 glyph_cache_put() 已经正确处理。由于缓存的条目数组恰好保存数字指针,因此等于数字的索引会滑过检查,并读取超出末尾的一个槽,然后调用方将其取消引用为字形。它是 CVE-2020-11098 的读取端孪生(写入端被固定回 2.1.2;读取端从未固定过),并且它仍然存在于 3.25.0 和 master 中。(CVE-2026-55564)
freerdp_image_copy_from_icon_data 绕过边界检查中的整数溢出 (CVE-2026-55648)
FreeRDP RemoteFX (RFX) 缓存位图 V3 解码中的堆越界写入 - 恶意 RDP 服务器在连接的客户端中实现受控的“$pc”(CVE-2026-55827)
由于未正确同步 channel_callback 访问,3.22.0 之前的 FreeRDP 在 dvcman_channel_close 和 dvcman_call_on_receive 中包含释放后使用漏洞。恶意的 RDP 服务器可通过同时发送 DYNVC_DATA 和 DYNVC_CLOSE 消息触发争用条件,导致 drdynvc 客户端线程中发生堆释放后使用,进而可能造成远程代码执行或拒绝服务。(CVE-2026-56297)
相机设备枚举器服务器 (rdpecam) 中通过未终结的 DeviceName / VirtualChannelName 造成的越界读取 (CVE-2026-57157)
planar_decompress_plane_rle_only:堆 OOB 读取 - 针对 CVE-2026-23530 的修复不完整
CVE-2026-23530 (GHSA-r4hv-852m-fq7p) 的补丁正确地在 freerdp_bitmap_decompress_planar 的入口点添加了维度保护,但在 scope.planar_decompress_plane_rle_only 取消引用中不完整
* 在验证 srcp 是否在 SrcSize 范围内之前,先执行 srcp。恶意服务器可通过 truncatedRLE 平面负载在 RDPGFX_CMDID_WIRETOSURFACE_1 到达此路径。(CVE-2026-57158)
Tenable 已直接从测试产品的安全公告中提取上述描述块。
请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。
解决方案
运行“dnf update freerdp --releasever 2023.12.20260803”或“dnf update --advisory ALAS2023-2026-2012 --releasever 2023.12.20260803”以更新系统。
插件详情
文件名: al2023_ALAS2023-2026-2012.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:N/A:H
时间矢量: CVSS:3.0/E:P/RL:O/RC:C
Threat Vector: CVSS:4.0/E:P
Vector: CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/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
易利用性: Exploits are available