Skip to content

rsync: Out-of-bounds write from a FLAG_HLINKED file entry accepted without -H

High
tridge published GHSA-gg3m-4m9m-268h Aug 13, 2026

Software

rsync

Affected versions

>= 3.0.0, <= 3.4.4

Patched versions

3.5.0

Description

A malicious peer marks a file entry FLAG_HLINKED even though hard links were
not negotiated (-H absent), which the receiver accepted. (Accepting the flag
on a DIRECTORY entry was a second invalid form closed by the same fix; the
demonstrated write is on a regular file.) The HLINK_BUMP()/OPT_EXTRA offset computed for such an
entry then places attacker-supplied bytes just outside the pool entry that was
allocated for it.

Reaching the write requires protocol-30 incremental recursion, a regular file,
--checksum in use, and -H absent: the extra hard-link slots are reserved only
when preserve_hard_links is set, and the out-of-bounds write lands through
F_SUM(file).

Fixed by refusing FLAG_HLINKED when hard links are not in use and refusing it
on a directory entry.


Affected: 3.0.0 through 3.4.4

Fixed in: 3.5.0 (part of the malicious-peer robustness work)

Reporter: Greg Kroah-Hartman (daemon-protocol fuzzing)

Test: proto-hlink-flag-oob

Severity

High

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
High

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H

CVE ID

CVE-2026-70458

Weaknesses

Out-of-bounds Write

The product writes data past the end, or before the beginning, of the intended buffer. Learn more on MITRE.

Credits