Rsync中存在CVE-2024-12084等缓冲区溢出漏洞
Rsync 是linux系统数据镜像备份工具,使用快速增量备份工具Remote Sync可远程同步,支持本地复制,或与其他SSH、rsync主机同步。
Rsync支持高效的增量备份,通过比较源和目标文件的差异,只传输更改过的部分,从而节省带宽和时间,支持匿名传输,便于网站镜像。
Rsync支持本地和远程文件传输,常用于备份、同步和部署任务,Rsync独有的算法原理及Rsync对算法实现的机制比想象中要复杂一些。
一、基本情况
Rsync可以实现增量备份的工具,通过配合任务计划,Rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。
Rsync可以实现scp的远程拷贝(rsync不支持远程到远程的拷贝,但scp支持)、cp的本地拷贝、rm删除和"ls -l"显示文件列表等诸多功能。
栋科技漏洞库关注到Rsync发布安全公告,确认其服务端进程Rsyncd存在缓冲区溢出漏洞,漏洞追踪为CVE-2024-12084,CVSS评分9.8。
Rsync 还存在CVE-2024-12084、CVE-2024-12085、CVE-2024-12086、CVE-2024-12087、CVE-2024-12088、CVE-2024-12747漏洞。
二、漏洞分析
CVE-2024-12084
CVE-2024-12084是在Rsync守护程序发现的基于堆的缓冲区溢出缺陷,源于代码中攻击者控制的校验和长度(s2length)处理不当所致。
当MAX_DIGEST_LEN超过固定的SUM_LENGTH(16字节)时,攻击者可以在sum2缓冲区中写入越界数据,从而触发堆内存溢出问题。
除了CVE-2024-12084缓冲区溢出漏洞之外,Rsync 还存在如下漏洞:
CVE-2024-12085
CVE-2024-12085是Rsync守护进程中存在的信息泄露漏洞,该漏洞是CVSS评分为7.5分,当 Rsync 比较文件校验和时,就会触发该缺陷。
攻击者可以通过操纵校验和长度(s2length),以在校验和与未初始化的内存之间进行比较,并且一次泄漏一个字节的未初始化堆栈数据。
CVE-2024-12086
CVE-2024-12086是Rsync存在的文件泄露漏洞,该漏洞的CVSS评分为6.1分,攻击者可以构造校验和,逐字节枚举客户端任意文件内容。
具体而言,CVE-2024-12086漏洞可能允许服务器枚举客户端机器上任意文件的内容,将文件从客户端复制到服务器时就会复现这一漏洞。
在此过程中,Rsync服务器会将本地数据的校验和发送到客户端进行比较,以确定哪些数据需要发送到服务器。
通过发送为任意文件专门构造的校验和值,攻击者能够根据客户端的响应逐字节重建这些文件的数据。
CVE-2024-12087
CVE-2024-12087是Rsync存在的路径遍历漏洞,CVSS评分为6.5,恶意服务器可以利用符号链接绕过,将文件写入客户端的非目标目录。
这一漏洞源于“- inc-recursive”选项启用的行为,这是许多客户端选项的默认启用选项,即使客户端没有明确的启用,服务器也可以启用它。
使用“- inc-recursive”时若未正确符号链接验证,并对每个文件列表进行重复数据消除检查,服务器可能将文件写入客户端预期目标目录外。
恶意服务器可以将恶意文件写入客户端上以有效目录/路径命名的任意位置。
CVE-2024-12088
CVE-2024-12088是Rsync存在的路径遍历漏洞,CVSS评分6.5,使用`--safe-links`选项时未正确验证符号链接目标,导致路径遍历漏洞。
具体而言,当使用`- safe-links '选项时,Rsync无法正确验证一个符号链接目标中是否包含另一个符号链接,可能将文件写入非预期目录。
CVE-2024-12747
CVE-2024-12747是Rsync存在的一个符号链接竞态条件漏洞,该漏洞的CVSS评分为5.6分,漏洞源于rsync处理符号链接时的竞争情况。
Rsync在遇到符号链接时的默认行为是跳过它们,攻击者在适当的时候用符号链接替换常规文件,就有可能绕过默认行为并遍历符号链接。
根据rsync进程的权限,攻击者可利用时机绕过默认行为,泄露敏感信息并可能导致权限提升,因此可能泄漏敏感信息可能导致权限提升。
需要注意的是,缓冲区溢出漏洞(CVE-2024-12084)与信息泄露漏洞(CVE-2024-12085)可联合利用,攻击者可能实现远程代码执行。
三、影响范围
CVE-2024-12084(缓冲区溢出漏洞):3.2.7=
CVE-2024-12085(信息泄露漏洞):Rsync < 3.4.0
CVE-2024-12086(文件泄露漏洞):Rsync < 3.4.0
CVE-2024-12087(路径遍历漏洞):Rsync < 3.4.0
CVE-2024-12088(路径遍历漏洞):Rsync < 3.4.0
CVE-2024-12747(符号链接竞态条件漏洞):Rsync < 3.4.0
四、修复建议
1、目前该漏洞已经修复,请尽快下载并升级至最新版本
2、临时措施
CVE-2024-12084,禁用SHA*支持,使用以下编译选项:
CFLAGS=-DDISABLE_SHA512_DIGEST 和 CFLAGS=-DDISABLE_SHA256_DIGEST。
CVE-2024-12085,编译时使用 -ftrivial-auto-var-init=zero,将栈内容初始化为零,以防止信息泄露。
CVE-2024-12086,限制对客户端文件内容的访问,确保服务器仅能够访问授权的文件。
CVE-2024-12087,禁用--inc-recursive选项或强化符号链接验证,确保文件写入仅限于目标目录内。
CVE-2024-12088,加强对--safe-links选项下符号链接目标的验证,避免路径遍历漏洞的发生。
CVE-2024-12747,通过增强符号链接处理中的竞态条件保护,避免攻击者绕过默认行为并泄露敏感信息。
五、参考链接