The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Уязвимость в приложении openSUSE-welcome, позволяющая выполнить код под другим пользователем

24.08.2023 09:44

В приложении openSUSE-welcome, применяемом в дистрибутиве openSUSE для ознакомления новых пользователей с особенностями системы, выявлена уязвимость (CVE-2023-32184), позволяющая выполнить код с правами другого пользователя. Приложение openSUSE-welcome запускается автоматически после первого входа пользователя в систему и в случае выбора графического окружения Xfce предлагает возможность включения альтернативных вариантов раскладки элементов на рабочем столе. Обработчик, выполняющий выбор раскладки, некорректно обрабатывал временные файлы, что позволяло другому пользователю организовать выполнение своего кода с правами жертвы, перешедшего к выбору раскладки рабочего стола Xfce.

Уязвимость вызвана тем, что в методе PanelLayouter::applyLayout() использовался фиксированный каталог "/tmp/layout" для сохранения tar-архива с настройками Xfce. Архив с настройками обрабатывался через вызов встроенного Python-скрипта, который в свою очередь вызывал скрипт "/usr/share/xfce4-panel-profiles/xfce4-panel-profiles/panelconfig.py" от проекта Xfce. В коде PanelLayouter::applyLayout() выполнялась проверка наличия каталога "/tmp/layout", но не учитывались коды ошибок, возвращаемые функциями удаления и копирования данных, что в случае размещения вместо каталога "/tmp/layout" файла с тем же именем приводило к продолжению выполнения функции, несмотря на возвращаемые ошибки. В итоге, атакующий получал возможность управлять данными, передаваемыми Python-скрипту.

Запускаемый скрипт panelconfig.py поддерживает не только изменение конфигурации Xfce, но и размещение файлов с ресурсами ("*rc") в домашнем каталоге пользователя. Имея возможность подставить свои данные вместо исходного tar-архива, атакующий мог разместить в этом архиве дополнительные файлы и добиться их копирования в домашний каталог пользователя. Таким способом атакующий мог разместить свой файл ".bashrc" в домашнем каталоге пользователя, нажавшего в openSUSE-welcome кнопку настройки Xfce, и добиться выполнения своего кода.

