LINUX.ORG.RU

Rsync 3.4.0

 ,


0

2

Обновлена утилита для синхронизации файлов Rsync с устранением 6 достаточно критичных уязвимостей. Для совершения атаки с применением некоторых их них достаточно анонимного подключения к серверу Rsync с доступом на чтение.

Исправленные уязвимости:

  • CVE-2024-12084 — запись за пределы выделенного буфера через передачу некорректной контрольной суммы, размер которой превышает 16 байт.
  • CVE-2024-12085 — утечка содержимого неинициализированных данных из стека (по одному байту за раз) при выполнении операций сравнения контрольных сумм некорректного размера.
  • CVE-2024-12086 — получение доступа сервера к содержимому произвольных файлов из системы клиента через генерацию сервером некорректных коммуникационных токенов и контрольных сумм в процессе копирования файлов от клиента на сервер (определение содержимого байт за байтом через подбор контрольной суммы).
  • CVE-2024-12087 — выход за пределы базового каталога при использовании опции --inc-recursive (включается по умолчанию для многих флагов). Уязвимость вызвана отсутствуем должной проверки символических ссылок и позволяет записать файлы за пределами указанного клиентом целевого каталога. Подконтрольный атакующему сервер может использовать уязвимость для атаки на систему подключившегося клиента.
  • CVE-2024-12088 — некорректная проверка символических ссылок, указывающих на другие символические ссылки, при использовании опции --safe-links. Проблема даёт возможность выйти за пределы базового каталога и записать данные в любой файл в системе, насколько это позволяют права доступа.
  • CVE-2024-12747 — состояние гонки при работе с символическими ссылками, позволяющее пользователю повысить свои привилегии и получить доступ к привилегированным файлам на сервере.

Данный список устраненных уязвимостей взят с сайта OpenNET: https://www.opennet.ru/opennews/art.shtml?num=62557

Другие изменения в новой версии:

  • configure.ac: исправлена ошибка проверки IPv6 из-за отсутствующего типа возврата.
  • CI: перенесена сборка для FreeBSD в GitHub Actions.
  • Добавлена подсказка, что прокси может обрабатывать как обычный, так и SSL поток одновременно.
  • Устранено предупреждение о неиспользуемой переменной.
  • Обновление popt до версии 1.19.
  • Поддержка: добавлен скрипт install_deps_ubuntu.sh.
  • CI: исправлены правила для триггеров.
  • CI: добавлена сборка для Solaris.
  • Apple silicon linker path details.
  • acls: синхронизация типа для orig_umask и устранение предупреждений компиляции для macOS.
  • Исправлены различные предупреждения, найденные clang-16.
  • rrsync: исправлено неверное название параметра в SYNOPSIS мануала.
  • Введен PTR_SUB.
  • Добавлена возможность базовой проверки подключения через rrsync.
  • В случае, если не используется встроенная zlib, используется libcrypto.
  • Корректировка для GCC15(-std=gnu23): исправлен каст указателя функции в qsort().
  • Исправлены опечатки в мануале.

>>> Подробности

★★★★

Проверено: CrX ()
Последнее исправление: CrX (всего исправлений: 1)

запись за пределы выделенного буфера через передачу некорректной контрольной суммы, размер которой превышает 16 байт.

Даже комментировать не хочу.

Camel ★★★★★
()

Исправленные уязвимости

Чет совсем решето. С другой стороны не видел чтоб rsync использовали для скидывания данных на «чужой» сервер, но оказывается и такое есть (нагуглился https://rsync.net)

micronekodesu ★★★
()
Ответ на: комментарий от gaylord

Нет, это же нубокодеры. Они везде. Вот в моей проге для синхронизации никаких дыр бы не было.

configure.ac: исправлена ошибка проверки IPv6 из-за отсутствующего типа возврата.

И никаких ipv6 с автотулзами.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 4)
Ответ на: комментарий от micronekodesu

Раньше использовали для синхронизации зеркал репозиториев дистров.

Думаю и сейчас используют. Как раз доступ ro из инета, так что актуально, тем более что ключи там же лежат публичные.

usermod
()

Соглашусь с комментаторами. Дырявый код, это особенность сишечки. В данном случае код старый, давно вдоль и поперек проверенный и давно ннеизменный и такие стандартные ошибки, которые должен отслеживать компилятор, а не это вот все.

