CVE-2026-44950 в Ubuntu: heap overflow в libXfont2, уязвимые версии и защита

CVE: CVE-2026-44950
Продукт: Ubuntu
Дата публикации: 10.09.2026
Критичность: CRITICAL
CVSS: 9.5 (4.0)
EPSS: 0,44%; процентиль 36,93%
CISA KEV: нет подтверждения в каталоге CISA KEV

Краткое описание​


В клиенте font-server библиотеки libXfont2 обнаружена уязвимость, позволяющая злонамеренному серверу шрифтов вызвать переполнение кучи. Статья разбирает механику атаки, перечисляет затронутые версии Ubuntu и описывает порядок проверки и обновления пакетов.

Основные характеристики​


Уязвимость позволяет удалённому злоумышленнику, контролируя сервер шрифтов, записать данные за пределы выделенной памяти в клиентском приложении. Это может привести к выполнению произвольного кода или сбою системы.

  • Тип ошибки: CWE-122 (Heap-based Buffer Overflow).
  • CVSS 4.0: 9.5 (CRITICAL). Вектор: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X.
  • Условия атаки: Сеть (Network), низкая сложность, требуется аутентификация (Privileged), пользовательское взаимодействие не требуется.
  • Эксплуатация: В каталоге CISA KEV не подтверждена.
  • EPSS: 0,44% (0.00438). Процентиль 36,93%. Это статистическая оценка вероятности эксплуатации в ближайшие 30 дней.

Какие продукты и версии затронуты​


Уязвимость затрагивает пакет libxfont (и бинарный пакет libxfont2) в нескольких версиях Ubuntu. Согласно данным Ubuntu OSV, все перечисленные версии считаются уязвимыми, так как событие introduced указано как 0 (с момента первого выпуска).

  • Ubuntu 14.04 LTS (Pro/ESM): libxfont версия 1:1.4.7-1ubuntu0.4+esm2.
  • Ubuntu 16.04 LTS (Pro/ESM): libxfont версия 1:1.5.1-1ubuntu0.16.04.4+esm2.
  • Ubuntu 16.04 LTS: libxfont2 версия 1:2.0.1-3~ubuntu16.04.3.
  • Ubuntu 18.04 LTS (Pro/ESM): libxfont версия 1:2.0.3-1ubuntu0.1~esm2.
  • Ubuntu 20.04 LTS (Pro/ESM): libxfont версия 1:2.0.3-1ubuntu0.20.04.1~esm2.
  • Ubuntu 22.04 LTS: libxfont версия 1:2.0.5-1ubuntu0.2.
  • Ubuntu 24.04 LTS: libxfont версия 1:2.0.6-1+deb13u1build0.24.04.2.
  • Ubuntu 26.04 LTS: libxfont версия 1:2.0.6-2ubuntu0.2.

Обратите внимание, что для некоторых версий (14.04, 16.04, 18.04, 20.04) исправления могут быть доступны только через подписку Ubuntu Pro (ESM).

Причина уязвимости​


Причина уязвимости кроется в функции fs_read_glyphs() в файле src/fc/fserve.c.

Функция копирует битмапы глифов в единый буфер. Существующая проверка валидности гарантирует только то, что исходный срез (позиция и длина) находится в пределах исходного битмап-буфера.

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

Как работает атака​


Злонамеренный сервер шрифтов может отправить данные с перекрывающимися смещениями источника.

Например, сервер может передать 1000 глифов, каждый из которых ссылается на {position:0, length:64} с параметром nbytes=64.

Каждый отдельный диапазон источника проходит существующую валидацию, так как он находится в пределах исходного буфера. Однако совокупная запись составляет 64 000 байт в 64-байтовый буфер назначения.

Это приводит к переполнению кучи (heap buffer overflow) с содержимым, контролируемым атакующим. Атакующий может использовать это для записи произвольных данных в память процесса клиента.

Условия успешной эксплуатации​


Для успешной эксплуатации уязвимости необходимо выполнение следующих условий:

  • Контроль сервера шрифтов: Атакующий должен иметь возможность контролировать сервер шрифтов, к которому подключается клиент libXfont2.
  • Сетевая доступность: Клиент должен быть настроен на подключение к управляемому атакующим серверу шрифтов.
  • Аутентификация: Согласно CVSS-вектору, для атаки требуется привилегированная аутентификация (AT:P), что ограничивает круг потенциальных атакующих до тех, кто имеет доступ к сервису шрифтов.

Возможный сценарий атаки​


Сценарий атаки начинается с того, что атакующий получает контроль над сервером шрифтов или перехватывает соединение с ним.

Затем атакующий отправляет клиенту специально сформированный ответ, содержащий данные глифов с перекрывающимися смещениями.

