CVE-2026-43620Rsync 3.4.2及更早版本存在接收端越界读取漏洞。该漏洞位于receiver.c的recv_files()函数中,允许恶意服务器导致rsync客户端崩溃。攻击者通过设置CF_INC_RECURSE标志并发送特制文件列表(首个条目非前导点目录,且ndx=0)来触发漏洞。这会导致接收端在指针数组前读取8字节并解引用无效指针,造成客户端进程确定性崩溃(SIGSEGV)。
漏洞的根源在于Rsync客户端在处理接收文件时的逻辑缺陷。当攻击者控制的服务器设置了CF_INC_RECURSE兼容性标志时,客户端会进入特定的处理流程。漏洞触发条件要求发送的文件列表中,排序后的第一个条目不是前导点目录(即“.”目录)。随后,服务器发送一个索引(ndx)为0的传输记录,且该记录的iflag字段不包含ITEM_TRANSFER标志。在这种情况下,`recv_files()`函数中的逻辑错误会导致程序尝试访问位于指针数组起始位置之前的内存。具体来说,程序会读取指针数组前8个字节的数据,并试图将其作为指针进行解引用。由于该地址通常是未映射的或无效的,这会触发段错误(SIGSEGV),导致rsync客户端进程立即终止。这是一个拒绝服务漏洞,虽然主要影响可用性,但越界读取理论上也可能存在信息泄露的风险,尽管主要表现为崩溃。