The OpenNET Project / Index page

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

Уязвимость в Glibc, затрагивающая статически собранные suid-файлы с dlopen

19.05.2025 23:21

В стандартной Си-библиотеке Glibc выявлена уязвимость (CVE-2025-4802), позволяющая добиться выполнения кода с привилегиями другого пользователя, выставляемыми при запуске приложений с флагом suid. Опасность проблемы сводят на нет условия при которых она проявляется - разработчики Glibc не смогли найти ни одной suid-программы, к которой была бы применима найденная уязвимость. При этом не исключено, что в обиходе могут использоваться собственные suid-программы, удовлетворяющие условиям совершения атаки.

Эксплуатация уязвимости возможна только для статически собранных suid-программ, вызывающих функцию dlopen. Помимо программ, напрямую вызывающих dlopen, уязвимость затрагивает и программы, в которых функция dlopen выполняется косвенно, как следствие вызова setlocale или NSS-функций, таких как getaddrinfo.

Проблема вызвана обработкой переменной окружения LD_LIBRARY_PATH в контексте suid-приложений в случае вызова dlopen из статически собранных программ (игнорирование LD_LIBRARY_PATH срабатывало только при динамической компоновке). Через выставление пути в LD_LIBRARY_PATH атакующий может организовать загрузку подставной библиотеки из своего каталога. Уязвимость проявляется начиная с версии Glibc 2.27 (февраль 2018 года) и устранена в выпуске Glibc 2.39 (февраль 2024 года).

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Проект Landrun развивает непривилегированную систему изоляции приложений
  3. OpenNews: Уязвимость в NetworkManager-libreswan и guix-daemon, позволяющие повысить привилегии в системе
  4. OpenNews: Леннарт Поттеринг представил run0, замену sudo, интегрированную в systemd
  5. OpenNews: Уязвимость в glibc, позволяющая получить root-доступ в системе
  6. OpenNews: Выпуск GNU inetutils 2.5 с устранением уязвимости в suid-приложениях
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63269-glibc
Ключевые слова: glibc
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (23) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 00:35, 20/05/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    когда уже выпилят этот сломанный статический nss и dlopen? Он никогда не работает и только проблемы создаёт, Обычно бинарники собирают статически не чтобы из них dlopen делать.
    Статический ffmpeg на дебиане вообще сегфолтится при попытке ресолвинга, очень полезно!!!
     
     
  • 2.8, openssh_user (ok), 07:51, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Можно пример, на каком моменте вы ловите segfault?
     
     
  • 3.10, fi (ok), 09:26, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это известный баг - когда nss от другой libc -  такое блюдо надо уметь готовить.

    Но что странно - так то что ссылаются на

    2017-12-19  Dmitry V. Levin  <ldv@altlinux.org>

            * elf/dl-load.c (is_trusted_path): Remove.
            (fillin_rpath): Remove check_trusted argument and its use,
            all callers changed.

    кто-то внес "оптимизацию" )))))

     
  • 2.17, Аноним (17), 11:50, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Удивительно что для статической сборки кто-то использует glibc, разве это не киллер фичи компактных реализаций uclibc и musl.
     

  • 1.2, Аноним (-), 01:36, 20/05/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    > затрагивающая статически собранные suid-файлы с dlopen

    А теперь коронный номер - поза "фантомас в очках на аэроплане".

     
  • 1.3, Xasd9 (?), 03:26, 20/05/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    лучше бы запретили бы статическую сборку и не е***и бы мозги
     
     
  • 2.4, Аноним (1), 04:10, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    зачем, когда можно её починить, а не пихать туда сомнительные вещи?
     
  • 2.11, adolfus (ok), 09:34, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Статическая сборка хороша тем, что приложение использует меньше физической памяти и работает быстрее. Каждая .so независимо от реального размера загружаемого содержимого требует, минимум, три собственных страницы физической памяти, а статическая ровно столько, сколько занимает сама библиотека. Первый вызов функции из .so требует некоторого дополнительного времени на некотороые системные действия, что особенно заметно в интерактивных приложениях, котороые во время инициализации интерфейса выполняют десятки вызовов. Выглядит это как тормоза и достигают эти тормоза нескольких секунд.
     
     
  • 3.12, Аноним (12), 09:57, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > приложение использует меньше физической памяти

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

    В отличие от статической линковки, лол.

    > некоторого дополнительного времени
    > некотороые системные действия

    А, сори, у нас тут эксперт в треде. Чему я удивляюсь...

     
     
  • 4.22, Аноним (-), 12:28, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > библиотека загружается ровно один раз даже если ее использует 100 программ.

    Зато с статической линковкой работает LTO. А с шареными либами - нет.
    Нужно ли lto или лучше пару мегабайт сэкономить - каждый решает сам.

     
     
  • 5.23, Аноним (12), 12:32, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Зато с статической линковкой работает LTO. А с шареными либами - нет.

    Ну как бы логично, нет? На то они и шареные.

     
     
  • 6.25, Аноним (-), 12:48, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну как бы логично, нет? На то они и шареные.

    Конечно логично, я же об этом и написал.
    Но то, что оно не пашет это недостаток этого самого шаренья. Просто все так расписывают преимущества shared libs, как будто у них нет недостатков.

    А вот мне не жалко небольшого увеличения размера аппы ради небольшого увеличения производительности.


     
  • 3.14, Соль земли2 (?), 10:56, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Статическая сборка хороша тем, что приложение использует меньше физической памяти и работает быстрее.

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

     
  • 3.15, Аноним (15), 10:57, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Статическая сборка хороша как минимум тем, что приложение будет более-менее гарантированно работать, вот это её главный плюс. Идея разделяемых библиотек в линуксе с треском провалилась, в винде оно как-то криво-косо, но работает.
     
     
  • 4.16, Аноним (12), 11:37, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Идея разделяемых библиотек в линуксе с треском провалилась

    "Но шмель об этом не знает и продолжает летать..."

     
     
  • 5.18, Аноним (15), 12:12, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, до момента появления сообщения «у вас .so версии 2.11, а нужно 2.10» (или наоборот). Снапы с флатпаками от хорошей жизни выросли, видимо?
     
     
  • 6.21, Аноним (21), 12:25, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В Линуксе без проблем поставить рядом 2.10 и 2.11, без хелла.
     
     
  • 7.24, Аноним (15), 12:37, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Во-первых, и с хелпом проблема. Во-вторых, уже в этот момент концепция разделяемых библиотек похерена.
     
  • 5.20, Аноним (-), 12:25, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > "Но шмель об этом не знает и продолжает летать..."

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

     
  • 2.13, Аноним (13), 10:47, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, для статической сборки уже нужен musl.
     
  • 2.19, OpenEcho (?), 12:18, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > лучше бы запретили бы статическую сборку и не е***и бы мозги

    Подрабатываете в НСА ?

     

  • 1.5, Аноним (5), 05:00, 20/05/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    В openbsd libc гораздо безопаснее.
    Лапчатые себе даже в одну из базовых системных либ умудряются дырени завезти.
     
     
  • 2.6, Аноним (6), 05:23, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > В openbsd libc гораздо безопаснее.

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

     
  • 2.9, Tron is Whistling (?), 08:50, 20/05/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Неуловимый Джо гораздо неуловимее.
     

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



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

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