Исправление доступно в виде патча, который уже включён в состав пакетов c openSUSE-welcome, предлагаемых в openSUSE Tumbleweed и openSUSE Leap 15.4 / 15.5.

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Через уязвимость в WordPress атакующие подменили страницы сайта openSUSE
  3. OpenNews: В Ubuntu выявлена уязвимость, позволяющая обойти блокирование экрана в Unity
  4. OpenNews: В Ubuntu 14.04 устранена уязвимость в GTK+, позволяющая обойти блокирование экрана
  5. OpenNews: Уязвимость, позволяющая обойти блокировку экрана в дистрибутивах с рабочим столом Cinnamon
  6. OpenNews: В Ubuntu 14.04 устранена уязвимость, допускающая вход в заблокированный экран без пароля
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59651-opensuse
Ключевые слова: opensuse, vulnerability
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (38) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, soarin (ok), 09:59, 24/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Добро пожаловать, вот вам backdoor
     
  • 1.3, Аноним (3), 10:07, 24/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Веский довод за удаление бессмысленных приложений. Которых немало хоть в Linux, хоть в альтернативе.
     
  • 1.4, _kp (ok), 10:17, 24/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >>но не учитывались коды ошибок,

    Да где ж это виданно, на Питоне ошибки обрабатывать. Это чуть ли не ересь. Шутка, но основания для неё же есть.

     
     
  • 2.5, Аноним (5), 10:22, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > В коде PanelLayouter::applyLayout()

    Это не питон. Скрипт на питоне вызывается вот отсюда, без проверки того что входные данные для него нормально записались. А питон доверчивый, да, что ему подсунули в /tmp/layout то и отработал.

     
  • 2.30, Аноним (30), 14:45, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Да где ж это виданно, на Питоне ошибки обрабатывать. Это чуть ли не ересь.

    Питон использует исключения, поэтому не обработать ошибку (в данном случае - при проверке наличия каталога) в принципе невозможно.

    Но конкретно этот код написан на C++ и использует функции Qt, а они возвращают коды ошибок. Результат налицо.

     
     
  • 3.44, Аноним (44), 06:57, 25/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Питон использует исключения, поэтому не обработать ошибку (в данном случае -
    > при проверке наличия каталога) в принципе невозможно.

    Как показали эксперименты, самая типовая реакция питоноскриптов на ошибку - забить по максимуму. А потом - возможны варианты. В убунте, например, питонапдейтер на любые проблемы сети - врет про то что апдейтов для системы - нет. Хотя они, конечно, есть, а падлюка даже прочекать не смог их наличие - но соврать уже сумел. И вот так у питонистов везде :E


     
     
  • 4.46, Аноним (5), 09:59, 25/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нет сети - нет апдейтов, вроде все логично. libastral в питон еще не завезли.
    Но вообще странно, да. Надо чтобы сегфолтилось в отсутствии сети. Сразу будет понятно - врет, подлюка, раз сегфолтится - значит апдейты есть, надо только сеть поднять.
     
     
  • 5.47, Аноним (-), 19:45, 25/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    При том сеть может как таковая быть Что самое то издевательское Но нормально с... большой текст свёрнут, показать
     

  • 1.9, Анонин (?), 11:15, 24/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Прикольный патч)))
    if (result != 0) {
        // TODO: something went wrong, display error message?
    }
     

  • 1.10, 1 (??), 11:25, 24/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Опять сишники ...
    OH SH--
     
     
  • 2.28, Аноно (?), 14:12, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    конечно не сишники, файл то panellayouter.cpp
    но кто будет разбираться в двух сортах погромистов?
    тут уже работает теорема г-на Эскобара
     
     
  • 3.31, FF (?), 15:11, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    вот вам аргумент, почему во всём виноваты растофилы (не программисты) и прочие маниакальные:
    это вы должны были запилить свой раст 40 лет назад, но вы не сделали, а теперь кто-то за вас должен это все исправлять и патчить.
     
     
  • 4.35, Анонимусс (?), 17:10, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А ниче, что нас 40 лет назад еще не было? 40+ лет назад запилили б̶ы̶д̶л̶о̶п̶х̶п̶ ̶д̶л̶я̶ ̶ы̶л̶и̶т̶к̶и̶  сишечку, потому что хотели побыстрее "х*як-х*як и в прод". Причем были более безопасные альтернативы, но зачем, мы же такие умные, мы ошибок не допускаем!
     
     
  • 5.40, FF (?), 21:35, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да вас и Раст наверно перерос.
    Было бы очень смешно, если бы про прод жээсник написал.
     
  • 3.33, Аноним (33), 16:39, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    это не сищники. это ПЛЮСЫ. ды ещё в добавок и Qt.

    и патч -- говно. человек явно не понимает как корректно работать с временными файлами.

    ды и кстати вообще не ясно зачем ему python понадобился -- он уже внутри своего C++/Qt мог-бы всё сделать.

     
     
  • 4.45, Аноним (44), 07:00, 25/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > это не сищники. это ПЛЮСЫ. ды ещё в добавок и Qt.
    > и патч -- говно. человек явно не понимает как корректно работать с
    > временными файлами. ды и кстати вообще не ясно зачем ему python понадобился
    > -- он уже внутри своего C++/Qt мог-бы всё сделать.

    Судя по патчу он питон, си++ и информационную безопасность знает примерно одинаково. Т.е. никак. Сократить вслед за предыдущими 200 000 прочих няш-питоняш выставленных на мороз, имхо.

     

  • 1.11, Getfor (?), 11:48, 24/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Всё логично, вход для одного является выходом для другого :-)
     
  • 1.12, Аноним (12), 11:57, 24/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    ужасный код, никакой культуры разработки.
     
     
  • 2.24, Аноним (24), 12:28, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Не то что твой однострочный хеллоуворлд на всех языках мира.
     
     
  • 3.26, Аноним (12), 12:45, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не надо быть гением, чтобы поддерживать культуру разработки. Врубаешь автоформатировщик, внедряешь линтеры, проводишь воспитательные беседы с членами команды, отказываешься рассматривать те MR/PR, в которых линтер валится с ошибкой.
     
  • 3.27, Аноним (3), 12:58, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Почему нет? Обеспечь кроссплатформерность. Определи язык системы и подставь нужный перевод (само собой, система автоматического перевода должна быть). С учетом языков, пишущих справа налево. И иероглифы не забудь - должны гарантированно отображаться. И как однострочный проект поживает?
     

  • 1.13, Бульдох (?), 12:00, 24/08/2023 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

     ....ответы скрыты (3)

  • 1.29, Аноним (30), 14:12, 24/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Имея возможность подставить свои данные вместо исходного tar-архива, атакующий мог разместить в этом архиве дополнительные файлы

    Если сторонний человек может делать что угодно в вашем /tmp, то как бы уже поздно пить "Боржоми", разве нет?

    Очередная притянутая за уши чушь, а не уязвимость.

     
     
  • 2.32, Аноньимъ (ok), 16:22, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати да.
    Ну наверное можно создавать там попачки и файлы под конкретным юзером?
     
  • 2.34, Аноним (33), 16:43, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Если сторонний человек может делать что угодно в вашем /tmp, то как бы уже поздно пить "Боржоми", разве нет?

    нет!

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

    и кто угодно там делать ни чего не может, Linux соблюдает права

     
     
  • 3.36, Аноним (12), 17:46, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Linux соблюдает права

    Права чернокожих? Если tmpfs без noexec, то считай все. Верно заметил анон про боржоми.

     
  • 2.37, Аноним (37), 18:29, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Лет так 40 пили боржоми и вдруг стало поздно?

    На /tmp, между прочим, стоит sticky bit. Это значит что если один пользователь запишет туда какой нибудь файл, то даже с правами доступа 777 другой пользователь его удалить не может. Иначе говоря, если один пользователь создал файл в темпе, то другой не может его стереть и подставить другой. Уязвимость в данном случае заключается в том что первый не удосужился проверить смог ли он создать свой файл, или там уже лежал чужой с таким же именем. Удалить чужой, кстати, он бы все равно обломался.

    https://en.wikipedia.org/wiki/Sticky_bit

     
     
  • 3.39, Аноним (39), 19:00, 24/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > The sticky bit was introduced in the Fifth Edition of Unix (in 1974) for use with pure executable files.

    Боже, насколько же это древнее дерьмо...

     
     
  • 4.41, Аноним (41), 02:08, 25/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Боже, насколько же это древнее дерьмо...

    Что, окаменело, через соломинку не проходит, привыкли посвежее?

     
  • 4.48, Аноним (-), 19:55, 25/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Боже, насколько же это древнее дерьмо...

    Чувак, ты машину водить умеешь? Электричеством пользуешься? На поезде ездишь? Самолетом летаешь? А теперь открой вику, подивись насколько это древнее дерьмо. Всему этому более столетия уже. Что там 1974 какой-то? :)

     
     
  • 5.50, ZloySergant (ok), 21:50, 25/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, а императрица Мария Феодоровна вообще электромобилем владела (не шутка и не сарказм).
     

  • 1.38, Аноним (38), 18:54, 24/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    После установки openSUSE Leap 15.4 / 15.5 я вот эту лишнюю х**ню удаляю!

    sudo zypper remove opensuse-welcome

     
     
  • 2.49, Аноним (-), 19:57, 25/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > sudo zypper remove opensuse-welcome

    Да вообще-то всю ненужную пакость имеет смысл удалять или не ставить изначально. А просто потому что меньше кода == меньше багов, вулнов и тормозов. Perfection isn't when there's nothing to add, but when there's nothing to remove.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру