Opened 9 hours ago

Last modified 3 hours ago

#24226 new enhancement

rsync-3.5.2

Reported by: Bruce Dubbs Owned by: SecurityAdvisory
Priority: high Milestone: 98-Security
Component: BOOK Version: git
Severity: high Keywords:
Cc:

Description

New point version.

Change History (2)

comment:1 by Joe Locash, 4 hours ago

Owner: changed from blfs-book to Joe Locash
Status: new → assigned

comment:2 by Joe Locash, 3 hours ago

Milestone: 13.2 → 98-Security
Owner: changed from Joe Locash to SecurityAdvisory
Priority: normal → high
Severity: normal → high
Status: assigned → new
# NEWS for rsync 3.5.2 (4 Nov 2026)

## Changes in this version:

### BUG FIXES:
- Fixed interrupted `--append` and `--inplace` transfers writing the final
  256 KiB buffer twice. An interrupted destination now remains a clean prefix
  which the next transfer can resume or repair.
- Fixed uploads through `rrsync` when the destination file already exists.
  Existing files are now reached beneath a pinned parent directory instead of
  being passed as an unwritable `/proc/self/fd/N` destination.
- Fixed poor matching performance on large sparse and repeated-block files
  when duplicate checksum chains exhausted the search limit. Valid basis
  blocks are no longer hidden behind duplicate entries.
- Bounded strong-checksum work when a malicious receiver supplies weak
  checksums that collide with consecutive rolling windows
  (CVE-2026-119741).
- Prevented the `--inplace` matcher from advancing its aligned basis index
  beyond the available checksum entries. This avoids signed overflow on large
  source files when the peer supplies a small block count.
- Recovered from failed hard-link creation without aborting or hanging the
  generator. Remaining members fall back to a fresh hard-link group when the
  original destination inode cannot accept another link.
- Prevented an out-of-bounds write while invalidating a sender checksum after
  a file read error when the negotiated checksum length is zero.
- Fixed a daemon receiver stack overflow when queued deletion output reached
  `--max-alloc`. Quiet daemon transfers no longer queue deletion messages
  unless the client requested them.
- Fixed a `--files-from` pull from a subdirectory of a daemon module, which
  read each listed file from the module root instead.  It could send, and with
  `--remove-source-files` delete, a same-named file the module's filter
  excludes.
- Fixed password files whose first line is empty. The parser no longer skips
  the empty line and uses a later password.
- Escaped terminal control characters in filenames and diagnostics written to
  standard output, standard error and log files while preserving printable
  text in the active locale.
- Preserved Cygwin and MSYS2 UNC roots during ownership-checked path walks.
- Restored daemon startup from accepted named Unix sockets on standard input,
  including filesystem and Linux abstract sockets used for socket activation.
  Unnamed local socket pairs remain non-daemon channels.
- Fixed forward-DNS hostname entries in daemon `hosts allow` and `hosts deny`
  lists for IPv6 peers. Address comparison is now binary and family-aware.
- Preserved Unix symlink permissions on systems which require `fchmodat()` to
  change the mode of a symlink rather than its target.
- Restored builds on systems without `O_CLOEXEC` or `O_DIRECTORY`, including
  Solaris 10.

### ENHANCEMENTS:
- Added `--nice` to adjust CPU and I/O scheduling priorities for local and
  remote rsync processes. Daemon clients and rrsync cannot raise server-side
  priorities.
- Human-readable output now uses dynamic precision to show three significant
  digits and appends `i` to binary unit suffixes. `--progress` uses the same
  formatter for transfer rates and labels byte counts and rates with `B` and
  `B/s`. Example output includes `46.7M`, `48.8Mi`, `782,448B` and
  `113,295B/s`. File-list, created-directory and skipped-deletion counts also
  use thousands separators.
- Added `--delay-symlinks` to defer creating new and changed symlinks until
  other transferred files are in place. It implies `--no-inc-recursive` and
  requires protocol 29 or newer with support on the receiving side. It cannot
  be combined with `--remove-source-files`, `--hard-links`, `--compare-dest`,
  `--copy-dest` or `--link-dest`.

Fixed at 92df389919. Leaving open for SA.

Note: See TracTickets for help on using tickets.