Да и сборка ужасная. Было бы очень интересно увидеть порт осинка на Раст.

usermod
()
Последнее исправление: usermod (всего исправлений: 1)

Для совершения атаки с применением некоторых их них достаточно анонимного подключения к серверу Rsync с доступом на чтение.

Только один момент - сервер rsync никто наружу не выставляет. Вообще никто. Типовое использование rsync - поверх ssh ;)

router ★★★★★
()
Ответ на: комментарий от firkax

Это не отменяет того что у него, судя по перечисленным CVE, помойка в коде.

В любой популярной программе на C выгребены десятки подобных проблем. В твоей их нет только потому что туда просто никто не смотрел, либо твоего кода слишком мало.

gaylord
()
Ответ на: комментарий от router

как раз написали, выставляют, для синхронизации зеркал

sena ★★
()
Ответ на: комментарий от router

ой вы !! да ладно !! используют только в путь

https://www.debian.org/CD/mirroring/#rsync

репозитории убунты доступны по rsync.

причем яндекс-зеркало точно поддерживало rsync, оттуда качал.
остальные не помню, но у многих видел rsync в методах доступа.

ибо удобная вещчъ для больших объемов большого количества файлов.


а вот он красивый список
https://launchpad.net/ubuntu/+archivemirrors

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 3)

запись за пределы выделенного буфера

Никогда такого не было и внезапно опять.

WatchCat ★★★★★
()
Ответ на: комментарий от gaylord

Не думаю что в любой. Но да, очень у много каких прог среди авторов есть нубокодеры, а если прога популярная и у неё, как у линукса, сотни-тысячи авторов, то избежать попадания этих вредителей почти невозможно.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Если бОльшая часть программистов постоянно совершает одни и те же ошибки, значит язык плохой, вот и все. Язык для людей, а не люди для языка. Попытки защищать язык от людей это просто извращенный стокгольмский синдром.

gaylord
()
Ответ на: комментарий от firkax

Плохой, конечно, раз столько проблем. Вообще это чисто программерская история — защищать языки. Не помню чтобы кто-то кричал «в пилораму вставили защиту от отрезания пальцев, это все для нубов»!

gaylord
()
Ответ на: комментарий от firkax

а у Боромира не было бы никаких дыр в 2 раза больше!

mumpster ★★★★★
()
Ответ на: комментарий от router

Типовое использование rsync - поверх ssh ;)

Используют без ssh когда нужна скорость. Не берусь утверждать, что прямо популярно, но встречал.

skyman ★★★
()
Ответ на: комментарий от gaylord

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

firkax ★★★★★
()
Ответ на: комментарий от pfg

причем яндекс-зеркало точно поддерживало rsync

И сейчас поддерживает:

rsync mirror.yandex.ru::
Dimez ★★★★★
()
Ответ на: комментарий от firkax

Повторю, проблемы от некорректного его использования а не от плохого языка.

Повторяй сколько угодно, но это идет против всего человеческого опыта.

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

Ну так все так и есть. Мы их и виним.

  • Машины напичканы средствами спасения человека, хотя основная причина дтп — ошибки водителей. Но вместо того чтобы кричать «нубы на дорогах не умеют водит111» мы делаем машины более безопасными, правила более строгими, штрафы более ощутимыми. Даже дороги более неудобными для быстрой езды в городе.

  • В пилорамы встраивают системы экстренного торможения лезвия, если есть контакт с кожей.

  • Газ в трубах специально напичкан вонючей смесью.

  • Вся твоя электрика дома защищена от КЗ.

  • Таблетки по рецепту, чтобы люди не сожрали чего не надо.

Единственные, кто отчаянно отстаивают свое право постоянно лажать — сишники.

gaylord
()
Последнее исправление: gaylord (всего исправлений: 5)

достаточно анонимного подключения к серверу Rsync с доступом на чтение

Сервера генты уже взломаны?

Shushundr ★★★★
()
Ответ на: комментарий от firkax

Нет, это же нубокодеры

Если бы человеческий фактор можно было исправить, его бы давно исправили. Использовать яп с ручным управлением памятью там, где задачи того не требуют — выстрел в обе ноги.

