Рекомендуем
VPS на Windows и Linux — от 49 ₽ за 7 дней Быстрый запуск сервера на NVMe для сайтов, ботов и других задач.
Выбрать VPS

В rsync 3.5.2 закрыли уязвимость перегрузки CPU — исправлена передача больших файлов

4 ноября 2026 года разработчики rsync выпустили версию 3.5.2 с исправлением уязвимости CVE-2026-119741, из-за которой злоумышленник мог перегружать процессор сервера при передаче файлов. В релизе также устранили ошибку повторной записи данных после обрыва соединения и замедление синхронизации больших разреженных файлов — проблемы, которые напрямую затрагивают резервное копирование и работу файловых хранилищ.

В rsync 3.5.2 закрыли уязвимость перегрузки CPU
В rsync 3.5.2 закрыли уязвимость перегрузки CPU

CVE-2026-119741 позволяла перегружать процессор публичного rsync-сервера

Уязвимость CVE-2026-119741 получила высокую оценку опасности. Она затрагивала rsync вплоть до версии 3.5.1 включительно и позволяла недоверенному получателю данных заставлять отправляющую сторону выполнять чрезмерное число вычислений контрольных сумм. На сервере с публично доступным модулем rsync такой приём мог привести к отказу в обслуживании из-за загрузки процессора.

Rsync экономит сетевой трафик за счёт дельта-передачи: сравнивает части файлов и отправляет только нужные изменения. Для поиска совпадений программа использует быстрые, или «слабые», контрольные суммы, а затем уточняет результат более затратными «сильными» суммами. Злоумышленник мог подобрать входные данные так, чтобы отправитель запускал тяжёлую проверку почти на каждом смещении файла. Несколько параллельных соединений усиливали нагрузку.

В версии 3.5.2 разработчики ограничили объём такой работы. Исправление продолжает защиту механизма контрольных сумм, которую ранее вводили для CVE-2026-70453. Описанная атака связана прежде всего с ситуацией, когда сервер отправляет файлы недоверенному клиенту; сам факт установки rsync на компьютер ещё не делает его доступным для внешних подключений.

Прерванная передача с --append и --inplace могла дублировать 256 КиБ

При обрыве передачи с параметрами --append или --inplace в предыдущих сборках возникала ошибка: последний буфер размером 256 КиБ мог записаться дважды. Из-за этого частично полученный файл переставал точно соответствовать началу исходного файла, что мешало корректному продолжению или восстановлению передачи.

Эти режимы встречаются при работе с большими архивами, образами дисков и резервными копиями. --append предназначен для добавления недостающей части к уже существующему файлу, а --inplace изменяет файл непосредственно в месте его хранения. При нестабильном соединении сбой мог затронуть именно тот файл, который пользователь рассчитывал передать повторно без полного копирования.

Rsync 3.5.2 устраняет двойную запись конечного буфера. После прерывания файл на стороне получателя остаётся последовательным началом передаваемых данных, с которым алгоритм может продолжить работу или выполнить исправление при следующем запуске.

Разреженные файлы больше не тормозят из-за повторяющихся блоков

Разработчики исправили ситуацию, в которой сопоставление блоков резко замедлялось на больших разреженных файлах и данных с многочисленными повторениями. Разреженный файл может иметь логический размер в десятки гигабайт, хотя значительная часть его содержимого представлена нулями и фактически занимает меньше места на диске. Такой формат встречается у образов накопителей и некоторых файлов виртуальных машин.

Проблему с похожими симптомами пользователи обсуждали в репозитории rsync: в обращении от 1 октября владелец набора образов примерно по 30 ГБ сообщил о высоком потреблении CPU в rsync 3.5.0 по сравнению с веткой 3.4. Разработчики проводили дополнительные тесты, поскольку проявление замедления зависело от конкретных данных.

В официальном списке изменений 3.5.2 указана причина исправленного замедления: цепочки дублирующихся контрольных сумм исчерпывали лимит поиска и скрывали подходящие блоки исходного файла. Теперь корректные совпадения остаются доступными для алгоритма. Эффект касается именно таких наборов данных; универсального процента ускорения разработчики не приводят.

Параметр --nice управляет нагрузкой на CPU и дисковую подсистему

В rsync 3.5.2 появился параметр --nice, позволяющий изменять приоритет использования процессора и дискового ввода-вывода для локального и удалённого процессов. Например, запись --nice=19/idle задаёт низкий приоритет CPU и класс idle для дисковых операций. В справке также предусмотрены отдельные настройки local и remote.

Это относится к задачам синхронизации, выполняемым одновременно с рабочей нагрузкой сервера. Передача резервных копий может обращаться к диску и нагружать CPU в то же время, когда сервер обслуживает другие процессы. Параметр позволяет задавать приоритет непосредственно в команде rsync, включая удалённую сторону при поддержке этой возможности.

У функции есть границы: удалённый экземпляр rsync должен понимать новый параметр, а повышение приоритета иногда требует дополнительных прав. Клиентам публичного демона и ограниченного режима rrsync не разрешено повышать приоритет процесса на сервере.

Новая опция --delay-symlinks меняет порядок обработки символических ссылок. Прежде новая или изменённая ссылка могла появиться на принимающей стороне раньше файла, на который она указывает. В результате во время синхронизации ссылка временно вела к ещё отсутствующему содержимому.

С опцией --delay-symlinks rsync откладывает создание и замену ссылок, пока остальные файлы не окажутся на месте. Это сокращает период несогласованности файлового дерева при обновлении каталогов, где символические ссылки используются для обращения к нужным версиям файлов.

Механизм имеет ограничения. Он отключает инкрементальный обход дерева каталогов, требует поддержки на принимающей стороне и несовместим, в частности, с --hard-links, --link-dest и --remove-source-files. Полностью атомарной публикацию файлов эта функция не делает: при обрыве синхронизации новые ссылки могут остаться несозданными.

Исправления rrsync и --files-from затронули ограниченные каталоги

В 3.5.2 восстановлена загрузка файлов через rrsync — ограниченный режим rsync, применяемый для доступа к заданному каталогу. Ранее операция могла завершаться ошибкой, если файл назначения уже существовал. Теперь программа обращается к нему через надёжно закреплённый родительский каталог.

Отдельное исправление связано с параметром --files-from при скачивании из подкаталога модуля демона rsync. Из-за неверного определения начального каталога программа могла читать одноимённый файл из корня модуля. При использовании --remove-source-files ошибка могла затронуть и удаление такого файла, включая объекты, исключённые фильтрами модуля. В новой версии обработка пути исправлена.

Версия 3.5.2 продолжает исправления ветки rsync 3.5

В августе 2026 года версия 3.5.0 закрыла 33 проблемы безопасности. Сентябрьская 3.5.1 исправила обнаруженные после этого регрессии и представила протокол 33. Релиз от 4 ноября продолжил работу над безопасностью сетевой передачи и корректностью обработки больших файлов, одновременно добавив управление приоритетами процессов и отложенное создание символических ссылок.

Для ветки 3.5.2 разработчики описали конкретные условия возникновения CVE-2026-119741 и ошибок передачи. Насколько сильно изменится скорость синхронизации, зависит от структуры файлов и выбранных параметров rsync; опубликованных общих результатов сравнительного тестирования новой версии пока нет.

Источники

При использовании материалов сайта необходимо указывать ссылку на TGLand.ru. Если вы копируете фрагменты текста в интернете, прямая гиперссылка, доступная для индексации поисковыми системами, должна быть размещена в начале материала.

Вам также может понравиться