CVE: CVE-2026-59679
Продукт: Ubuntu
Дата публикации: 10.09.2026
Критичность: CRITICAL
CVSS: 9.2 (4.0)
EPSS: 0,41%; процентиль 34,63%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В клиентской части libXfont2 обнаружена ошибка, позволяющая злонамеренному серверу шрифтов вызвать выход за границы кучи. Уязвимость затрагивает широкий спектр версий Ubuntu, включая LTS-релизы. Материал разбирает механику атаки, условия эксплуатации и способы проверки статуса системы.
Основные характеристики
Уязвимость позволяет удаленному серверу шрифтов контролировать чтение и запись в память клиента, что может привести к выполнению кода или отказу в обслуживании. Риск высокий, так как для атаки не требуется аутентификация, но сложность эксплуатации выше из-за необходимости контроля над сервером шрифтов.
- Тип ошибки: CWE-787 (Out-of-bounds Write). Ошибка возникает при обращении к массиву с индексом, превышающим его размер.
- CVSS 4.0: 9.2 (CRITICAL). Вектор:
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N. Высокие значения для конфиденциальности, целостности и доступности локальной системы.
- CVSS 3.1 (Ubuntu): 9.8. Вектор:
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H. Ubuntu классифицирует уязвимость как medium, что может отражать сложность эксплуатации в реальных сценариях.
- EPSS: 0,41%. Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая. Процентиль 34,63%.
- Эксплуатация: Публичные данные о массовой эксплуатации отсутствуют. CISA KEV не содержит записи об этой уязвимости.
Какие продукты и версии затронуты
Уязвимость затрагивает пакет
libxfont (и бинарный пакет libxfont2) в следующих версиях Ubuntu:- Ubuntu 14.04 LTS (Pro):
libxfont1версии1:1.4.7-1ubuntu0.4+esm2.
- Ubuntu 16.04 LTS (Pro):
libxfont1версии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):
libxfont2версии1:2.0.3-1ubuntu0.1~esm2.
- Ubuntu 20.04 LTS (Pro):
libxfont2версии1:2.0.3-1ubuntu0.20.04.1~esm2.
- Ubuntu 22.04 LTS:
libxfont2версии1:2.0.5-1ubuntu0.2.
- Ubuntu 24.04 LTS:
libxfont2версии1:2.0.6-1+deb13u1build0.24.04.2.
- Ubuntu 26.04 LTS:
libxfont2версии1:2.0.6-2ubuntu0.2.
Обратите внимание, что для некоторых версий (14.04, 16.04, 18.04, 20.04) исправления доступны только в рамках Ubuntu Pro (ESM).
Причина уязвимости
Причина уязвимости кроется в функции
fs_read_glyphs() в файле src/fc/fserve.c библиотеки libXfont2. Функция использует поле num_chars из ответа FS_QueryXBitmaps16 для индексации массива encoding[].Однако этот массив был выделен с размером, основанным на поле
num_extents из другого, отдельного ответа FS_QueryXExtents16. Между этими двумя значениями не выполняется перекрестная проверка.Если сервер шрифтов отправит в ответе
FS_QueryXExtents16 небольшое значение num_extents (например, 1), а в ответе FS_QueryXBitmaps16 — большое значение num_chars (например, 100000), клиент будет обращаться к памяти за пределами выделенного массива. Это приводит к выходу за границы кучи (out-of-bounds heap read/write).Как работает атака
Атакующий должен контролировать сервер шрифтов, с которым взаимодействует клиент libXfont2. Злоумышленник отправляет клиенту два последовательных ответа: сначала
FS_QueryXExtents16 с завышенным или заниженным значением num_extents, затем FS_QueryXBitmaps16 с несоответствующим значением num_chars.Клиент, не проверяя согласованность этих полей, использует
num_chars для индексации массива, размер которого определяется num_extents. Это приводит к чтению и записи в память вне выделенной области.Атакующий может контролировать данные, записываемые в память, что потенциально позволяет изменить управление потоком программы и выполнить произвольный код в контексте процесса клиента.
Условия успешной эксплуатации
Для успешной эксплуатации уязвимости необходимо выполнить следующие условия:
- Контроль над сервером шрифтов: Атакующий должен иметь возможность отправлять данные на сервер шрифтов, используемый клиентом, или перехватить трафик между клиентом и доверенным сервером.
- Специфичный протокол: Клиент должен использовать протокол X11 Font Server (XFS) и подключаться к серверу, управляемому атакующим.
- Отсутствие перекрестной проверки: Клиентская библиотека libXfont2 должна быть уязвимой версией, не содержащей исправления, которое добавляет проверку соответствия
num_charsиnum_extents.
- Сложность эксплуатации: CVSS указывает на высокую сложность (AC:H), что может быть связано с необходимостью точного контроля над памятью для достижения выполнения кода.
Возможный сценарий атаки
Сценарий атаки предполагает, что пользователь или приложение на уязвимой системе Ubuntu подключается к серверу шрифтов, контролируемому злоумышленником. Например, это может произойти, если пользователь настроил X11 на использование удаленного сервера шрифтов или если атакующий перехватил трафик.
Злоумышленник отправляет клиенту ответ
FS_QueryXExtents16 с num_extents=1. Затем отправляет ответ FS_QueryXBitmaps16 с num_chars=100000.Клиентская функция
fs_read_glyphs() пытается прочитать 100000 записей из массива, выделенного под 1 запись. Это вызывает выход за границы кучи. Атакующий может использовать это для перезаписи указателей или данных, что приведет к выполнению кода в процессе клиента, например, в процессе X-сервера или приложения, использующего шрифты.Есть ли публичный эксплойт
На момент публикации статьи публичные данные о подтвержденной эксплуатации CVE-2026-59679 в реальных атаках отсутствуют. В каталоге CISA KEV запись об этой уязвимости не найдена.
Существуют технические описания уязвимости в баг-трекерах SUSE и в рассылке oss-security, которые предоставляют детали для создания PoC. Однако наличие PoC не означает, что уязвимость активно эксплуатируется в дикой природе.
Отсутствие сведений о массовой эксплуатации не гарантирует, что эксплойты не существуют, но текущая оценка EPSS (0,41%) указывает на низкую вероятность эксплуатации в ближайшем будущем.
Признаки эксплуатации
Специфичные индикаторы компрометации (IOC) для CVE-2026-59679 не опубликованы. Однако можно использовать следующие неспецифичные признаки для мониторинга:
- Аномальные сетевые соединения: Соединения с нестандартными или подозрительными серверами шрифтов (X11 Font Server, порт 7100 или другие).
- Сегфолты в X-сервере или приложениях: Нестабильность или аварийное завершение процессов, использующих libXfont2, особенно при работе с удаленными шрифтами.
- Необычная активность в журналах X11: Записи об ошибках при загрузке шрифтов или о сетевых сбоях в протоколе XFS.
Эти признаки не являются уникальными для данной уязвимости и могут указывать на другие проблемы.
Как обнаружить атаку
Для обнаружения потенциальной эксплуатации или наличия уязвимости можно использовать следующие методы:
- Проверка версий пакетов: Используйте команды из раздела «Проверка версии», чтобы убедиться, что установленные версии
libxfontиlibxfont2не входят в список уязвимых.
- Мониторинг сетевых соединений: Отслеживайте исходящие соединения на порты, используемые X11 Font Server. Если система не должна подключаться к удаленным серверам шрифтов, такие соединения могут быть подозрительными.
- Анализ журналов: Просматривайте логи X-сервера (
/var/log/Xorg.0.logили аналогичные) на наличие ошибок, связанных с загрузкой шрифтов или сетевыми операциями.
- Использование инструментов сканирования: Применяйте утилиты для сканирования уязвимостей, которые могут проверять версии установленных пакетов и сопоставлять их с базами данных CVE.
Как проверить свою версию
Для проверки версии Ubuntu и установленных пакетов
libxfont/libxfont2 используйте следующие команды:
Bash:
# Проверка версии Ubuntu
cat /etc/os-release
# Проверка версии ядра (необязательно, но полезно для контекста)
uname -r
# Проверка версии пакета libxfont (замените <имя-пакета> на libxfont или libxfont2)
apt-cache policy libxfont
apt-cache policy libxfont2
# Проверка статуса безопасности Ubuntu
ubuntu-security-status
Обратите внимание, что
apt-cache policy покажет установленные и доступные версии. Сопоставьте их со списком уязвимых версий в разделе «Затронутые продукты». Если ваша версия совпадает с одной из перечисленных, система уязвима.Исправление
Основным способом устранения уязвимости является обновление пакета
libxfont до исправленной версии. Для пользователей Ubuntu Pro (ESM) исправления могут быть доступны через подписку. Для других версий Ubuntu следите за официальными обновлениями безопасности.- Ubuntu 14.04 LTS (Pro): Обновите
libxfont1до версии, содержащей исправление (через Ubuntu Pro).
- Ubuntu 16.04 LTS (Pro): Обновите
libxfont1до исправленной версии (через Ubuntu Pro).
- Ubuntu 16.04 LTS: Обновите
libxfont2до исправленной версии.
- Ubuntu 18.04 LTS (Pro): Обновите
libxfont2до исправленной версии (через Ubuntu Pro).
- Ubuntu 20.04 LTS (Pro): Обновите
libxfont2до исправленной версии (через Ubuntu Pro).
- Ubuntu 22.04 LTS: Обновите
libxfont2до исправленной версии.
- Ubuntu 24.04 LTS: Обновите
libxfont2до исправленной версии.
- Ubuntu 26.04 LTS: Обновите
libxfont2до исправленной версии.
Используйте
apt-get update && apt-get upgrade для применения обновлений. Для Ubuntu Pro убедитесь, что подписка активна и обновления ESM применяются.Временные меры защиты
Пока обновление не установлено, можно принять следующие временные меры:
- Отключение удаленных шрифтов: Если возможно, настройте X11 на использование только локальных шрифтов. Отключите подключение к удаленным серверам шрифтов (XFS).
- Ограничение сетевого доступа: Используйте файрвол для блокировки исходящих соединений на порты X11 Font Server (обычно 7100) для систем, которым не требуется удаленная загрузка шрифтов.
- Изоляция систем: Если система критична, рассмотрите возможность ее изоляции от сети до применения исправления.
Эти меры снижают риск, но не устраняют уязвимость полностью. Они лишь ограничивают поверхность атаки.
Как проверить устранение уязвимости
После применения обновлений проверьте, что уязвимость устранена:
- Проверка версии пакета:
Bash:apt-cache policy libxfont apt-cache policy libxfont2
Убедитесь, что установленная версия не входит в список уязвимых версий из раздела «Затронутые продукты».
- Проверка статуса безопасности:
Bash:ubuntu-security-status
Утилита должна не сообщать об уязвимостях, связанных с CVE-2026-59679.
- Перезапуск сервисов: Перезапустите X-сервер или приложения, использующие libXfont2, чтобы убедиться, что они используют обновленную библиотеку.
- Мониторинг: Продолжайте мониторинг системы на наличие аномальной активности, особенно если вы использовали временные меры.
Вывод
CVE-2026-59679 представляет серьезную угрозу для систем Ubuntu, использующих libXfont2 для работы с удаленными шрифтами. Уязвимость позволяет злонамеренному серверу шрифтов вызвать выход за границы кучи и потенциально выполнить код.
Хотя сложность эксплуатации высока, а текущая вероятность эксплуатации низка, рекомендуется как можно скорее обновить пакет
libxfont до исправленной версии. Для систем, где обновление невозможно в краткосрочной перспективе, следует применить временные меры, такие как отключение удаленных шрифтов и ограничение сетевого доступа.Регулярно проверяйте статус безопасности системы и следите за официальными обновлениями от Ubuntu.
Официальные источники
История обновлений статьи
- 11.09.2026 — Опубликована первая версия материала.
- 14.09.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
