CVE-2026-86145 в Ubuntu: OOB-запись в PCRE2, уязвимые версии и защита

CVE: CVE-2026-86145
Продукт: Ubuntu
Дата публикации: 05.09.2026
Критичность: HIGH
CVSS: 8.2 (3.1)
EPSS: 0,37%; процентиль 30,42%
CISA KEV: нет подтверждения в каталоге CISA KEV

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


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

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


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

  • Тип ошибки: CWE-424 (Out-of-bounds Write) — запись данных за пределы выделенного буфера.
  • CVSS 3.1: 8.2 (HIGH). Вектор: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L. Высокая оценка обусловлена сетевой векторкой и отсутствием необходимости в привилегиях.
  • Условия атаки: Требуется, чтобы приложение использовало PCRE2 для обработки регулярных выражений, контролируемых нарушителем, либо применяло рекурсивные паттерны с малым лимитом кучи.
  • Эксплуатация: Публичные данные о массовой эксплуатации отсутствуют. CVE не включено в каталог CISA KEV.
  • EPSS: 0,37% (процентиль 30,42%). Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая, но не нулевая.

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


Уязвимость затрагивает пакет pcre2 во всех поддерживаемых LTS-релизах Ubuntu. Библиотека PCRE2 широко используется в системных утилитах и приложениях, поэтому обновление критично для стабильности инфраструктуры.

  • Ubuntu 16.04 LTS (xenial): версия пакета 10.21-1.
  • Ubuntu 18.04 LTS (bionic, ESM): версия пакета 10.31-2ubuntu0.1~esm1.
  • Ubuntu 20.04 LTS (focal): версия пакета 10.34-7ubuntu0.1.
  • Ubuntu 22.04 LTS (jammy): версия пакета 10.39-3ubuntu0.1.
  • Ubuntu 24.04 LTS (noble): версия пакета 10.42-4ubuntu2.1.
  • Ubuntu 26.04 LTS (resolute): версия пакета 10.46-1build1.

Затронуты бинарные пакеты: libpcre2-8-0, libpcre2-16-0, libpcre2-32-0, libpcre2-posix* и pcre2-utils.

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


Причина ошибки заключается в несогласованной проверке размера рабочего пространства (workspace) в функции pcre2_dfa_match.

При первом выделении блока памяти для рекурсивного сопоставления DFA-паттернов библиотека выполняет проверку размера. Однако при повторном использовании кэшированного блока эта проверка отсутствует. Если размер данных, которые нужно записать, превышает фактический размер кэшированного блока, происходит запись за его пределы.

Такая логика нарушает инвариант безопасности: все операции записи в буфер должны проверять доступные границы, независимо от того, был ли буфер выделен ранее или переиспользован.

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


Атака эксплуатирует функцию pcre2_dfa_match, которая используется для быстрого сопоставления регулярных выражений в режиме DFA.

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

Альтернативный сценарий предполагает использование рекурсивного паттерна в сочетании с искусственно малым лимитом кучи (heap limit), который может быть установлен через API приложения. В обоих случаях итогом становится запись данных вне границ выделенной памяти, что может повредить структуры данных процесса и привести к выполнению произвольного кода.

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


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

  • Приложение использует библиотеку PCRE2 версии ниже 10.48.
  • Приложение обрабатывает регулярные выражения, которые могут быть контролируемы нарушителем (через HTTP-запросы, файлы, базу данных и т.д.).
  • Либо приложение использует рекурсивные паттерны и позволяет настроить малый лимит кучи через API.
  • Срега выполнения не блокирует запись вне границ памяти (например, через ASLR, DEP/NX или другие механизмы защиты, хотя они не гарантируют полную защиту от OOB-записи).

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


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

Атакующий отправляет запрос, содержащий специально сформированное регулярное выражение. Это выражение вызывает рекурсивное использование рабочего пространства в pcre2_dfa_match. Из-за отсутствия проверки размера при переиспользовании кэша, данные записываются за пределы буфера.

В результате нарушитель может повредить указатели или данные, расположенные рядом в памяти, и перехватить поток выполнения процесса. Это может привести к удаленному выполнению кода (RCE) или отказу в обслуживании (DoS).

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


На момент публикации данных публичные эксплойты в открытом доступе не зафиксированы. CVE не включено в каталог CISA KEV, что указывает на отсутствие подтвержденной эксплуатации в реальных атаках.

Однако наличие технического описания ошибки и доступность исходного кода PCRE2 позволяют исследователям разработать PoC. Отсутствие публичного эксплойта не означает, что уязвимость нельзя эксплуатировать. Рекомендуется считать риск актуальным и установить обновления.

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


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

  • Внезапные сбои (crash) или сегментные ошибки (segfault) в процессах, использующих PCRE2.
  • Необычная активность в логах приложений, связанных с обработкой регулярных выражений (например, поиск, парсинг).
  • Появление новых процессов или сетевых соединений, инициированных системными сервисами, которые обычно не имеют таких прав.
  • Изменения в файловой системе, которые не соответствуют ожидаемому поведению приложений.

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


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

  • Мониторинг журналов приложений на предмет ошибок, связанных с PCRE2 или обработкой регулярных выражений.
  • Использование инструментов мониторинга целостности файлов (FIM) для отслеживания изменений в системных библиотеках.
  • Анализ сетевого трафика на предмет аномальных запросов, содержащих сложные регулярные выражения.
  • Применение систем обнаружения вторжений (IDS/IPS) с сигнатурами для OOB-записей, если они доступны.

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


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

Bash:
cat /etc/os-release
uname -r
apt-cache policy pcre2
ubuntu-security-status

Команда apt-cache policy pcre2 покажет установленную и доступную версии пакета. Сравните установленную версию с версиями, указанными в разделе «Затронутые продукты». Если версия ниже исправленной, требуется обновление.

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


Единственный надежный способ устранения уязвимости — обновление пакета pcre2 до версии, содержащей исправление.

Для Ubuntu 16.04, 18.04, 20.04, 22.04, 24.04 и 26.04 LTS выполните:

Bash:
sudo apt update
sudo apt upgrade pcre2

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

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


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

  • Ограничьте доступ к функциям приложения, которые позволяют пользователю управлять регулярными выражениями.
  • Увеличьте лимит кучи (heap limit) в приложениях, использующих PCRE2, чтобы снизить вероятность переполнения.
  • Используйте механизмы изоляции (например, контейнеры, sandboxing) для процессов, работающих с пользовательским вводом.
  • Отключите функции, которые не требуют использования PCRE2, если это возможно.

Эти меры не устраняют уязвимость, но снижают вероятность успешной эксплуатации.

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


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

  1. Убедитесь, что версия пакета pcre2 соответствует исправленной версии.
  2. Перезапустите все сервисы, использующие PCRE2.
  3. Проведите функциональное тестирование приложений, чтобы убедиться, что обработка регулярных выражений работает корректно.
  4. Проверьте логи на предмет ошибок, связанных с PCRE2, после обновления.

Если все проверки пройдены, уязвимость считается устраненной.

Вывод​


CVE-2026-86145 представляет серьезный риск для систем Ubuntu, использующих библиотеку PCRE2. Уязвимость позволяет нарушителю выполнить запись вне границ памяти, что может привести к выполнению кода или сбою службы.

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

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


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

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


  • 08.09.2026 — Опубликована первая версия материала.
  • 09.09.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
 
Последнее редактирование:
Назад
Верх Низ