CVE-2024-12088
Medium · 6.5CVSS
6.5
EPSS
4.6%
Published
Jan 14, 2025
CISA due date
—
Cloudanix analysis
A file-copying tool can be tricked by a malicious source into placing files in locations it should not, which may let an attacker alter data outside the expected folders.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Data Tampering
- Component
- Application
- Class
- Path Traversal
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The rsync client using --safe-links does not recursively validate that symlink destinations received from the server are free of additional symlinks, enabling path traversal that permits arbitrary file writes outside the intended destination directory.
Why it matters to the business
Organizations relying on rsync for file synchronization across 61 downstream dependents face risk of unauthorized data modification or corruption during transfers from untrusted sources, potentially disrupting backup, deployment, or data replication workflows.
How an attack unfolds
An attacker sets up a malicious rsync server or intercepts a client connection, then crafts a response containing a symlink whose target itself contains another symlink that traverses outside the allowed directory; when the client uses --safe-links the flawed verification allows the write to succeed.
How to fix it
Upgrade affected rsync packages to the fixed versions provided for each distribution; for mongodb on Ubuntu 18.04 LTS apply version 1:3.6.3-0ubuntu1 or later. Disable --safe-links when connecting to untrusted servers until patches are applied.
How to confirm the fix worked
Confirm rsync binary or package version matches or exceeds the listed fixed release, then test synchronization of a crafted symlink set against a controlled server to verify writes remain confined to the destination directory.
Typical attack path
- Attacker positions a malicious or compromised rsync server reachable by the target client
- Client initiates synchronization with the --safe-links flag against the attacker-controlled server
- Server returns a crafted symlink whose destination embeds a second symlink performing directory traversal
- Client verification logic fails to detect the nested link and performs the file write outside the intended tree
How to detect it
Review rsync client logs for transfers involving multiple nested symlinks or unexpected write paths; correlate with process execution of rsync against external or untrusted hosts and inspect destination directories for files written outside expected boundaries.
What your security team should do
- Apply the specified fixed package versions immediately on all Ubuntu 18.04 LTS systems running mongodb or rsync
- Inventory all uses of rsync with --safe-links and restrict them to trusted endpoints
- Monitor EPSS and exploit maturity indicators for any increase in observed activity
The record
A flaw was found in rsync. When using the `--safe-links` option, the rsync client fails to properly verify if a symbolic link destination sent from the server contains another symbolic link within it. This results in a path traversal vulnerability, which may lead to arbitrary file write outside the desired directory.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | rsync | 0 | 3.1.3-21.el8_10 |
| AlmaLinux:8 | rsync-daemon | 0 | 3.1.3-21.el8_10 |
| AlmaLinux:9 | rsync | 0 | 3.2.5-3.el9 |
| AlmaLinux:9 | rsync-daemon | 0 | 3.2.5-3.el9 |
| AlmaLinux:9 | rsync-rrsync | 0 | 3.2.5-3.el9 |
| 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 |
| 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 LTSS Extended Security 12 SP5 | rsync | 0 | 3.1.3-3.28.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-12085 A flaw was found in rsync which could be triggered when rsync compares file checksums. 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-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