В утилите needrestart, используемой в Ubuntu с версии 21.04 и представленной более 10 лет назад, выявлены сразу пять уязвимостей, связанных с локальным повышением привилегий. Баги позволяют локальному злоумышленнику получить привилегии root без необходимости взаимодействия с пользователем.

Needrestart – популярная утилита, широко использующаяся в Linux, в том числе в Ubuntu Server, для определения сервисов, которым требуется перезапуск после обновления пакетов.

Проблемы были обнаружены специалистами Qualys и получили идентификаторы: CVE-2024-48990, CVE-2024-48991, CVE-2024-48992, CVE-2024-10224 и CVE-2024-11003. Все уязвимости появились еще в коде needrestart версии 0.8, выпущенной в апреле 2014 года, и были исправлены только на этой неделе, с релизом версии 3.8.

Детальная информация о найденных проблемах доступна в отдельном текстовом файле, а их краткое описание можно увидеть ниже.

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

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

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

Помимо обновления до версии 3.8 или более поздней, которая уже содержит патчи, рекомендуется изменить файл needrestart.conf, чтобы отключить функцию сканирования интерпретаторов, что предотвращает эксплуатацию багов: $nrconf{interpscan} = 0.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    1 Комментарий
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии