Rsync 3.5:路径和 daemon 协议一次审计,33 个洞
Samba 把 3.5.0 的 NEWS 写在 2026-08-13。作者直接说这是 extraordinary:要处理的安全问题量,没有那一圈人帮忙会压垮发布。Trail of Bits 的 Patch the Planet、Greg Kroah-Hartman、一串外部研究员都记了名。CVE 由 VulnCheck 当 CNA 发,引入版本区间比「3.5 之前全中」窄,别自己脑补。
HIGH 里几条够用:
- CVE-2026-53802 / 53803:操作者提供的输入/输出路径跟 symlink。
--filter合并文件、--files-from、密码文件、--log-file、--write-batch、daemon motd/lock/config。修法是逐级openat(O_PATH|O_NOFOLLOW),只允许 uid 0 或 euid 拥有的 symlink 组件。 - CVE-2026-53783:
rrsync用realpath()校验完再拿原路径 exec,TOCTOU。Linux 上改成 inode pin +/proc/self/fd。 - CVE-2026-53791:
proxy protocol = true时直连客户端也能丢 PROXY 头伪装源地址,绕 host ACL。现在只信配置里的可信代理。 - CVE-2026-70461 / 70458 / 70456:daemon 协议 fuzz 出来的堆写,Greg KH 报的,都能从线上走到 WRITE。
- 还有未认证挂死占满
max connections、Zstd worker 数量、hosts deny 解析失败放行。
行为也变了:非 daemon 接收端只跟 uid 0 或当前用户拥有的目标目录 symlink;--insecure-links 才回到无条件跟随。每个修都进了测试套件,未修树上要失败。
自用:备份脚本、daemon 模块、rrsync 限制账户,先看发行版有没有 3.5.0。源码在 rsync.samba.org。别在修完之前对不可信 peer 开 --relative、乱给 --partial-dir、把 use chroot = no 当默认。