CVE-2026-67870 в Ubuntu: NULL-указатель в OPC UA, уязвимые версии и защита

CVE: CVE-2026-67870
Продукт: Ubuntu
Дата публикации: 06.08.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,57%; процентиль 44,64%
CISA KEV: нет подтверждения в каталоге CISA KEV

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


В библиотеке open62541, поставляемой в Ubuntu 26.04 LTS, обнаружена критическая уязвимость в реализации серверной функции AddReferences. Ошибка позволяет удаленному атакующему вызвать обращение к NULL-указателю, что приводит к отказу в обслуживании или потенциальному выполнению кода. В статье описаны механика атаки, затронутые версии пакетов и порядок применения исправлений.

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


Уязвимость позволяет удаленному атакующему без предварительной аутентификации нарушить работоспособность сервера OPC UA, отправив специально сформированный запрос. Ошибка связана с недостаточной валидацией параметров, что приводит к обращению к памяти по нулевому указателю.

  • Тип ошибки: CWE-476 (NULL Pointer Dereference). Обращение к памяти по нулевому указателю, что обычно приводит к аварийному завершению процесса.
  • CVSS 3.1: 9.8 (CRITICAL). Вектор: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. Высокая оценка отражает возможность удаленного доступа без аутентификации и серьезное влияние на конфиденциальность, целостность и доступность.
  • Условия атаки: Сетевой доступ (AV:N), низкая сложность (AC:L), отсутствие требований к правам (PR:N) и взаимодействию пользователя (UI:N).
  • Эксплуатация: В каталоге CISA KEV подтверждений о массовой эксплуатации в дикой природе на данный момент нет.
  • EPSS: 0,57% (процентиль 44,64%). Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая, но не нулевая.

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


Согласно данным Ubuntu OSV, уязвимость затрагивает пакет open62541 в дистрибутиве Ubuntu 26.04 LTS (Resolute Raccoon).

  • Пакет: open62541 (source package).
  • Версия: 1.4.11.1-1build1.
  • Затронутые бинарные пакеты:
    • libopen62541-1.4 версии 1.4.11.1-1build1.
    • libopen62541-1.4-tools версии 1.4.11.1-1build1.

Данные относятся исключительно к экосистеме Ubuntu 26.04 LTS. Для других версий Ubuntu или дистрибутивов информация не подтверждена в предоставленных источниках.

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


Причина уязвимости кроется в реализации серверной функции AddReferences в версии open62541 v1.5.5 (на которую ссылается CVE, хотя в Ubuntu поставляется версия 1.4.x, содержащая аналогичную логику или унаследованную от этой ветки разработки).

При обработке запроса AddReferencesRequest система проверяет параметры целевого узла. Если в запросе передан ExpandedNodeId с пустым targetServerUri и ненулевым targetNodeId.serverIndex, валидация не блокирует обработку. В результате указатель на целевой узел остается NULL, но выполнение кода продолжается, что приводит к обращению к памяти по нулевому указателю.

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


Атакующий отправляет на сервер OPC UA специально сформированный запрос AddReferencesRequest. В этом запросе поле targetServerUri задается как пустая строка, а поле targetNodeId.serverIndex принимает ненулевое значение.

Серверная логика open62541 при обработке таких параметров не выполняет корректную проверку на валидность целевого узла. Указатель на узел не инициализируется и остается NULL. Последующие операции, использующие этот указатель, приводят к обращению к памяти по адресу 0x0, что вызывает сбой процесса (segfault) или, в зависимости от контекста, может быть использовано для более сложной эксплуатации.

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


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

  • Иметь сетевой доступ к порту, на котором работает сервер OPC UA (обычно 4840).
  • Иметь возможность отправлять запросы в формате OPC UA (AddReferencesRequest).
  • Не требуется наличие учетных данных или предварительная аутентификация (PR:N).
  • Не требуется взаимодействие с пользователем (UI:N).

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


