Debian 因 33 个 CVE 对 rsync 进行重大升级

Lobsters Hottest 新闻

摘要

Debian 安全维护者 Samuel Henrique 将 rsync 升级到 3.5.0,而不是回移补丁来修复 33 个 CVE,此举引入了行为变更,包括更严格的符号链接处理、更严格的 rsyncd 访问控制,以及 rsync-ssl 中的证书验证。

<strong>apt-listchanges --which=both -f text --since=3.4.1+ds1-5+deb13u4 <br> /var/cache/apt/archives/rsync_3.5.0+ds1-0+deb13u1_amd64.deb apt-listchanges: Reading changelogs... apt-listchanges: News</strong> <p>rsync (3.5.0+ds1-0+deb13u1) trixie-security; urgency=medium</p> <p>为了修复 33 个 CVE,我决定将软件包升级到 3.5.0,而不是逐个回移所有补丁。在分析了此次升级带来的额外变更(这些变更不包含在 CVE 修复中)之后,我得出结论:与另一种方案相比,这种方法风险更低。</p> <p>本次更新包含行为变更,所有变更均源自 CVE 修复本身,并非仅由版本升级引起。以下列出最可能导致现有配置失效的变更;完整列表见 /usr/share/doc/rsync/NEWS.md.gz。</p> <p>运维人员提供的路径将不再通过不受信任的符号链接进行解析。目标目录以及 --backup-dir、--temp-dir、--partial-dir、--link-dest、--compare-dest、--copy-dest、--log-file、--password-file、--files-from、--include-from、--exclude-from、--write-batch、--read-batch 和 --filter 合并文件的参数,现在都按路径分量逐一解析,仅在符号链接属于 root 或运行 rsync 的用户时才跟随;属于其他任何用户的符号链接将被拒绝,并提示 "refusing to follow a symlink owned by an untrusted user"。--insecure-links 可恢复旧行为,但仅对本地生效,守护进程(daemon)永远不会遵循它。对于受信任的单一模块,请在该模块中设置 "insecure links = yes"。</p> <p>rrsync 在每次调用时都会拒绝 --debug。当被限制在某个子目录内时,它还会拒绝 --copy-unsafe-links,传递新的 --confine-root 使服务器不会解析到该目录之外的客户端指定的 filter 合并文件,并在接收时传递 --drop-D,这样上传将无法在该目录中创建设备或特殊文件("skipping non-regular file")。除此之外,普通的 "rsync -a" 仍然可以正常工作。</p> <p>--chmod=a+s 现在会同时设置 setuid 和 setgid 位,与 chmod(1) 保持一致;此前仅设置 setuid。</p> <p>rsyncd 中可能改变谁能访问的变更:</p> <ul> <li>在没有 "proxy protocol hosts" 的情况下配置 "proxy protocol = true",现在会拒绝所有连接并在启动时发出警告,而不是信任客户端提供的 PROXY 头。</li> <li>当已配置的主机名无法解析时(默认使用 "forward lookup"),"hosts deny" 现在会采取默认拒绝(fail closed)策略,因此之前被无法解析的拒绝条目放行的主机现在会被阻止。</li> <li>以逗号开头的 "auth users" 值现在仅按逗号分隔,与文档一致,因此包含空格的组名在 deny 或 :ro 规则中此前被静默忽略,现在会生效。</li> <li>"hosts allow" / "hosts deny" 的模式现在也会在 [...] 括号表达式内进行大小写折叠,因此类似 [A-Z]* 的规则可以匹配此前被遗漏的主机。</li> <li>客户端请求的 --compress-threads 上限为 8。</li> </ul> <p>rsync-ssl 现在会验证服务器证书。默认的 openssl 后端还会将其绑定到所请求的主机名,因此对其他名称有效的证书现在会被拒绝。stunnel 和 gnutls 后端在设置 RSYNC_SSL_CA_CERT,或设置 RSYNC_SSL_ALLOW_INSECURE_STUNNEL=1 / RSYNC_SSL_ALLOW_INSECURE_GNUTLS=1 以选择退出之前,将拒绝运行。</p> <p>-- Samuel Henrique <a href="mailto:[email protected]" rel="ugc">[email protected]</a> Tue, 15 Sep 2026 18:46:30 -0700</p>
查看原文
查看缓存全文

缓存时间: 2026/10/01 02:19

