Опубликован (https://www.mail-archive.com/xorg-announce@lists.x.org/...) релиз X.Org Server 1.20.3, в котором устранена опасная
уязвимость (https://www.mail-archive.com/xorg-announce@lists.x.org/...) (CVE-2018-14665 (https://security-tracker.debian.org/tracker/CVE-2018-14665)), позволяющая повысить свои привилегии или перезаписать любой файл в системе. Проблема проявляется только при запуске X-сервера в режиме запуска с повышенными привилегиями (когда исполняемый файл x-сервера поставляется с установленным битом setuid root и любой непривилегированный пользователь может запустить x-сервер).
Суть уязвимости в том, что при запуске X-сервера пользователь может
поменять путь к модулям при помощи опции "-modulepath" и добиться загрузки своего модуля, который будет запущен на этапе до сброса привилегий с правами root. Второй вариант атаки связан с использованием опции "-logfile", при помощи которой локальный злоумышленник может направить вывод лога в любой файл в системе. Например, можно указать в качестве аргумента "-logfile" файл /etc/shadow и переписать его содержимое, заменив строку с хэшем пароля суперпользователя. Для подстановки нужной строки в файл /etc/shadow можно использовать опцию "-fp", значение которой выводится в лог.Уязвимости вызваны ошибкой, внесённой (https://gitlab.freedesktop.org/xorg/xserver/commit/032b1d79b7) при подготовке ветки xorg-server 1.19.0 и приводящей к игнорированию проверок некоторых потенциально опасных опций. В качестве обходного пути решения проблемы рекомендуется убрать флаг suid с файла /usr/bin/Xorg и использовать дисплейный менеджер для запуска графического сеанса. Проблема
проявляется (https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2018-14665) в RHEL 7.5 и Fedora (https://bugzilla.redhat.com/show_bug.cgi?id=1643131), но из-за ограничений PAM для эксплуатации атакующий должен иметь доступ к локальной консоли (через SSH эксплуатировать уязвимость не получится). В Ubuntu (https://people.canonical.com/~ubuntu-security/cve/2018/CVE-2...) и SUSE 12+/openSUSE 42+ (https://bugzilla.redhat.com/show_bug.cgi?id=1643131) проблема не проявляется, так как там не используется бит setuid (в SUSE 11 проблема присутствует).
URL: https://www.mail-archive.com/xorg-announce@lists.x.org/...
Новость: https://www.opennet.dev/opennews/art.shtml?num=49500
Пилят, пилят Иксы по частям, а глубже никто не хочет лезть. Как же там наш Веланд?
> Пилят, пилят Иксы по частям, а глубже никто не хочет лезть. Как же там наш Веланд?В Вейланде как раз как вы хотите: смело лезут в самое нутро и меняют всё, что давно не менялось. Ну чтобы код не устаревал, как в Иксах.
Все проще: в вэйланде в коде еще более-менее можно разобраться. А в иксах большинству народа уже не помогает даже поллитра уже. Там такой код что большинство двуногих завидев его с...вает в панике.
>Там такой код что большинство двуногих завидев его с...вает в панике.Зато одноногие сохраняют завидное хладнокровие. Ё-хо-хо и бутылка рома!
>Все проще: в иксах, код за многие годы уже и не нужно трогатьПофиксил тебя
Когда уже Wayland допилят, с иксами столько проблем...
Уже давно допилили.
Тогда почему у меня иксы по-умолчанию в Убунте 18.04? И я даже вынужден был после пары зависов GDM расчехлить WaylandEnable=false в custom.conf? Ах даа, это же неправильный дистрибутив!
> Тогда почему у меня иксы по-умолчаниюПотому что ты расчехлил WaylandEnable=false.
> после пары зависов GDM
Это и есть допиленное состояние Вейланда. Наслаждайтесь.
Иксы по-умолчанию в Убунте 18.04 не потому что Wayland не допилен.
Года полтора назад, я сижу с 25-й федоры.
> Когда уже Wayland допилят, с иксами столько проблем...Те же люди из @redhat.com, разумеется, ни разу не вносят порблемы в laywand, ага.
Список коммитов от россиянских создателей форка Mandrake где можно посмотреть? ;)
Ой, простите, я забыл, альтовцы так стесняются и всячески отрицают родство с мандрейком ;) Они так хотят казаться настоящим дистрибутивом. Но мы-то знаем ;)
А разве не Роса форк Мандрейка?
Ты лет на десять ошибся :) Росе досталась толи третья, толи пятая производная Мандрейка...А тут речь про гордый Альт, который как тот ёж, который не полетит, пока не пнёшь. Толку от них 0 (ни строчки кода, ни пользовательской базы, только перепаковка того, что делают другие), зато очень много ценного мнения течёт из всех щелей ;)
А ещё говорят, Альт там, здесь.. Много такого слышал, но ни разу сам не видел.
Официальное ответвление от Mandriva - Mageia. А Росинка - форк Mandrake, один из многих, но никак не официальное продолжение
> Они так хотят казаться настоящим дистрибутивомОн был настоящим дистрибутивом задолго до появления быстрого интернета, Убунты, Путина у власти, и партии Единая Россия. В начале 00-х во всём мире были популярны национальные дистрибутивы. Во Франции - Mandrake, в Германии - SUSE, в Бразилии - Kurumin, в России - Alt и ASP. В своих странах, каждый национальный дистрибутив был едва ли не популярнее Red Hat-а, и был с ним совместим (RPM-ки прекрасно "ставились" в них)
Альт появился уже после прихода Х-ла к власти и основания ПЖиВ (en.wikipedia.org/wiki/ALT_Linux).Наверняка Шигорин сотрёт этот коммент. :)
А можно ваши нормальные мысли без выcеров посмотреть? А то постите форки на нормальные мысли.
> Те же люди из @redhat.com, разумеется, ни разу не вносят порблемы в laywand, ага.Там значительно меньше функциональности в которую они могут внести проблемы. И таки вэйланд писался в другую эпоху, когда разработчики уже были в курсе про vuln. Хорошо ли, плохо ли, но сделать хуже иксов - они не смогут. Они не настолько таланты.
Иксы это кладезь проблем безопасности. By design. Сложный и очень функциональный по своей задумке код, хватающийся делать все и вся, для работы нужны повышенные привилегии, ибо вообще всем разрешать без повышенных прав в GPU лезть - чревато. А поскольку писалось при царе горохе, когда слова vuln еще и не знали даже - одна только эпопея с попытками оторвать нужду в рутовых правах у иксов достойна эпических саг. В силу общей костыльности кода - его большинство народа вообще боится тыкать палочкой. Поэтому его изученность на предмет vuln - в районе плинтуса, так что узнавать о проблемах вы будете чего доброго когда возжелавший срубить $$$ кидо загонит на черном рынке сплойт.
Его главная проблема - suid, впрочем, как и других suidных программ. Но сейчас же код, который, обращается к регистрам аппаратуры вынесен в ядро, поэтому в suid необходимости нет. SUSE, говорят, тому пример.
> Уязвимости вызваны ошибкой, внесённой при подготовке ветки xorg-server 1.19.0 и приводящей к игнорированию проверок некоторых потенциально опасных опций.Убрали проверки, что ли? А зачем?
Diff посмотреть религия не позволяет?
> Diff посмотреть религия не позволяет?Посмотри за меня, анон, ты такой умный. А потом расскажешь.
один рукожоп полез улучшать код, которого не понимал (и который в его улучшизме вовсе не нуждался). Другой рукожоп одобрил не читая - "зато как быстро таск закрыл".Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>это заодно и о "пользе" модной практики code review - бессмысленной траты времени и нервов.
но прежде всего о допуске профнепригодных людей к серьезным проектам вообще.
По хорошему - обоим права коммита отобрать и пинком под жопу из проекта, не считаясь с прошлыми заслугами (если даже и были, во что поверить трудно). На практике это делать некому.
Ну так таки же да.Очередное подтверждение глубокой концептуальной ошибочности веры в миллионы зорких глаз, когда глаза эти в пустых головах.
В оригинале "тысячи глаз", кажется, не должны допустить говнокодия. Реальность и я всегда над этим смеялись.
> В оригинале "тысячи глаз", кажется, не должны допустить говнокодия. Реальность и я
> всегда над этим смеялись.В сторону от темы.
Для меня самым крупным «десктопным» разочарованием года (на сей момент) стала Солярка 11.4: оракули убрали из неё GNOME 2 (который был в 11.3) и вкорячили GNOME 3. ОС стала не просто «тихоходной», а жутким тормозом, который жрёт память и процессор безо всякой меры. Понятно, что на сервере это всё не надо, да и ресурсы там иного порядка, чем на моём ПЦ. Но вот сам факт резко напряг: а если они не только ДЕ так вкорячивают в ОС, не глядя?
> оракули убрали из неё GNOME 2 (который был в 11.3) и вкорячили GNOME 3Надо бы MATE.
>> оракули убрали из неё GNOME 2 (который был в 11.3) и вкорячили GNOME 3
> Надо бы MATE.Там вообще никакое DE не нужно, вот в чём фокус.
Зачем там вообще ДЕ?
> Зачем там вообще ДЕ?Необъяснимо. Особенно при учёте того, что если уж сильно хочется графики, то автоматическая генерация меню для оконных менеджеров не является проблемой, а специальные фирменные графические утилиты сантехников написаны на жабе. Когда в Солярке было CDE, то это хоть было разумно и понятно.
> оракули убрали из неё GNOME 2собери сам. Что, не собирается (точнее, с ним не собирается ничего из современных версий)? Ну, вот...
или ты ждешь что оракл помимо просто опакечивания будет сам поддерживать брошенные "сообществом" обглоданные кости?
интересно, openlook еще хоть как-то можно собрать?
Мне-то не надо никакое GNOME, вполне бы хватило IceWM, WindowMaker или, внезапно, CDE, да даже и twm терпим, если прижмёт. Но оракулям виднее: мы говорим «Ленин»^W solaris-desktop подразумеваем «партия»^W GNOME. Причём с «Required Solaris Patches». Неужто было сложнее пару тех своих патчей приклеить к IceWM?
>Очередное подтверждение глубокой концептуальной ошибочности веры в миллионы зорких глаз, когда глаза эти в пустых головах.А кто по Вашему это увидел ? А кто исправил ? Лично Вы ? Или всё же кто то из тысяч зорких глаз и дотошных мозгов ?
глаза-то как раз заметили - кому-то не получающему зря зарплату от редхата, видимо, этот коммит все же попался.но тут случай уж больно образцовый - тривиальное изменение, в тривиальном коде, причем уши торчат в первых двух строчках.
а вот то что не сработала стандартная процедура, между тем, жрущая время и нервы - говорит и о состоянии xorg, и о всей чудо-индустрии вообще.
Да. Случай трешовый в самом образцовом виде. А в новостях всякие sjw пишут, что ошибка, ага.
> Уязвимости вызваны ошибкой, внесённой при подготовке ветки xorg-server 1.19.0 и приводящей к игнорированию проверок некоторых потенциально опасных опций.Вот это сообщение вводит в заблуждение: нету там никакой ошибки, а только рукожопие, возможно и злонамеренное.
Странички одного из героев дня (Adam Jackson <ajax@redhat.com>) красноречивы.https://freedesktop.org/wiki/AdamJackson/
> Странички одного из героев дня (Adam Jackson <ajax@redhat.com>) красноречивы.Ну так и шел бы кодить иксы вместо героев. А то на словах все донхуаны.
> обоим права коммита отобратьСам у себя Emil Velikov право коммита отбирать будет что-ли?
п.с. Кто такой Adam Jackson - пока не знаю
стесняюсь спросить - а что, других разработчиков в этом проекте уже не осталось, и менеджмента у них тоже нет - дали пароль от репы и крутись как хочешь?(в принципе-то, конечно, судя по состоянию проекта, примерно так если и не есть, то очень скоро будет)
> стесняюсь спросить - а что, других разработчиков в этом проекте уже не осталосьПриколись, желающих майнтайнить архаичный код с кучей проблем и костылей - действительно немного!
>> стесняюсь спросить - а что, других разработчиков в этом проекте уже не осталось
> Приколись, желающих майнтайнить архаичный код с кучей проблем и костылей - действительно
> немного!Довожу до твоего сведения, деточка, что проблема не в сопровождении «архаичного кода», а в рукожопии подобных тебе обезьянок, сующих свои корявые куда не просили.
> Кто такой Adam JacksonMy name is ajax, and I work on X.
Current projects:
Miscellaneous Fedora stuff.
Miscellaneous work stuff.
World domination.
>По хорошему - обоим права коммита отобрать и пинком под жопу из проектаИ так, судя по всему Вы дальше своего носа не видите ?? или может быть Вы лично принимаете участие в разработке и развитии X ?
Вы как только всех выпните из проекта .... Вы покажите какой Вы крутой программист и будете вести разработку ?
Ошибки совершают все, Или ВЫ ни разу не совершали ошибки ? (что совершенно не реально), другое дело что нужно на них учиться и если уровень разума позволяет то учиться на чужих ...
P.S.
Как же эти разума лишённые "нечто" достали, лишь бы сразу показать ЧВС, шашкой помахать .... да повизжать что всё так плохо, а сами ровным счётом ниже уровня плинтуса....
дорогой "нелишенный разума", если этот Емеля перестанет "вести разработку", проекту xorg только похорошеет.Потому что то что он "наразрабатывал" мы только что имели возможность в деталях рассмотреть.
И нет, это не ошибка, это системная функция. Он a) полез в код, который в его деятельности не нуждался вовсе b) кода не понял c) сломал то, что до него работало.
Можете продолжать верить, что в любом другом куске проекта такой человек может что-то случайно сделать хорошего.
>если этот Емеля перестанет "вести разработку", проекту xorg только похорошеет.Если Он это делает систематически - да, в этом случае Я буду согласен с Вашим мнением, ибо сталкивался с такими представителями .... и действительно приходилось исключать из проектной деятельности, но если это произошло случайно, что же... все не без греха...
>>Потому что то что он "наразрабатывал" мы только что имели возможность в деталях рассмотреть.
Опыт - дело наживное и дорогое, с ним никто не рождается .... да и его наработка стоит многих шишек ... не говоря уже о финансовых затратах ...
>>Он a) полез в код, который в его деятельности не нуждался вовсе b) кода не понял c) сломал то, что до него работало.
Пожалуйста расскажите мне откуда такая информация ? Мне лично очень любопытно =) Так как увы не имел чести работать над проектом X сервера и мне сложно понять его мотивацию ...
> Опыт - дело наживное и дорогое, с ним никто не рождается ....да, но в нормальных проектах неопытным джунам делать нечего - для них есть петпрожекты и гуглосаммер, если человеку доверено принимать патчи в то, что используют миллионы - он должен был пройти, наверное, хоть какой-то отбор и уже что-то уметь?
>>>Он a) полез в код, который в его деятельности не нуждался вовсе b) кода не понял c) сломал то,
>>>что до него работало.
> Пожалуйста расскажите мне откуда такая информация ? Мне лично очень любопытно =)открываете по ссылке к новости коммит и наслаждаетесь.
> По хорошему - обоим права коммита отобрать и пинком под жопу из проектаИ кто иксы вообще кодить будет тогда? Желающих соваться в этот здец осталось полтора человека.
Ноль программистов ругал сердитый шеф.
Потом уволил одного, и стало их FF.
Да ты хоть прочти, анон, о чём проблема. В исходничек посмотри. Там всё очень красиво, просто сияет.
> И кто иксы вообще кодить будет тогда? Желающих соваться в этот здец
> осталось полтора человека.у вас ядерный реактор работает, как-то, последние лет тридцать, аварийные лампочки не горят, отработанные сборки заменяете по регламенту. И тут вдруг прибегает мальчик со сварочным аппаратом -- "а давайте я вам тут что-нибудь поулучаю - других-то желающих нет"! И шеф такой, по головке его гладит (по всем трем) - давай, малыш, все равно уже всем.
ну значит не надо туда соваться - "все ушли в вафлянд", "линукс ваш новый стандарт". А этот проект умрет, так ж как XFree86.
> Например, можно указать в качестве аргумента "-logfile" файл /etc/shadow и переписать его содержимое,Но позвольте, SELinux же не должен дать Xorg возможности перезаписать файл в домене etc!
пользователь может поменять путь к модулям при помощи опции "-modulepath"
Это иксовые модули, а не ядерные.
> пользователь может поменять путь к модулям при помощи опции "-modulepath"И как это ему поможет?
Там, где selinux есть - не даст, но эскалация все равно будет. А Xserver'у разрешено создавать файлы там, где нет меток и еще некоторые другие вещи, т.к. он потенциально работает с кучей железа и делает до хрена всего, это все приходится разрешать. Он такой монстр, что продуктивно защитить его selinux'ом сложно. Поэтому модель безопасности там в какой-то момент решили строить на запуске без привилегий, с использованием capabilities + драйверов в ядре.SELinux не панацея, если прога очень сложная, то ее никакой изоляцией внятно не защитить с сохранением функциональности. Браузер, к примеру, вообще нереально.
> Там, где selinux есть - не даст, но эскалация все равно будет.
> А Xserver'у разрешено создавать файлы там, где нет меток и еще
> некоторые другие вещи, т.к. он потенциально работает с кучей железа и
> делает до хрена всего, это все приходится разрешать. Он такой монстр,
> что продуктивно защитить его selinux'ом сложно. Поэтому модель безопасности там в
> какой-то момент решили строить на запуске без привилегий, с использованием capabilities
> + драйверов в ядре.
> SELinux не панацея, если прога очень сложная, то ее никакой изоляцией внятно
> не защитить с сохранением функциональности. Браузер, к примеру, вообще нереально.Согласен, что не панацея, но данный конкретный пример не должен сработать.
>> Например, можно указать в качестве аргумента "-logfile" файл /etc/shadow и переписать его содержимое,
> Но позвольте, SELinux же не должен дать Xorg возможности перезаписать файл в
> домене etc!Не понятно почему там должно быть setuid root.
(хотя конечно бывает. почему-то...).
в общем "исправление" имеет озабочивающие признаки ненужности.
Когда я писал свою suid прогу, я специально проверял, что все файлы, необходимые ей для работы, не доступны простым пользователям для записи. Первым делом в голову пришло, а я ведь системным программированием редко балуюсь. А тут профессионалы.
Такие же профессионалы как и ты. Чем в данном случае поможет, что /etc/shadow недоступен для записи? Что будет, если нехороший пользователь сначала запишет в файл, а потом уберет у себя право записи? Что будет, если в файл писать нельзя, а удалить и создать заново можно?
> Что будет, если в файл писать нельзя, а удалить и создать заново можно?В ОС здорового человека от этого помогает ACL. :)
gpedit.msc
> gpedit.mscПочти. ACL — это намного-намного больше: en.wikipedia.org/wiki/Access_control_list
Думаю речь шла про загрузку левых модулей через -modulepath
Если бы иксы требовали что владельцем модуля должен быть root и что у группы и остальных нет права на запись, то этой уязвимости можно было бы избежать.
(Хотя тут возможно состояние гонки между моментом проверкой прав и подключением либы)
Локальные root-уязвимости - это хорошо. Кто-нибудь выпустит залоченное устройство, надо будет его как-то рутать.
Только не говорите что вяленный без этого же костыля для повышения привелегий работает
В жизни не поверю
он разьве вообще работает из командной строки?
Заглянул только что в свойства /usr/bin/Xorg в Fedora 29 и никакого выставленного бита suid там не обнаружил :)
А если честно, то когда читал, меня аж передёрнуло, что такое могло быть ))
Такое было. И очень долго. "На то были причины!"
А от suid-ных ping и traceroute не передёргивает?
Да, я, вообще то, утрировал, но тут, кажись, что-то напутано с suid/guid исполняемых файлов и процессами, запускаемыми пользователями системы)
Если быть точнее, то напутано С ПРИНАДЛЕЖНОСТЬЮ процессов, запускаемых пользователями системы.
Ping успешно переводится на Linux Capabilities.
нет, у меня там нет setuid бита.
Ну это у тебя нет. А в убунте естб, и ничего, живут как-то люди.
А дыру с доступом кого угодно к буферу обмена в X уже пофиксели?
В арче:
ls -la /usr/bin/Xorg
-rwxr-xr-x 1 root root 271 окт 16 18:15 /usr/bin/Xorg
вроде не подвержен.
Если посмотреть эту новость в других источниках, то получается, что suid тут совсем не причём. Опасность заключается в некоторых изюминках самого процесса, беря во внимание его принадлежность. Который, к слову, по всей вероятности и в Arch запускается совсем не из /usr/bin
Как же все-таки _грамотно_ перезагрузить XServer без полного ребута?
Ctrl+Alt+BkSp
> Ctrl+Alt+BkSpЕсли заблаговременно не отключили в настройках.
переключиться на виртуальную консоль ctrl+alt+f1..6, залогиниться и выполнить sudo service/invoke-rc.d lightmd/ gdm/ kdm (или какой там у Вас дм) restartк примеру на для lightdm: sudo invoke-rc.d lightdm restart преведёт к перезапуску X сервера.
либо как говорится выполнить перенастройку X / клавиатуры и включить хук для его перезапуска по ctrl+alt+backspace
Для дистрибутивов основанных на Debian: sudo dpkg --reconfigure keyboard-configuration
> Как же все-таки _грамотно_ перезагрузить XServer без полного ребута?а смысл? Со времен впихивания в ядро ненужно-kms перезагружать xserver стало незачем.
ls -la /usr/bin/Xorg
-rws--x--x
Я круче всех .)