Атакующий сканирует сеть в поиске открытых портов OPC UA. Обнаружив уязвимый сервер, он формирует пакет AddReferencesRequest с параметрами, описанными в разделе «Причина уязвимости».

Отправка такого запроса приводит к аварийному завершению процесса сервера. Если сервер работает в режиме демона без автоматического перезапуска, это приводит к отказу в обслуживании (DoS).

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

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


В каталоге CISA KEV (Known Exploited Vulnerabilities) CVE-2026-67870 не числится, что означает отсутствие подтвержденных фактов массовой эксплуатации в реальных атаках на данный момент.

В репозитории open62541 на GitHub существует issue #8172, где описана проблема. Однако наличие технического описания и ссылки на исходный код не является подтверждением того, что существует публичный рабочий эксплойт (PoC) или что уязвимость активно эксплуатируется в дикой природе. Отсутствие сведений в KEV не гарантирует отсутствие эксплойта, но указывает на то, что он не стал широко известным или массово используемым.

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


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

  • Аварийное завершение процесса open62541 или libopen62541 в логах системы.
  • Записи в логах сервера OPC UA о получении запросов AddReferencesRequest с аномальными параметрами (пустой serverUri и ненулевым serverIndex).
  • Внезапные перерывы в работе сервисов, использующих OPC UA, без видимых причин на стороне приложения.

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


Для обнаружения атаки или следов эксплуатации рекомендуется:

  • Анализировать логи сервера OPC UA на предмет запросов AddReferencesRequest с подозрительными параметрами.
  • Мониторить стабильность процесса: частые аварийные завершения (crash) процесса open62541 могут указывать на эксплуатацию.
  • Использовать средства мониторинга целостности (HIDS) для отслеживания изменений в конфигурации или попыток доступа к памяти по нулевому указателю (если поддерживается).
  • Проверять журналы системы (syslog, journalctl) на наличие сообщений об ошибках сегментации (segfault) в процессе open62541.

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


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

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

# Проверка версии ядра (для контекста)
uname -r

# Проверка версии пакета open62541
apt-cache policy open62541

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

Обратите внимание: в команде apt-cache policy замените <имя-пакета> на open62541, если вы используете шаблон. В данном случае пакет называется open62541.

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


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

  • Проверьте наличие обновлений в репозиториях Ubuntu: apt-get update.
  • Установите обновление: apt-get upgrade open62541.
  • После обновления перезапустите сервисы, использующие open62541, чтобы изменения вступили в силу.

Если обновление еще не доступно в вашем репозитории, следите за официальными уведомлениями Ubuntu Security (CVE-2026-67870 | Ubuntu).

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


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

  • Ограничьте сетевой доступ к порту OPC UA (4840) до доверенных IP-адресов с помощью файрвола (iptables/nftables).
  • Если возможно, отключите сервис OPC UA, если он не критичен для текущих операций.
  • Убедитесь, что сервер OPC UA работает в изолированной сети или за балансировщиком, который может фильтровать аномальные запросы.
  • Настройте автоматический перезапуск сервиса при аварийном завершении, чтобы минимизировать время простоя в случае атаки DoS.

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


Для проверки успешного применения исправления:

  • Проверьте версию пакета: apt-cache policy open62541. Убедитесь, что версия отличается от 1.4.11.1-1build1.
  • Проверьте, что сервис работает стабильно и не завершается аварийно после отправки тестовых запросов (если есть возможность безопасного тестирования).
  • Проверьте логи на наличие ошибок после обновления.
  • Используйте ubuntu-security-status для подтверждения, что система не имеет известных уязвимостей, требующих внимания.

Вывод​


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

Рекомендуется как можно скорее обновить пакет open62541 до исправленной версии и ограничить сетевой доступ к сервису OPC UA до тех пор, пока обновление не будет применено.

Следите за официальными уведомлениями Ubuntu Security для получения информации о доступности патчей.

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


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

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


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