# 因 33 个 CVE,Debian 进行了 rsync 大版本升级 来源:https://lobste.rs/s/sqyhgt/major_rsync_upgrade_debian_because_33 **apt-listchanges --which=both -f text --since=3.4.1+ds1-5+deb13u4 /var/cache/apt/archives/rsync_3.5.0+ds1-0+deb13u1_amd64.deb apt-listchanges: 正在读取更新日志…… apt-listchanges: 新闻** rsync (3.5.0+ds1-0+deb13u1) trixie-security;紧急程度:medium 为了修复 33 个 CVE,我决定将该软件包升级到 3.5.0,而不是逐个移植补丁。在分析了本次升级引入的、不包含在 CVE 修复中的额外变更后,我得出结论:与逐个移植补丁相比,这种做法的风险更低。 本次更新包含行为变更,而这些变更全部源自 CVE 修复本身,并非版本升级所独有。最有可能导致现有配置失效的变更列在此处;完整列表请参见 /usr/share/doc/rsync/NEWS.md.gz。 由操作者提供的路径不再跟随不可信的符号链接。目标目录以及 --backup-dir、--temp-dir、--partial-dir、--link-dest、--compare-dest、--copy-dest、--log-file、--password-file、--files-from、--include-from、--exclude-from、--write-batch、--read-batch 和 --filter 合并文件的参数,现在都按路径分量逐级解析;只有当符号链接的所有者是 root 或运行 rsync 的用户时才会跟随该链接;其他所有者拥有的符号链接将被拒绝,并提示 "refusing to follow a symlink owned by an untrusted user"。--insecure-links 可以恢复旧行为,但它仅对本地操作生效,守护进程永远不会遵循它。如果只有一个可信模块,请在该模块中设置 "insecure links = yes"。 rrsync 现在每次调用都会拒绝 --debug。当被限制在某个子目录时,它还会拒绝 --copy-unsafe-lintks,传递新的 --confine-root 以便服务端不会在该目录之外解析客户端指定的过滤合并文件,并在接收数据时传递 --drop-D,从而阻止上传在该目录中创建设备文件或特殊文件(提示 "skipping non-regular file")。普通的 "rsync -a" 则仍然可以正常工作。 --chmod=a+s 现在会同时设置 setuid 和 setgid 位,与 chmod(1) 保持一致;此前它只会设置 setuid。 可能影响谁能连接进来的 rsyncd 变更: - 未配置 "proxy protocol hosts" 时使用 "proxy protocol = true",现在会拒绝所有连接并在启动时发出警告,而不是信任客户端提供的 PROXY 头。 - 当配置的主机名无法解析时(默认情况下为 "forward lookup"),"hosts deny" 现在会采用 fail-closed 策略,因此此前因 deny 条目无法解析而被放行的主机现在会被阻止。 - 以逗号开头的 "auth users" 值现在按照文档说明仅以逗号分隔,因此此前被静默忽略的、针对名称中包含空格的组所设置的 deny 或 :ro 规则现在会生效。 - "hosts allow" / "hosts deny" 的模式匹配现在对 [...] 括号表达式内的内容也会进行大小写折叠,因此像 [A-Z]* 这样的规则会匹配到它过去所遗漏的主机。 - 客户端请求的 --compress-threads 上限为 8。 rsync-ssl 现在会验证服务器证书。默认的 openssl 后端还会将证书与所请求的主机名绑定,因此适用于其他名称的证书现在会被拒绝。stunnel 和 gnutls 后端除非设置了 RSYNC_SSL_CA_CERT,或设置 RSYNC_SSL_ALLOW_INSECURE_STUNNEL=1 / RSYNC_SSL_ALLOW_INSECURE_GNUTLS=1 来显式放弃安全检查,否则拒绝运行。 —— Samuel Henrique [[email protected]](mailto:[email protected]) 2026 年 9 月 15 日星期二 18:46:30 -0700

相似文章

rsync 与愤怒

Lobsters Hottest

Rsync 维护者 Andrew Tridgell 为其使用 AI 工具(Claude, Codex, Gemini)以提升安全性并重写测试套件的行为进行辩护,回应了来自开源社区的强烈反对。

Linux 内核中发现多个漏洞

Hacker News Top

Debian 发布了安全公告 DSA-6528-1,针对其 Linux 内核软件包,公开并修补了大量涵盖 2024 年至 2026 年的 CVE 漏洞。此次更新修复了众多内核漏洞,建议用户及时应用该安全修复。

OpenSSH 10.6 发布

Hacker News Top

OpenSSH 10.6(10.6p1)已于 2026-10-06 发布,包含多项安全修复、对 scp -R 和旧平台 sshd 支持的弃用通知,以及更严格的用户名和路径校验。开发团队特别指出 AI 辅助安全漏洞报告数量激增,并表示 AI 发现的漏洞往往会被独立地再次发现,因此他们将更频繁地发布版本,以便更快地推出修复。