Клиентская библиотека libXfont2 обрабатывает эти данные, и функция fs_read_glyphs() выполняет запись за пределы выделенного буфера.

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

Есть ли публичный эксплойт​


На момент подготовки материала в каталоге CISA KEV нет подтверждений о массовой эксплуатации этой уязвимости.

В предоставленных источниках отсутствуют ссылки на публичные PoC (Proof of Concept) или готовые эксплойты.

Отсутствие сведений о публичном эксплойте не означает, что он не существует. Учитывая критический уровень CVSS и простоту механики атаки, вероятность разработки эксплойта высока.

Признаки эксплуатации​


Специфичные индикаторы компрометации (IOC) для этой уязвимости в предоставленных источниках не раскрыты.

Для обнаружения атаки можно использовать общие, неспецифичные точки контроля:

  • Журналы приложений: Ищите сообщения об ошибках или аварийных завершениях (crash) в процессах, использующих libXfont2.
  • Сетевой трафик: Аномальные запросы к серверу шрифтов с необычным объемом данных или частотой.
  • Системные логи: Сообщения о нарушении целостности памяти (segfault, heap corruption) в процессах, связанных с отображением шрифтов.

Как обнаружить атаку​


Для обнаружения атаки рекомендуется настроить мониторинг следующих аспектов:

  • Мониторинг сбоев: Настройте сбор и анализ логов аварийных завершений (core dumps) для приложений, использующих libXfont2.
  • Сетевой анализ: Контролируйте трафик между клиентами и серверами шрифтов на предмет аномалий.
  • Аудит конфигурации: Проверьте, какие приложения на вашей инфраструктуре используют libXfont2 и подключаются к внешним серверам шрифтов.

Как проверить свою версию​


Для проверки установленной версии пакета libxfont и статуса обновлений используйте следующие команды:

Bash:
# Проверка версии ОС
cat /etc/os-release

# Проверка версии ядра
uname -r

# Проверка политики пакета (замените <имя-пакета> на libxfont или libxfont2)
apt-cache policy <имя-пакета>

# Проверка статуса безопасности Ubuntu
ubuntu-security-status

Команда apt-cache policy покажет установленную версию и доступные версии в репозиториях. Если доступна более новая версия, это может указывать на наличие исправления.

Исправление​


Основным методом устранения уязвимости является обновление пакета libxfont до исправленной версии.

  • Для Ubuntu 22.04 LTS, 24.04 LTS, 26.04 LTS: Выполните обновление через стандартные репозитории:

    Bash:
    sudo apt update
    sudo apt upgrade libxfont
  • Для Ubuntu 14.04, 16.04, 18.04, 20.04 LTS: Исправления могут быть доступны только через подписку Ubuntu Pro (ESM). Убедитесь, что подписка активна, и выполните обновление:

    Bash:
    sudo apt update
    sudo apt upgrade libxfont

После обновления перезапустите службы, использующие libXfont2, чтобы изменения вступили в силу.

Временные меры защиты​


Пока обновление не установлено, можно применить следующие временные меры:

  • Ограничение доступа к серверу шрифтов: Ограничьте доступ к серверу шрифтов только доверенным хостам с помощью файрвола.
  • Отключение внешних шрифтов: Если возможно, настройте приложения на использование только локальных шрифтов, отключив подключение к внешним серверам шрифтов.
  • Изоляция приложений: Запускайте приложения, использующие libXfont2, в изолированных средах (контейнеры, виртуальные машины) с минимальными привилегиями.

Как проверить устранение уязвимости​


Для проверки того, что уязвимость устранена, выполните следующие шаги:

  1. Проверьте версию пакета:

    Bash:
    dpkg -l | grep libxfont

    Убедитесь, что версия соответствует исправленной версии из официального уведомления Ubuntu.
  2. Проверьте статус безопасности:

    Bash:
    ubuntu-security-status

    Убедитесь, что CVE-2026-44950 не числится в списке уязвимостей.
  3. Перезапустите службы и проверьте их работоспособность.

Вывод​


CVE-2026-44950 представляет собой критическую уязвимость в libXfont2, позволяющую удаленному атакующему вызвать переполнение кучи. Учитывая широкое распространение библиотеки в экосистеме Ubuntu, рекомендуется срочно обновить пакет libxfont до исправленной версии. Для систем, где обновление невозможно в краткосрочной перспективе, следует применить временные меры по ограничению доступа к серверам шрифтов.

Официальные источники​


  1. NVD — CVE-2026-44950
  2. Ubuntu OSV — CVE-2026-44950
  3. FIRST EPSS — CVE-2026-44950

История обновлений статьи​


  • 11.09.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