rsync 3.5.2 Patches CVE-2026-119741, a CPU Exhaustion Flaw in Checksum Matching
The rsync project released version 3.5.2, fixing CVE-2026-119741, a vulnerability in the hash_search() function in match.c that allows a malicious receiving client to exhaust a server's CPU during file synchronization. All versions through 3.5.1 are affected. The flaw was assigned by VulnCheck, which rates it 8.7 on CVSS 4.0 and 7.5 on CVSS 3.1, with impact limited to availability. Public rsync daemon modules that allow anonymous pulls are especially exposed since no authentication is required to trigger the condition.
Entenda a falha
A vulnerabilidade
CVE-2026-119741 is an algorithmic-complexity flaw in rsync's hash_search() function in match.c. A malicious receiving client can force the sender to burn CPU on useless strong-checksum computations, so a few concurrent connections can exhaust the server's CPU. Public rsync daemon modules that allow anonymous pulls need no authentication to trigger it. Impact is availability only (CVSS 4.0 8.7, CVSS 3.1 7.5, as scored by VulnCheck, which assigned the ID). All versions through 3.5.1 are affected; 3.5.2 fixes it.
Como funciona
In a transfer, the receiver cuts its copy of a file into blocks and sends the sender a cheap rolling checksum and a stronger checksum for each block. The sender slides a window across its own copy, checks the weak checksum first and, on a weak match, computes the strong checksum to confirm the block is identical. The problem appears at that confirmation step: a malicious receiver sends weak checksums that keep colliding with window after window, paired with strong checksums that never match. The sender keeps computing strong checksums that fail, wasting CPU.
Por que é vulnerável
The matching loop trusts the receiver's checksums and does not bound the strong-checksum work that a stream of weak collisions can trigger. VulnCheck classifies it as inefficient algorithmic complexity. The articles do not describe exactly how 3.5.2 changes hash_search() to fix it, nor why it went unnoticed.
Onde está
The hash_search() function in match.c.
Como foi descoberta
The articles do not say who found the flaw or how. They say only that VulnCheck assigned the CVE ID and scored it, and that the rsync project disclosed it with the release of version 3.5.2 on 2026-11-04.
Explicação gerada por IA a partir da matéria e dos artigos, em 04/11/2026 05:17.
Detalhes técnicos
During a transfer, the receiver splits its file copy into blocks and sends a weak rolling checksum plus a stronger checksum for each. The sender slides a matching window across its own copy, first checking the weak checksum, then computing the strong one to confirm a match. A malicious receiver can send weak checksums that repeatedly collide across rolling windows while pairing them with strong checksums that never match, forcing the sender into continuous, wasted strong-checksum computation. A handful of concurrent connections can exhaust CPU resources entirely. The condition affects only availability, not data confidentiality or integrity.
Remediação
Upgrade to rsync 3.5.2, which fixes the checksum-matching flaw and also introduces --nice and --no-nice options to set CPU and I/O scheduling priority for local and/or remote processes, including support in rrsync (the restricted SSH wrapper), helping limit resource contention from large transfers.
Linha do tempo
-
rsync 3.5.2 Patches CVE-2026-119741, a CPU Exhaustion Flaw in Checksum Matching
ler a análise desta fonte ocultar
The rsync project released version 3.5.2, fixing CVE-2026-119741, a vulnerability in the
hash_search()function inmatch.cthat allows a malicious receiving client to exhaust a server's CPU during file synchronization. All versions through 3.5.1 are affected. The flaw was assigned by VulnCheck, which rates it 8.7 on CVSS 4.0 and 7.5 on CVSS 3.1, with impact limited to availability. Public rsync daemon modules that allow anonymous pulls are especially exposed since no authentication is required to trigger the condition.Technical Details
During a transfer, the receiver splits its file copy into blocks and sends a weak rolling checksum plus a stronger checksum for each. The sender slides a matching window across its own copy, first checking the weak checksum, then computing the strong one to confirm a match. A malicious receiver can send weak checksums that repeatedly collide across rolling windows while pairing them with strong checksums that never match, forcing the sender into continuous, wasted strong-checksum computation. A handful of concurrent connections can exhaust CPU resources entirely. The condition affects only availability, not data confidentiality or integrity.
Remediation
Upgrade to rsync 3.5.2, which fixes the checksum-matching flaw and also introduces
--niceand--no-niceoptions to set CPU and I/O scheduling priority for local and/or remote processes, including support inrrsync(the restricted SSH wrapper), helping limit resource contention from large transfers.