03.07.2022

Уязвимости в OpenSSL, Glibc, util-linux, драйверах i915 и vmwgfx

Раскрыта информация об уязвимости (CVE-2021-4160) в криптографической библиотеке OpenSSL, вызванной ошибкой в реализации сумматора в функции BN_mod_exp, приводящей к возвращению неверного результата операции возведения в квадрат. Проблема проявляется только на оборудовании на базе архитектур MIPS32 и MIPS64, и может привести к компрометации алгоритмов на базе эллиптических кривых, включая используемые по умолчанию в TLS 1.3. Проблема устранена в декабрьских обновлениях OpenSSL 1.1.1m и 3.0.1.

Отмечается, что реализация реальных атак по получению информации о закрытых ключах с использованием выявленной проблемы рассматривается для RSA, DSA и алгоритма Диффи—Хеллмана (DH, Diffie-Hellman) как возможная, но маловероятная, слишком сложная для проведения и требующая огромных вычислительных ресурсов. При этом атака на TLS исключается, так как в 2016 году при устранении уязвимости CVE-2016-0701 было запрещено совместное использование клиентами одного закрытого ключа DH.

Дополнительно можно отметить несколько недавно выявленных уязвимостей в открытых проектах:

  • Несколько уязвимостей (CVE-2022-0330) в графическом драйвере i915, связанных с отсутствием сброса TLB для GPU. В случае если не применяется IOMMU (трансляции адресов) уязвимость позволяет из пространства пользователя получить доступ к случайным страницам памяти. Проблема может быть использоваться для повреждения или чтения данных из случайных областей памяти. Проблема проявляется на всех встроенных и дискретных GPU Intel. Исправление реализовано через добавление обязательного сброса TLB до выполнения каждой операции возвращения буфера GPU в систему, что приведёт к снижению производительности. Влияние на производительность зависит от GPU, выполняемых на GPU операций и нагрузки на систему. Исправление пока доступно только в виде патча.
  • Уязвимость (CVE-2022-22942) в графическом драйвере vmwgfx, применяемом для реализации 3D-ускорения в окружениях VMware. Проблема позволяет непривилегированному пользователю получить доступ к файлам, открытым другими процессами в системе. Для атаки необходимо наличие доступа к устройству /dev/dri/card0 или /dev/dri/rendererD128, а также возможность выполнить вызов ioctl() с полученным файловым дескриптором.
  • Уязвимости (CVE-2021-3996, CVE-2021-3995) в библиотеке libmount, поставляемой в пакете util-linux, позволяющие непривилегированному пользователю отмонтировать дисковые разделы, не имея на это полномочий. Проблема выявлена в ходе аудита SUID-root программ umount и fusermount.
  • Уязвимости в стандартной Си-библиотеке Glibc, затрагивающие функции realpath (CVE-2021-3998) и getcwd (CVE-2021-3999).
    • Проблема в realpath() вызвана возвращением при определённых условиях некорректного значения, содержащего неочищенные остаточные данные из стека. Для SUID-root программы fusermount уязвимость можно использовать для получения конфиденциальных сведений из памяти процесса, например, для получения сведений об указателях.
    • Проблема в getcwd() позволяет добиться переполнения буфера на один байт. Проблема вызвана ошибкой, присутствующей с 1995 года. Для вызова переполнения достаточно в отдельном пространстве имён точек монтирования выполнить вызов chdir() для каталога «/». Не сообщается, ограничивается ли уязвимость только аварийным завершением процесса, но в прошлом для подобных уязвимостей были случаи создания рабочих эксплоитов, несмотря на скептицизм разработчиков.
  • Уязвимость (CVE-2022-23220) в пакете usbview, позволяющая локальным пользователям, вошедшим в систему через SSH, выполнить код с правами root, из-за наличия в правилах PolKit настройки (allow_any=yes) для запуска утилиты usbview под пользователем root без аутентификации. Эксплуатация сводится к использованию опции «—gtk-module» для загрузки своей библиотеки в usbview. Проблема устранена в версии usbview 2.2.

Источник.