CVE-2024-12085
High · 7.5CVSS
7.5
EPSS
8.6%
Published
Jan 14, 2025
CISA due date
—
Cloudanix analysis
A bug in the widely used rsync tool can let attackers slowly steal tiny pieces of information from a computer's memory while files are being copied or backed up.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Application
- Class
- Information Disclosure
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Manipulating the s2length parameter during rsync checksum comparisons causes a byte-wise comparison against uninitialized stack memory, resulting in one byte of stack data being leaked to the attacker per invocation.
Why it matters to the business
Organizations using rsync for file synchronization risk gradual leakage of sensitive in-memory data such as credentials, encryption keys, or configuration secrets over repeated transfers, increasing exposure in automated backup or replication workflows.
How an attack unfolds
An attacker positions themselves as a malicious rsync peer (client or server) and crafts checksum responses with an oversized or manipulated s2length value; during normal file comparison the victim rsync process compares the supplied checksum against uninitialized stack bytes and returns the leaked byte, allowing the attacker to repeat the process to reconstruct larger memory regions.
How to fix it
Upgrade rsync to the commit 6c8ca91c731b7bf2b081694bda85b7dadc2b7aff or later; rebuild packages from the patched source and redeploy across all synchronization endpoints.
How to confirm the fix worked
Verify rsync binary or source matches or exceeds commit 6c8ca91c731b7bf2b081694bda85b7dadc2b7aff; run regression tests that exercise checksum comparison paths with varying file sizes.
Typical attack path
- Establish rsync connection to target as client or induce target to connect to attacker-controlled server
- Trigger file-listing and checksum phase for chosen paths
- Supply crafted checksum metadata with manipulated s2length
- Receive one leaked stack byte per comparison iteration
- Repeat across multiple files or sessions to accumulate memory contents
How to detect it
Review rsync daemon and client logs for repeated checksum phase entries on the same files, unusual connection patterns from untrusted peers, or processes exhibiting high numbers of short-lived rsync sessions; correlate with memory-dumping indicators if available.
What your security team should do
- Immediately inventory all rsync deployments and schedule upgrade to the fixed commit
- Restrict rsync usage to authenticated, encrypted channels and least-privilege accounts until patched
- Monitor rsync-related network traffic for anomalous checksum lengths or repeated short transfers that could indicate probing
The record
A flaw was found in rsync which could be triggered when rsync compares file checksums. This flaw allows an attacker to manipulate the checksum length (s2length) to cause a comparison between a checksum and uninitialized memory and leak one byte of uninitialized stack data at a time.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | rsync | 0 | 3.1.3-20.el8_10 |
| AlmaLinux:8 | rsync-daemon | 0 | 3.1.3-20.el8_10 |
| AlmaLinux:9 | rsync | 0 | 3.2.3-20.el9_5.1 |
| AlmaLinux:9 | rsync-daemon | 0 | 3.2.3-20.el9_5.1 |
| Alpine:v3.18 | rsync | 0 | 3.4.0-r0 |
| Alpine:v3.19 | rsync | 0 | 3.4.0-r0 |
| Alpine:v3.20 | rsync | 0 | 3.4.0-r0 |
| Alpine:v3.21 | rsync | 0 | 3.4.0-r0 |
| Alpine:v3.22 | rsync | 0 | 3.4.0-r0 |
| Debian:11 | rsync | 0 | 3.2.3-4+deb11u2 |
| Debian:12 | rsync | 0 | 3.2.7-1+deb12u1 |
| Debian:13 | rsync | 0 | No fix |
| Debian:13 | rsync | 0 | 3.3.0+ds1-3 |
| Debian:14 | rsync | 0 | 3.3.0+ds1-3 |
| Mageia:9 | rsync | 0 | 3.2.7-1.2.mga9 |
| Red Hat:enterprise_linux:8::baseos | rsync | 0 | 0:3.1.3-20.el8_10 |
| Red Hat:enterprise_linux:8::baseos | rsync-daemon | 0 | 0:3.1.3-20.el8_10 |
| Red Hat:enterprise_linux:8::baseos | rsync-debuginfo | 0 | 0:3.1.3-20.el8_10 |
| Red Hat:enterprise_linux:8::baseos | rsync-debugsource | 0 | 0:3.1.3-20.el8_10 |
| Red Hat:enterprise_linux:9::appstream | rsync | 0 | 0:3.2.3-20.el9_5.1 |
| Red Hat:enterprise_linux:9::appstream | rsync-daemon | 0 | 0:3.2.3-20.el9_5.1 |
| Red Hat:enterprise_linux:9::appstream | rsync-debuginfo | 0 | 0:3.2.3-20.el9_5.1 |
| Red Hat:enterprise_linux:9::appstream | rsync-debugsource | 0 | 0:3.2.3-20.el9_5.1 |
| Red Hat:enterprise_linux:9::baseos | rsync | 0 | 0:3.2.3-20.el9_5.1 |
| Red Hat:enterprise_linux:9::baseos | rsync-daemon | 0 | 0:3.2.3-20.el9_5.1 |
| Red Hat:enterprise_linux:9::baseos | rsync-debuginfo | 0 | 0:3.2.3-20.el9_5.1 |
| Red Hat:enterprise_linux:9::baseos | rsync-debugsource | 0 | 0:3.2.3-20.el9_5.1 |
| Rocky Linux:8 | rsync | 0 | 0:3.1.3-20.el8_10 |
| Rocky Linux:9 | rsync | 0 | 0:3.2.3-20.el9_5.1 |
| SUSE:Enterprise Storage 7.1 | rsync | 0 | 3.2.3-150000.4.33.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | rsync | 0 | 3.2.3-150000.4.33.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | rsync | 0 | 3.2.3-150400.3.17.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | rsync | 0 | 3.2.3-150400.3.17.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | rsync | 0 | 3.2.3-150400.3.17.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | rsync | 0 | 3.2.3-150400.3.17.1 |
| SUSE:Linux Enterprise Micro 5.1 | rsync | 0 | 3.2.3-150000.4.33.1 |
| SUSE:Linux Enterprise Micro 5.2 | rsync | 0 | 3.2.3-150000.4.33.1 |
| SUSE:Linux Enterprise Micro 5.3 | rsync | 0 | 3.2.3-150400.3.17.1 |
| SUSE:Linux Enterprise Micro 5.4 | rsync | 0 | 3.2.3-150400.3.17.1 |
| SUSE:Linux Enterprise Micro 5.5 | rsync | 0 | 3.2.3-150400.3.17.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | rsync | 0 | 3.2.7-150600.3.8.1 |
| SUSE:Linux Enterprise Server 12 SP5-LTSS | rsync | 0 | 3.1.3-3.22.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | rsync | 0 | 3.2.3-150000.4.33.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | rsync | 0 | 3.2.3-150400.3.17.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | rsync | 0 | 3.2.3-150400.3.17.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | rsync | 0 | 3.1.3-3.22.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | rsync | 0 | 3.2.3-150000.4.33.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | rsync | 0 | 3.2.3-150400.3.17.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | rsync | 0 | 3.2.3-150400.3.17.1 |
| SUSE:Manager Proxy 4.3 | rsync | 0 | 3.2.3-150400.3.17.1 |
| SUSE:Manager Server 4.3 | rsync | 0 | 3.2.3-150400.3.17.1 |
| Ubuntu:20.04:LTS | rsync | 0 | 3.1.3-8ubuntu0.8 |
| Ubuntu:22.04:LTS | rsync | 0 | 3.2.7-0ubuntu0.22.04.3 |
| Ubuntu:24.04:LTS | rsync | 0 | 3.2.7-1ubuntu1.1 |
| Ubuntu:24.10 | rsync | 0 | No fix |
| Ubuntu:24.10 | rsync | 0 | 3.3.0-1ubuntu0.1 |
| Ubuntu:Pro:14.04:LTS | rsync | 0 | 3.1.0-2ubuntu0.4+esm1 |
| Ubuntu:Pro:16.04:LTS | rsync | 0 | 3.1.1-3ubuntu1.3+esm3 |
| Ubuntu:Pro:18.04:LTS | rsync | 0 | 3.1.2-2.1ubuntu1.6+esm1 |
| openSUSE:Leap 15.6 | rsync | 0 | 3.2.7-150600.3.8.1 |
| openSUSE:Tumbleweed | rsync | 0 | 3.4.1-1.1 |
Related vulnerabilities
- CVE-2024-12084 A heap-based buffer overflow flaw was found in the rsync daemon. Same vulnerability
- CVE-2024-12086 A flaw was found in rsync. Same vulnerability
- CVE-2024-12087 A path traversal vulnerability exists in rsync. Same vulnerability
- CVE-2024-12088 A flaw was found in rsync. Same vulnerability
- CVE-2024-12747 A flaw was found in rsync. Also affects rsync
- CVE-2016-9840 inftrees.c in zlib 1.2.8 might allow context-dependent attackers to have unspecified… Also affects rsync
- CVE-2017-17433 The recv_files function in receiver.c in the daemon in rsync 3.1.2, and 3.1.3-development… Also affects rsync
- CVE-2017-16548 The receive_xattr function in xattrs.c in rsync 3.1.2 and 3.1.3-development does not… Also affects rsync