Популярный инструмент синхронизации даёт хакерам полный контроль над Unix

В Rsync, популярном инструменте синхронизации файлов для Unix-систем, было обнаружено шесть уязвимостей безопасности, некоторые из которых позволяют злоумышленникам выполнять произвольный код на клиентской системе.

CERT Coordination Center (CERT/CC) сообщил, что при наличии контроля над вредоносным сервером злоумышленники могут читать и записывать любые файлы на подключённых клиентах. Это создаёт угрозу утечки конфиденциальной информации, такой как SSH-ключи, и выполнения вредоносного кода путём изменения файлов, например, ~/.bashrc или ~/.popt.

Список обнаруженных уязвимостей включает:

  1. CVE-2024-12084 (CVSS 9.8): переполнение кучи из-за некорректной обработки длины контрольной суммы;
  2. CVE-2024-12085 (CVSS 7.5): утечка данных через неинициализированное содержимое стека;
  3. CVE-2024-12086 (CVSS 6.1): утечка произвольных файлов клиента сервером Rsync;
  4. CVE-2024-12087 (CVSS 6.5): уязвимость обхода пути;
  5. CVE-2024-12088 (CVSS 6.5): обход опции –safe-links, ведущий к атаке обхода пути;
  6. CVE-2024-12747 (CVSS 5.6): состояние гонки при обработке символических ссылок.

Первые пять уязвимостей обнаружили исследователи из Google Cloud Vulnerability Research – Саймон Сканнелл, Педро Галлегос и Джазиел Спелман. Последняя уязвимость была раскрыта исследователем безопасности Алексеем Горбанем.

Особо опасной признана CVE-2024-12084, для эксплуатации которой злоумышленнику достаточно иметь анонимный доступ на чтение к серверу Rsync. Как отметил Ник Тейт из Red Hat Product Security, комбинированное использование уязвимостей CVE-2024-12084 и CVE-2024-12085 позволяет добиться выполнения произвольного кода на клиенте, использующем сервер Rsync.

В версии Rsync 3.4.0, доступной с сегодняшнего дня, разработчики устранили все шесть уязвимостей. Пользователям, не имеющим возможности обновиться, рекомендуется применить следующие меры:

  • Для CVE-2024-12084: отключить поддержку SHA, скомпилировав с флагами CFLAGS=-DDISABLE_SHA512_DIGEST и CFLAGS=-DDISABLE_SHA256_DIGEST.
  • Для CVE-2024-12085: использовать флаг компиляции -ftrivial-auto-var-init=zero, чтобы заполнить содержимое стека нулями.

Public Release.