{"id":"CLSA-2026-1789737518","summary":"rsync: Fix of 8 CVEs","details":"- CVE-2026-70461: count a trailing backslash when sizing the implied-include\n  filter rule, so a --files-from entry ending in a backslash can no longer\n  write one attacker-controlled byte past the rule's heap allocation\n- CVE-2026-70456: reserve the slot read_args() needs for its trailing NULL, so\n  a peer argument count landing exactly on maxargs cannot write one pointer\n  past the argv allocation\n- CVE-2026-70458: refuse FLAG_HLINKED when hard links are not in use and on a\n  directory entry, so a peer cannot displace the checksum slot through\n  hard-link extras that were never reserved; gate the hard-link basis check on\n  S_ISREG(file-\u003emode) so a hard-linked symlink or device cannot read a checksum\n  slot it never had; also set sender_keeps_checksum in the daemon-as-sender\n  path so %C cannot log adjacent heap\n- CVE-2026-70462: reject a non-positive MSG_IO_TIMEOUT from the peer and cap it\n  at 24 hours, and make set_io_timeout()'s arithmetic overflow-safe, so a\n  crafted server can neither disable the client's --timeout nor spin it at 100%\n  CPU on a negative select() timeout\n- CVE-2026-70453: bound the hash_search() chain walk at MAX_CHAIN_LEN, so a\n  basis file whose weak checksums all collide cannot drive an\n  O(file_size * chain_length) scan\n- CVE-2026-53785: create each implied parent directory through do_mkdir_at()\n  against a held O_NOFOLLOW directory fd, so a parent component raced into a\n  symlink can no longer place --relative directories outside the destination\n- CVE-2026-53794: reject --max-alloc=0, which disabled the per-allocation size\n  cap entirely instead of enforcing a zero one\n- CVE-2026-53790: shell-escape %VAR% expansions for their quoting context in\n  the daemon's exec hooks and refuse a peer value holding shell syntax, quote\n  the program names the rsync-ssl helper execs, and widen the remote-shell\n  safe_arg() escape set","modified":"2026-10-26T09:43:29.663654981Z","published":"2026-09-18T13:18:55Z","upstream":["CVE-2026-53785","CVE-2026-53790","CVE-2026-53794","CVE-2026-70453","CVE-2026-70456","CVE-2026-70458","CVE-2026-70461","CVE-2026-70462"],"references":[{"type":"ADVISORY","url":"https://errata.tuxcare.com/els_os/almalinux9.2esu/CLSA-2026-1789737518.html"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-53785"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-53790"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-53794"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-70453"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-70456"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-70458"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-70461"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-70462"}],"affected":[{"package":{"name":"rsync","ecosystem":"TuxCare:AlmaLinux:9.2","purl":"pkg:rpm/tuxcare/rsync?distro=almalinux-9.2"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.2.3-19.el9_2.tuxcare.els16"}]}],"database_specific":{"source":"https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.2esu/CLSA-2026-1789737518.json"}},{"package":{"name":"rsync-daemon","ecosystem":"TuxCare:AlmaLinux:9.2","purl":"pkg:rpm/tuxcare/rsync-daemon?distro=almalinux-9.2"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.2.3-19.el9_2.tuxcare.els16"}]}],"database_specific":{"source":"https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.2esu/CLSA-2026-1789737518.json"}}],"schema_version":"1.9.0"}