Rsync 3.5 opravil naráz 33 zranitelností, kritickou známku dostala jedna z nich
Nástroj rsync vyšel ve verzi 3.5.0 a jeho autoři ji sami označili za mimořádné vydání. Nejsou za tím nové funkce, ale 33 bezpečnostních chyb zavřených najednou. Kritickou známku dostala jediná z nich: démon se zapnutou podporou protokolu PROXY přijímal jeho hlavičku od kohokoli, takže se přes ni dala podvrhnout zdrojová adresa a obejít pravidla přístupu.

Vývojáři nástroje rsync vydali 13. srpna 2026 verzi 3.5.0 a v poznámkách ji označili za mimořádnou. Nejsou za tím nové funkce. Jedno vydání zavírá 33 bezpečnostních chyb, které se za několik měsíců nasbíraly ze tří míst naráz.
Odkud se těch třiatřicet chyb vzalo
Poznámky k vydání ty tři proudy vyjmenovávají. Prvním je cílený audit dvou míst v kódu: jak rsync zachází s cestami k souborům a jak vypadá protokol jeho démona. Druhým je fuzzing toho protokolu, tedy strojové sypání pokažených dat na vstup a hlídání, kdy se program zachová špatně; nálezy z něj poznámky připisují Gregu Kroahovi-Hartmanovi. Třetím jsou hlášení od výzkumníků mimo projekt, mezi nimi od Filipeho Casala ze společnosti Trail of Bits.
Čísla CVE přidělila firma VulnCheck, která je jednou z organizací pověřených jejich přidělováním (CNA). Poznámky u toho upozorňují na jednu věc, která se z titulků ztrácí: u každého hlášení je uvedeno, ve které verzi chyba vznikla, a ty rozsahy bývají mnohem užší než „všechno před 3.5.0“. Ke každé opravě navíc přibyl regresní test, který na neopravených zdrojích selže.
Souhrn podle závažnosti poznámky neuvádějí, ale dá se sečíst z jejich seznamu: jedna chyba kritická, sedmnáct vysoce závažných a patnáct středních.
Kritická je jediná a jde o hlavičku PROXY
Tou jedinou kritickou je CVE-2026-53791. Týká se démona rsyncu nastaveného volbou proxy protocol = true. Tu správce zapíná tehdy, když před démona staví reverzní proxy a chce v logu i v pravidlech vidět skutečnou adresu klienta místo adresy proxy. Potíž byla v tom, že démon hlavičku PROXY přijal od kohokoli. Kdo se k němu dostal přímo, mimo proxy, mohl si do ní napsat cizí adresu a projít přes pravidla hosts allow a hosts deny. VulnCheck to ohodnotil 9,1 bodu podle CVSS 4.0 a za zasažené označuje všechny verze do 3.4.4 včetně. Opravený démon přijme přeposlanou adresu jen od protistrany, kterou má v konfiguraci uvedenou jako důvěryhodnou proxy.
Nejpočetnější skupina jsou podstrčené symbolické odkazy
Jedenáct nálezů spadá do jediné rodiny, kterou poznámky popisují jednou větou: místní uživatel, který má vliv na některou část cesty, tam podstrčí symbolický odkaz, a rsync s vyššími právy po něm půjde. Prakticky to dopadne dvěma způsoby.
Buď rsync přečte cizí soubor. To je CVE-2026-53802 a týká se souborů se seznamem pravidel u voleb --filter, --files-from, --include-from a --exclude-from, ale i souboru s heslem u --password-file; obsah cizího souboru pak z rsyncu vypadne jako pravidla filtru nebo se odešle démonovi jako odpověď na výzvu k přihlášení. Nebo rsync někam zapíše, což je CVE-2026-53803 a týká se to --log-file, dávkových souborů u --write-batch a několika souborů, které si otevírá démon. Příklad z poznámek mluví za sebe: podstrčeným odkazem šel zápis do logu svést do souboru authorized_keys.
Oprava je u celé skupiny stejná. Cesty zadané obsluhou se nově procházejí po jednotlivých částech voláním openat() s příznaky O_PATH a O_NOFOLLOW a symbolický odkaz projde jen tehdy, když patří rootovi nebo uživateli, pod kterým rsync běží.
Na několika místech se mění chování
Rsync 3.5.0 dostal novou volbu --confine-root=DIR, která odmítne cestu mířící mimo zadaný adresář. Používá ji obal rrsync, kterým se omezuje přístup přes SSH na jediný adresář; předává jí ten svůj vyhrazený. Démon nově zastropoval počet vláken Zstandardu na osmi, protože si je klient mohl vyžádat sám: u požadavku na 256 vláken jich poznámky v jednom spojení naměřily 257 (CVE-2026-70455). A pravidlo hosts deny se přestalo chovat obráceně, než mělo. Když se jméno v pravidle nepodařilo přeložit na adresu, prošel při výchozím nastavení stroj dosud dovnitř, místo aby ho démon odmítl (CVE-2026-70452).
Jedna změna se dotkne i běžného kopírování bez démona. Je-li cíl zadaný obsluhou symbolický odkaz na adresář, rsync ho následuje jen tehdy, patří-li ten odkaz rootovi nebo spouštějícímu uživateli. Cíl podstrčený někým jiným teď skončí odmítnutím a staré chování vrací volba --insecure-links.
Jedna z chyb byla veřejně popsaná od roku 2021
Ne všechny nálezy čekaly na vydání pod embargem. CVE-2026-70453 popisuje kvadratické vytížení procesoru ve funkci hash_search(), které se dá rozjet nastrojenou řadou stejných slabých kontrolních součtů. Jako výkonnostní problém to podle poznámek nahlásil uživatel heyciao ve veřejném hlášení číslo 217 už v roce 2021; teprve teď se to uznalo za bezpečnostní chybu, ohraničilo a pokrylo testem. Poznámky u ní výslovně píšou, že tahle byla veřejná už předtím a že ji pod embargem nedrželi.
Klientů se týkají dva nálezy. CVE-2026-70462 dovolovala protistraně vypnout klientovi jeho vlastní časový limit, protože příliš velká hodnota přetekla a nekladná ho zrušila úplně. CVE-2026-70454 je o obalu rsync-ssl: v režimu stunnel navazoval spojení TLS bez ověření certifikátu a bez vazby na požadované jméno serveru, takže se za protějšek mohl vydávat kdokoli v cestě.
Jedna slabina zůstala i po opravě a poznámky ji přiznávají. Metadata typu ACL a rozšířených atributů se nově zapisují na drženém deskriptoru souboru. Potřebuje to ale buď systémová volání, která má Linux od verze 6.13, nebo záplatovanou knihovnu libacl, případné náhradní řešení přes /proc/self/fd. Na systémech BSD, macOS, Solarisu a v kontejneru bez /proc se rsync vrací k zápisu podle cesty, tedy k tomu, co bylo příčinou nálezu. Kdo tuhle možnost na svém démonovi nechce, může ji vypnout nastavením refuse options = acls.
Zdroje: poznámky k vydání rsync 3.5.0, oznámení vydání na GitHubu, záznam CVE-2026-53791, Phoronix.