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, в изолированных средах (контейнеры, виртуальные машины) с минимальными привилегиями.
Как проверить устранение уязвимости
Для проверки того, что уязвимость устранена, выполните следующие шаги:
- Проверьте версию пакета:
Bash:dpkg -l | grep libxfont
Убедитесь, что версия соответствует исправленной версии из официального уведомления Ubuntu.
- Проверьте статус безопасности:
Bash:ubuntu-security-status
Убедитесь, что CVE-2026-44950 не числится в списке уязвимостей.
- Перезапустите службы и проверьте их работоспособность.
Вывод
CVE-2026-44950 представляет собой критическую уязвимость в libXfont2, позволяющую удаленному атакующему вызвать переполнение кучи. Учитывая широкое распространение библиотеки в экосистеме Ubuntu, рекомендуется срочно обновить пакет
libxfont до исправленной версии. Для систем, где обновление невозможно в краткосрочной перспективе, следует применить временные меры по ограничению доступа к серверам шрифтов.Официальные источники
История обновлений статьи
- 11.09.2026 — Опубликована первая версия материала.
