CVE-2025-62672CVE-2025-62672 是 rplay 网络音频播放系统中的一个高危远程拒绝服务漏洞,影响 rplay 3.3.2 及之前所有版本。rplay 是一款基于 UDP 协议的局域网音频流播放工具,允许多个客户端通过网络向服务端发送音频数据进行同步播放。该漏洞存在于 rplay 守护进程的协议解析模块中,具体位于 librplay/rplay.c 文件的 rplay_unpack 函数内。当服务端接收到包含 RPLAY_DATA 命令类型的网络数据包时,函数在处理该数据时会调用 memcpy 进行内存拷贝操作,但由于缺乏对输入数据长度和目标缓冲区边界的充分校验,攻击者可以通过构造恶意的数据包触发 SIGSEGV 信号,导致守护进程崩溃,从而实现拒绝服务攻击。该漏洞的 CVSS 3.1 评分为 5.3,属于中危级别。值得注意的是,该漏洞无需任何身份认证即可通过网络远程利用,攻击复杂度极低,且不需要用户交互,使得该漏洞在实际网络环境中具有较高的可利用性和潜在危害。攻击者只需向运行 rplay 服务的 UDP 端口(默认为 5555)发送一个精心构造的恶意数据包,即可使目标系统的音频播放服务完全中断,对于依赖 rplay 进行背景音乐播放的场所(如餐厅、商场、办公环境等)可能造成业务影响。
该漏洞的根本原因在于 rplay_unpack 函数在处理 RPLAY_DATA 类型的数据包时,未能正确验证输入数据的边界条件。具体而言,当 rplay 守护进程接收到一个 UDP 数据包时,会调用 rplay_unpack 函数对其进行解析。在 RPLAY_DATA 分支处理中,代码使用 memcpy 将接收到的数据复制到内部缓冲区,但未对数据长度字段进行充分校验。攻击者可以构造一个包含异常长度值或畸形数据结构的 RPLAY_DATA 数据包,使得 memcpy 在执行拷贝操作时访问无效的内存地址,从而触发段错误(SIGSEGV)。由于 rplay 协议默认监听在 UDP 端口 5555 上,且服务端不对客户端进行身份认证,任何能够通过网络访问到该端口的攻击者都可以利用此漏洞。漏洞利用的技术要点包括:1)了解 rplay 协议的数据包格式,包括命令类型字段和长度字段;2)构造符合 RPLAY_DATA 命令类型的 UDP 数据包;3)在数据包中设置异常的缓冲区长度值,使得 memcpy 操作访问越界内存或空指针;4)将构造好的数据包发送至目标主机的 rplay 服务端口。漏洞触发后,rplay 守护进程将立即崩溃,所有依赖该服务的音频播放功能将完全中断。由于该漏洞可能存在其他未明确的影响(unspecified other impact),不排除在特定条件下被利用实现更严重攻击的可能性。