Конкретно rsync может быть реализован хоть на rust, хоть на go, хоть на python, хоть на java, хоть на чём угодно. High performance ему не требуется. Но нет, давайте тянуть дырявое говно с уязвимостями и сегфолтами, потому что деды на сях писали — значит и нам надо.

Вот в моей проге

Она, поди, на C++ новых стандартов с имплементацией RAII. Это не скрепно, поэтому не считается, надо чтоб было на ассемблере (ну или хотя бы на c89).

InterVi ★★★★★
()
Ответ на: комментарий от InterVi

Она, поди, на C++ новых стандартов с имплементацией RAII. Это не скрепно, поэтому не считается, надо чтоб было на ассемблере (ну или хотя бы на c89).

Да нет, я как раз C89 в основном и использую.

firkax ★★★★★
()
Ответ на: комментарий от gaylord

Кстати, есть ведь достойные подмножества — zig, например. Почему бы не начать перекатываться на него?

InterVi ★★★★★
()
Ответ на: комментарий от router

Ну-ну, расскажи это Яндексу и сотням других зеркал:

$ rsync mirror.yandex.ru::

Bircoph
()
Ответ на: комментарий от InterVi

Сперва он мне очень нравился, а потом я понял что там сегфолтом себе ногу отстрелить так же просто, как в плюсах. И как-то нет особого смысла, ведь есть Rust или Go.

gaylord
()
Последнее исправление: gaylord (всего исправлений: 1)
Ответ на: комментарий от gaylord

Смысл есть. Там:

Лучшая на сегодня работа с ошибками.

Встроенные юниттесты.

Лучшая на сегодня работа с типами, и комптайм в целом.

В отличие от С++ какая-никакая билд-система.

Васм как под Зиг создавался. Рантайм в целом — его отсутствие.

Кривая обучения лучше, чем у Раста. Рефакторинг больших проектов проще.

sarumeister
()
Последнее исправление: sarumeister (всего исправлений: 2)
Ответ на: комментарий от gaylord

ну да.
програмист привыкший к свободе и раздолбайству джаваскрипта начинает писать на С++ или С :)
равноценно что какомунить неумехе дали в руки болгарку или бензопилу - отсчет до потерь пальцев пошел :)
есть умельцы умудряющие отпиливать пальтцы даже на стационарно закрепленной пиле-бабочке с специальной автоматически закрывающейся защитой пильного круга.

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)
Ответ на: комментарий от pfg

програмист привыкший к свободе и раздолбайству джаваскрипта начинает писать на С++ или С :)

Это тоже торг с реальностью, как у человека в соседнем треде про OpenRC. Дыры вносят программисты на C с огромным опытом, это видно по статистике всех открытых проектов. Нет «правильных» программистов на C. Они все такие. Просто кто-то чаще, кто-то реже.

Когда подобную проблему признали в дорожном транспорте, начали решать проблему не кудахтаньем, а реальным мерами (см. выше). И смертность пошла вниз. То же самое делают в IT, но есть отдельные упорные товарищи, которые вместо решения проблемы предпочитают кричать что все вокруг виноваты, кроме языка, который такое позволяет.

gaylord
()
Последнее исправление: gaylord (всего исправлений: 2)
Ответ на: комментарий от sarumeister

Лучшая на сегодня работа с ошибками.

Ну как сказать… там даже нет текстового представления ошибки из номера. Он имя контанты пишет. Как-то хочется нормального, особенно когда это в shell пишется.

Встроенные юниттесты.

Да они везде есть.

Лучшая на сегодня работа с типами, и комптайм в целом.

Мне кажется тут rust все-таки заруливает. Хотя comptime хорош, да.

В отличие от С++ какая-никакая билд-система.

Не, про этих динозавров вообще речи не идет. Их на помойку давно надо.

Васм как под Зиг создавался. Рантайм в целом — его отсутствие.

Стараюсь держаться от этого подальше. Кажется что последнее что нам надо это ещё более обфусцированный вариант JS.

Кривая обучения лучше, чем у Раста. Рефакторинг больших проектов проще.

Это да .

gaylord
()
Ответ на: комментарий от gaylord

