В утилите smb4k, применяемой в KDE для обнаружения и монтирования SMB-разделов, выявлены уязвимости, позволяющие получить root-доступ к системе. Проблемы устранены в выпуске Smb4K 4.0.5. Проверить состояние новой версии пакета или подготовки исправления в дистрибутивах можно на следующих страницах: Debian, Ubuntu, Fedora, SUSE/openSUSE, Gentoo, Arch и FreeBSD...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=64422
В 2017 году уже была дыра в KAuth, эксплуатируемая через smb4k. Странно, что тогда smb4k не проверили, ведь проблемы очевидные.
> не фильтровали опцииУх ты, очередной CVE - и НЕ про дырявую память сишки...
Доколе?!! Сколько себя помню, самба всегда была дырой, видать так и останется...
Точнее, архитектура протоколов SMB.
только к архитектуре протоколов SMB данная дыра вроде отношения особо не имеет.
Тут про архитекторов, а не архитектуру.
> Уязвимости присутствуют в обработчике Smb4KMountHelper и вызваны тем, что функции для монтирования (CVE-2025-66003) и отмонтирования (CVE-2025-66002) сетевой файловой системы должным образом не фильтровали опции, передаваемые командам mount.cifs и unmount.cifs, что позволяло непривилегированному пользователю передать данным командам любые опции через параметр mh_options.Только тут вообще не про архитектуру протоколов SMB
Как не про архитектуру протокола SMB?
Не было бы протокола SMB, не было бы этой утилиты, не было бы дыры. Причина дыры все равно в существовании протокола SMB
Я подобные комментарии на этом форуме читаю примерно 15 лет, и они не меняются.Какая разница, какой протокол используется если:
1. Уязвимость в утилите-обвязке для монтирования. Буквально обвязке над mount
2. Потому что модули выполняются от root в оболочке, в которую можно послать опции монтирования чего угодно.
3. При этом утилита не фильтрует
4. И всё это происходит в ОС, в которой "безопасность" строится на SUID-битах из 70-х годов, которые дырка в безопасности by design.Проверим, сколько в 2025-ом году нужно времени, чтобы набежали неграмотные труюниксвейные бараны, которые не смыслят ничего в ИБ, и начнут рассказывать, что SUID-это грамотный подход. Ждем-с.
KDE всегда KDE.
Но красивое.
кросивое?? да оно только абсолютно_вырвиглазным из коробки перестало быть, когда стали нечто похожее на вынь10 лепить по умолчанию.
> KDE. Но красивое.Qt интерфейс никогда красивостью не отмечался.
Поэтому разработчиками KDE был создан фреймворк Kirigami.
> но в if-блоке для вывода ошибки был пропущен оператор "return" и выполнение не прерывалось.ну вот к чему приводит "неявный" (забытый) return 0; :)
кто сказал что забытый, может его специально не добавили, пользователь сказал отмонтировать чтото, какие тут проверки и отказы, можешь - делай. варнинг можно добавить, посмотреть потом как часто в логах будет мелькать.
> кто сказал что забытыйНовость говорит "для вывода ошибки был пропущен оператор "return" и выполнение не прерывалось.".
А я к тому что привычка не писать в явном виде return 0; у обычных функций приводит к тому, что тупо забывают его писать там где нужно.
новость не показатель, я иногда пишу в коде if чтото там с выводом в лог, а иногда и без, просто чтобы помнить про такую возможность.> что тупо забывают
бывает и такое, но редко, прям очень редко, если есть куча разнородных условий почему нельзя продолжать...логично проверять все условия, а потом по факту, продолжать или нет, сообщая в дебаг что причина такая или такие, но это логичнее делать в отдельной функцие...но, блин, на каждый чих такое тоже делать не будешь, do while, можно использовать, чтобы поиграться и включать/выключать условия.
в части umount, является ли это ошибкой сказать нельзя однозначно, была команда отсоединить, с какого рожна функция должна проверять что она является частью программы для работы только с какойто там фс и поэтому не должна трогать другие фс, а если smb6 завра релизнут, переписывать чтоли.
монтирование /bin это конечно сильно, но колхозить отдельный список каталогов куда нельзя монтировать это тоже бред, обычно для таких вещей делается префикс, в линуксе /mnt по умолчанию он из каробки есть, нафига изобретать велосипед, /media придумали, хз зачем, ..это скорее показатель того что старые стандарты еще не отменили, но уже не соблюдают, а новые еще не написали.
почему юзер не имеет права поменять себе /usr, контейнер же он может запустить со своим образом, значит и менять себе /usr, имеет право, значит ядро должно для данной пользовательской консоли создавать отдельный список смонтированных точек, и когда юзер монтирует /usr или /bin в его личном списке и менять, не трогая списки других юзеров, логично же, но писать лень, поэтому пусть kde эти проблемы решает как хочет.
> я иногда пишу в коде if чтото там с выводом в лог, а иногда и безНаписано ведь "которая пропускала только разделы cifs, smbfs и smb3", то есть условно:
if (!(fs == cifs || fs == smbfs || fs == smb3))
{
debug_print("Unknown FS!");
return -1;
}... И дальше нормальный код, и если в таком случае не сделать return, то будут проблемы.
> do while, можно использовать, чтобы поиграться и включать/выключать условия.
эт как? я чет не понял.
> с какого рожна функция должна проверять что она является частью программы для работы только с какойто там фс и поэтому не должна трогать другие фс,
Ну как с какого? Сама функция так и называется Smb4KMountHelper::unmount(), это же не Fat32MountHelper, программа имеет прямое отношение к smb.
> а если smb6 завра релизнут, переписывать чтоли.
добавят новый случай в выше приведенное условие, в чем проблема? В любом случае это проверка должна быть и должна быть проверка крайнего случая, когда ФС не та.
> хз зачем, ..это скорее показатель того что старые стандарты еще не отменили, но уже не соблюдают, а новые еще не написали.
Ну вот и я хз, не я автор, я сторонник не скрещивать "легаси" с "новым" кодом (противник так называемой обратной совместимости).
> почему юзер не имеет права
Не могу ответить на эти ваши вопросы, мне как-то по одному месту как там у них что сделано. Такие вопросы лучше задавать напрямую разработчикам, если вас это реально тревожит.
Не знал, что smb4k еще жив. Пакеты с ним не поставляются уже несколько лет.
в бубунте нужно пол кедов поставить для этой "утилиты".
> Например, при помощи опций "filemode=04777,uid=0" всем файлам в примонтированном
> разделе будет выставлен флаг suid root.Ммм.... прикольно! Я конечно знал что виндовые шары дыра на дыре, но вот это - просто новое слово в технике щелкания клювом, автоголов и тому подобных достижений :)
>Я конечно знал что виндовые шары дыра на дыреMicrosoft имеет какое-то отношение к тому что утилиты в твоей эрзац-ОС написаны форменными птушниками?
> Microsoft имеет какое-то отношение к тому что утилиты в твоей эрзац-ОС написаны
> форменными птушниками?Они заложили славную традицию делать их дырявыми что капец :). Я сбился со счета сколько вулнов было в винде по поводу шар. Кто сказал что индусы нанятые по объявлению чем-то лучше птушников, собссно? :)
А в чём ещё должны быть уязвимости?
В калькуляторе?Посмотри количество уязаимостей в NFS
> А в чём ещё должны быть уязвимости?Судя по msblast - еще в этом их фирменном RPC сервисе, забыл уже как он называется, lsass, чтоли. Во всяком случае раньше червяки не дающие даже апдейты скачать - невозбранно доставляли. А сейчас я уже честно говоря и не следил.
Тысячи глаз по какой причине не сделали лучше?
потому, что у глазок нет ручек.
> Тысячи глаз по какой причине не сделали лучше?Потому что в переусложненной байде фигня получается. SMB наворотили что капец еще майкрософт, разгребать эти авгиевы конюшни желающих предсказуемо немного. А тут еще - какой-то aux crap в жирных кедах. Монстр на монстре и монстром погоняет. Где столько мазохистов набрать для смотрения в это нечто? Еще и бесплатно небось, мды?
>> Тысячи глаз по какой причине не сделали лучше?
> Потому что в переусложненной байде фигня получается. SMB наворотили что капец еще
> майкрософт, разгребать эти авгиевы конюшни желающих предсказуемо немного. А тут еще
> - какой-то aux crap в жирных кедах. Монстр на монстре и
> монстром погоняет. Где столько мазохистов набрать для смотрения в это нечто?
> Еще и бесплатно небось, мды?Что там наворотили- то? А то непонятно.
а ничего, тот факт, что монтировать имеет право только root, и uid=0 это буквално by дизайн.
> монтировать имеет право только rootПодумай, каким образом утилита сабжа применяет опции монтирования... Или, например, как монтируется флэшка, когда её юзер в усб воткнул.
Первым делом после установки линукса всегда выносил всю самбу во всех проявлениях.
На домашнем компьютере само собой. Но в учреждении samba - основа всего.
Но в учреждении samba - основа всего... если все клиенты сидят на винде.
> все клиенты сидят на виндеНет SMB - нет проблем. Народ начинает понимать, зачем нужна виндоуз.
в поликнике номер 4, наверное, ну в аэрофлоте видимо тоже, а в нормальных конторах самбы нет
подскажите плиз замену samba для обмена файлами и, иногда, совместной работы? ftp? какой-то внутренний сайт типа nextcloud?
> подскажите плиз замену samba для обмена файлами и, иногда, совместной работы? ftp?
> какой-то внутренний сайт типа nextcloud?Да, nextcloud/owncloud
Хотя дома я использую Samba (Windows нет). Не поднимать же инстансы nextcloud/owncloud ради такой мелочи. Работает из коробки хоть где (Android, iPadOS, macOS, Ubuntu).
sshfs чем плох
sshfs не позволяет настроить права по алгоритму "юзер внутри группы внутри группы внутри группы и акцесс-листы в 7 уровней с перекрытиями", как привыкли виндоадмины.анону уровнем выше советую bitrix копропортал и в порядке особого издевательства sharepoint.
syncthing
> Хотя дома я использую Samba (Windows нет)Нет ни того, ни другого. Пользуюсь eSATA.
Проблема надуманная. До монтирования раздела сервер запросит авторизацию и не позволит примонтировать ресурсы, которые данному пользователю не положены.
Пользователь введёт пароль, потому что ему понадобилось примонтировать папку. Не вижу никакой надуманности. Не zero-click, но хакнуть типичного "поставить линукс из коробки чтобы всё работало" можно.
Пользователь сможет примонтировать только ресурс, который ему разрешено примонтировать. Что не так?
создать вм, и там себе сделать любую шару, не отходя от кассы
В том то и дело, что монтирование и размонтирование в smb4k разрешены без пароля:
https://invent.kde.org/network/smb4k/-/blob/master/helpers/s...
Policy=yes
Для запроса пароля должно быть Policy=auth_admin
Предполагается, что на сервере сделаны верные настройки.
>Предполагается, что на сервере сделаны верные настройки.Сервер может принадлежать хакеру и может даже отправлять эксплоиты.
> добиться вывода содержимого любого файла, например, /etc/shadowИ что потом с ним делать? Перебирать пароли пока вселенная не погаснет? Понятно, что вывод любого файла серьёзная проблема, учитывая что в юниксе всё файл, но зачем такие убогие примеры приводить? Можно было бы что-то покреативнее придумать. Например, украсть куки у браузера или /home/vasya/passwords.txt.
>Перебирать пароли пока вселенная не погаснет?Там разве всё ещё не md5 с солью? Такое нынче можно подбирать на облачных GPU за вменяемое время, особенно если пароль это слово или слово с добавлением цифр в популярные места вроде замены O на 0 и цифры в начале и конце пароля.
даже в убунте 22.04 - yescrypt + соль
> Например, украсть куки у браузеракукисы чуть менее бесполезны, чем /etc/shadow. Там сейчас тоже сплошь одни хеши сессий, привязанных на контекст (браузер, IP и т.д.). Сменишь контекст - пропадёт кука.
ну, ip там врядле используется, а браузеру поненять строку агента много ума не надо, да и какбы, зачем, просто с этой кукой попытаться слить данные с сайта, или деньги со счета если сайт банка. Сайту то откуда знать кто там сидит с этой кукой, браузер с кэшем, или скрипт с хакером.
> ip там врядле используетсяХе-хе, это ты сайты не видел, где даже вообще есть фиксация IP, не только в пределах сессии.
> если сайт банка
Банки далеко не только кукисы используют. И даже при этом время жизни у сессии короткое. Ещё по секрету скажу, что надо воровать не только куку, но и все JS-переменные из памяти :))) Надеюсь, догадаешься, зачем. Сессия-то не персистент.
А в Android такие логические уязвимости из-за Rust'а вынесли ИЗ sandbox'а. Вот вам и бижапасность Rust'а.