Системы Ubuntu затронуты уязвимостью «needrestart», которая позволяет получить root-привилегии

2024-11-21 2053 комментарии
В Ubuntu Linux выявлено 5 уязвимостей в утилите needrestart, позволяющих злоумышленникам с локальным доступом получить root-привилегии. Уязвимости исправлены в версии 3.8. Рекомендуется обновить утилиту и отключить сканирование интерпретаторов для защиты систем

В утилите needrestart, используемой Ubuntu Linux и представленной в версии 21.04, обнаружено пять уязвимостей локального повышения привилегий.

Уязвимости обнаружены Qualys и отслеживаются под идентификаторами:

  • CVE-2024-48990
  • CVE-2024-48991
  • CVE-2024-48992
  • CVE-2024-10224
  • CVE-2024-11003

Они появились еще в needrestart версии 0.8, выпущенной в апреле 2014 года, а исправлены только вчера, в версии 3.8.

Утилита Needrestart обычно используется в системах Linux, в том числе в Ubuntu Server, для определения служб, которым требуется перезапуск после обновления пакетов, что гарантирует, что эти службы будут запускать самые последние версии общих библиотек.

Уязвимости локального повышения привилегий

Пять обнаруженных Qualys проблем безопасности позволяют злоумышленникам с локальным доступом к уязвимой системе Linux повышать свои привилегии до root без взаимодействия с пользователем.

Полная информация об этих недостатках была представлена в отдельном текстовом файле, приведем краткое резюме:

  • CVE-2024-48990: needrestart запускает интерпретатор Python с переменной среды PYTHONPATH, извлеченной из запущенных процессов. Если локальный злоумышленник контролирует эту переменную, он может выполнить произвольный код как root во время инициализации Python, внедрив вредоносную общую библиотеку.
  • CVE-2024-48992: интерпретатор Ruby, используемый needrestart, уязвим при обработке контролируемой злоумышленником переменной среды RUBYLIB. Это позволяет локальным злоумышленникам выполнять произвольный код Ruby как root, внедряя вредоносные библиотеки в процесс.
  • CVE-2024-48991: состояние гонки в needrestart позволяет локальному злоумышленнику заменить проверяемый двоичный файл интерпретатора Python вредоносным исполняемым файлом. Тщательно рассчитав время замены, они могут обмануть needrestart, заставив его запустить свой код от имени root.
  • CVE-2024-10224: модуль Perl ScanDeps, используемый needrestart, неправильно обрабатывает имена файлов, предоставленные злоумышленником. Злоумышленник может создавать имена файлов, напоминающие команды оболочки для выполнения произвольных команд от имени root при открытии файла.
  • CVE-2024-11003: зависимость needrestart от модуля Perl ScanDeps делает его уязвимым в самом ScanDeps, где небезопасное использование функций eval() может привести к выполнению произвольного кода при обработке контролируемых злоумышленником входных данных.

Важно, что для эксплуатации этих уязвимостей злоумышленнику требуется локальный доступ к ОС через вредоносное ПО или взломанную учетную запись, что снижает риск атаки.

Тем не менее, ранее злоумышленники уже использовали аналогичные уязвимости повышения привилегий Linux для получения прав root, включая Loony Tunables и одну, эксплуатирующую ошибку nf_tables. Таким образом, новую уязвимость не следует игнорировать только потому, что она требует локального доступа.

Учитывая широкое использование needrestart и очень долгое время существования уязвимостей, указанные выше дефекты могут создавать возможности для повышения привилегий в критических системах.

Помимо обновления до версии 3.8 или более поздней, которая включает исправления для всех выявленных уязвимостей, рекомендуется изменить файл needrestart.conf, чтобы отключить функцию сканирования интерпретатора, что предотвращает эксплуатацию уязвимостей.

# Disable interpreter scanners.

 $nrconf{interpscan} = 0;

Данная инструкция остановит needrestart от выполнения интерпретаторов с потенциально контролируемыми злоумышленником переменными среды.

© . По материалам Bleepingcomputer
Комментарии и отзывы

Нашли ошибку?

Новое на сайте