Вообще это чисто программерская история — защищать языки. Не помню чтобы кто-то кричал «в пилораму вставили защиту от отрезания пальцев, это все для нубов»!

А если я возьмусь блинчики жарить, то и испачкаюсь, и обожгусь, и сковородку погну… Что-нибудь получится, конечно. Даже жрать можно будет, но не факт, что не отравишься.

qwe ★★★
()
Ответ на: комментарий от gaylord

ошибки естественная составляющая человеческого мышления :) и да полностью согласен, любой человек в любой момент времени может сделать ошибку. и не только на С, но и даж на сайтах с элементарным джаваскриптом куча косяков…
человек, штука ленивая, где больше свободы, там больше и про*ба :)
покажи мне программу или код без ошибок
вот просто покажи пальтчиком и скажи «в нем ошибок нет, сей код божественен».
ну ?? сколько таких ?? а на твоем любимом безгрешном языке ??

единственно помню код какойто системы был математически доказан что он безгрешен :) хз как но вот так.

мальчик зачем далеко ходить, поставь себе задачу чтоб твой код всегда был без ошибок.
и спробуй ее выполнить :)

pfg ★★★★★
()
Ответ на: комментарий от pfg

Я не буду в сотый раз обсуждать в интернете почему «меньше ошибок лучше чем больше ошибок» и почему «учечки памяти это лучше чем RCE».

gaylord
()
Ответ на: комментарий от gaylord

естетвенно :) но жизнь отличается от всех теорий.
и код делают с косяками, это лишь следствие.
я б тож хотел чтобы машины не ломались, но жизнь говорит за другое.

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)
Ответ на: комментарий от pfg

Это все ещё торг с реальностью. На C делают а) больше ошибок б) эти последствия хуже (RCE). Серьезно, сто раз уже обсуждали.

gaylord
()
Ответ на: комментарий от gaylord

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

pfg ★★★★★
()
Ответ на: комментарий от gaylord

б) эти последствия хуже (RCE)

ты сам понял, что пишешь? в случае с рсинком на твоем компе вредоносный код мог выполнить только обладатель рута на сервере, но на кой ему твой комп сдался, когда все интересное и так у него. это как я смотрю особо опасные ошибки для вортпресса и лолирую с того, что для их выполнения требуются админские права… ну те это и признать уязвимостью нельзя, но зарпеортили, получили за это деньги и трахают кучу народа, требуя закрыть «уязвимость»

rtxtxtrx ★★
()
Ответ на: комментарий от gaylord

мальчик вырасти уже, скорость нужна в этих ваших ютубах :)
прикладные применения нередко требуют подтвержденной точности передачи данных.
если б в http внедрили хеш-подтвержденную точность передачи данных по каналу и т.д. да и вообще б сделали качественный протокол передачи файлов, то получился бы уж не http :)

pfg ★★★★★
()
Ответ на: комментарий от pfg

скорость нужна в этих ваших ютубах

Как rsync связан с ютубами?

gaylord
()
Ответ на: комментарий от rtxtxtrx

в случае с рсинком на твоем компе вредоносный код мог выполнить только обладатель рута на сервере

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

gaylord
()
Ответ на: комментарий от pfg

скорость нужна в этих ваших ютубах

нередко требуют подтвержденной точности передачи данных

ютубах

точности

так видео воспроизведется даже, если пакет какой потеряется… ты даже артефакт этот воспроизведения не заметишь, а если на странице что-то не подрузится, лишь еще раз ее обновишь

rtxtxtrx ★★
()
Ответ на: комментарий от rtxtxtrx

ага и совсем другое дело потеря данных при пересылке, к примеру, банковских данных….. :)
потому там транзакции, сложные и мудрёные, вместо высокоскоростного http :)

pfg ★★★★★
()
Ответ на: комментарий от pfg

ага и совсем другое дело потеря данных при пересылке, к примеру, банковских данных….. :) потому там транзакции, сложные и мудрёные, вместо высокоскоростного http :)

Там HTTP и JSON/XML. Серьезно, хватит позориться.

gaylord
()
Ответ на: комментарий от pfg

данные просто не обработаются. ты при отправке запроса указываешь content-length, если там что-то не совпадает, то ничего и не было типа. работает все как часы по факту

rtxtxtrx ★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.