В glibc нашли баг: setuid-программы в Linux могут выполнять чужой код

В glibc нашли баг: setuid-программы в Linux могут выполнять чужой код

В glibc нашли баг: setuid-программы в Linux могут выполнять чужой код

Исследователи сообщили об уязвимости в GNU C Library (glibc) — одной из ключевых библиотек ОС Linux. Проблема получила идентификатор CVE-2025-4802 и связана с тем, как статически скомпилированные setuid-программы загружают внешние библиотеки.

Если коротко: статические setuid-бинарники, которые по каким-то причинам вызывают dlopen() (это способ динамически загружать библиотеки во время выполнения), неправильно обрабатывают переменную окружения LD_LIBRARY_PATH. Это изъян позволяет подсовывать им вредоносные библиотеки.

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

Как это может сработать:

  • На системе есть статически скомпилированная setuid-программа.
  • Она вызывает dlopen() — напрямую или через функции типа getaddrinfo, которые под капотом используют NSS.
  • Пользователь может задать переменную LD_LIBRARY_PATH.

Самое интересное — пока что не найдено ни одного уязвимого бинарника, но эксперты предупреждают: старые или самописные утилиты вполне могут оказаться под угрозой. Особенно в организациях с «наследием».

Что делать администраторам и сборщикам дистрибутивов:

  • Обновиться до glibc версии 2.39 (или вручную вкатить патч, если у вас своя сборка).
  • Проверить, нет ли у вас статических setuid-программ — и по возможности пересобрать их с динамическими библиотеками.

Степень риска эксплуатации оценивается как низкая, но если сработает — последствия могут быть серьёзными.

Вышла утилита RKN Block Checker для диагностики блокировок

Разработчик Дмитрий Виноградов представил утилиту RKN Block Checker с открытым исходным кодом. Она помогает понять, почему конкретный сайт не открывается: это обычная сетевая проблема или блокировка на стороне провайдера / регуляторной инфраструктуры.

Проект написан на Python и опубликован под лицензией MIT. Утилита работает из командной строки и проверяет соединение по цепочке DNS → TCP → TLS → HTTP.

Идея простая: не просто выдать вердикт, что сайт недоступен, а показать, на каком именно уровне всё сломалось. Например, если системный DNS не даёт нормальный ответ, а Cloudflare DoH возвращает корректный адрес, это может указывать на DNS-подмену. Если TCP-соединение на 443-й порт сбрасывается, речь может идти о блокировке на уровне IP.

Если TCP проходит, но соединение рвётся на TLS-рукопожатии с SNI, это уже похоже на работу DPI / ТСПУ. А если сайт открывается, но вместо страницы приходит заглушка провайдера или код 451, утилита фиксирует и такой сценарий.

 

Автор отдельно подчёркивает, что смысл RKN Block Checker не в том, чтобы заменить браузер. Браузер и так сообщает, что сайт не открылся. Здесь задача другая — разложить проблему по слоям и дать пользователю более понятную картину, где именно произошёл сбой и на что это похоже.

Утилита сравнивает ответы системного DNS и DNS over HTTPS через Cloudflare, проверяет обычное TCP-подключение, запускает TLS-handshake с SNI целевого домена и затем делает HTTP-запрос. Вердикт выставляется по первому уровню, на котором возникла ошибка.

 

У проекта есть и ограничения. Пока поддерживается только IPv4. Списки целей жёстко заданы в коде и включают около 20 сайтов на категорию, поэтому инструмент не поймает все частные случаи. Кроме того, это разовая проверка без повторов и долгосрочного мониторинга, хотя JSON-вывод можно использовать в cron для регулярных запусков.

RSS: Новости на портале Anti-Malware.ru