CVE-2026-67870 в Ubuntu: уязвимость в серверной реализации Open62541, потенциальная угроза для удаленного выполнения кода

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

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


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

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


CVE-2026-67870 — это уязвимость в реализации AddReferences в библиотеке open62541, версия 1.5.5. Она связана с некорректной проверкой входных данных при обработке ExpandedNodeId. В частности, при пустом значении targetServerUri и ненулевом значении targetNodeId.serverIndex, указатель целевой ноды остается равным NULL, что может привести к неопределённому поведению. Уязвимость классифицирована как CWE-476 и оценена как критическая с CVSS 9.8. В Ubuntu 26.04 LTS она затрагивает пакеты libopen62541-1.4 и libopen62541-1.4-tools, установленные в версии 1.4.11.1-1build1. Уязвимость может быть использована для вызова отказа в обслуживании или других непредсказуемых эффектов в системах, использующих эту библиотеку.

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


Уязвимость CVE-2026-67870 затрагивает Ubuntu 26.04 LTS, где установлен пакет open62541 версии 1.4.11.1-1build1. Это соответствует пакетам libopen62541-1.4 и libopen62541-1.4-tools. Эти пакеты используются в системах, поддерживающих OPC UA (Open Platform Communications Unified Architecture), и могут быть подвержены атаке при некорректной обработке запросов AddReferences. Уязвимость не затрагивает другие версии Ubuntu или пакеты, отличные от указанных. Системы, использующие Open62541 в качестве сервера, могут быть уязвимы, если они не применяют соответствующие меры защиты.

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


Корневая проблема связана с неполной валидацией параметров запроса AddReferences в серверной реализации open62541. При обработке ExpandedNodeId, если targetServerUri пуст, а targetNodeId.serverIndex не равен нулю, функция не корректно обрабатывает ситуацию, когда указатель целевой ноды остаётся NULL. Это приводит к тому, что дальнейшие операции с этим указателем могут вызвать неопределённое поведение, включая сбои или ошибки в работе сервера. Такое поведение может быть использовано для вызова отказа в обслуживании или других непредсказуемых эффектов. Уязвимость была выявлена в исходном коде библиотеки, в файле src/server/ua_services_nodemanagement.c [1].

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


Атакующий может отправить специально подготовленный AddReferencesRequest, содержащий пустое значение targetServerUri и ненулевое значение targetNodeId.serverIndex. В результате, система не выполняет корректную проверку и продолжает работу с NULL-указателем. Эта ситуация может привести к неопределённому поведению, включая сбои в работе сервера. Механизм атаки зависит от того, как система обрабатывает NULL-указатель. В случае, если дальнейшая логика не проверяет указатель, это может привести к обращению к памяти по нулевому адресу или другим ошибкам. Такие сценарии могут быть использованы для вызова отказа в обслуживании или других непредсказуемых эффектов. Подробности реализации описаны в исходном коде [1].

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


Для эксплуатации уязвимости требуется, чтобы система, использующая библиотеку open62541, была сконфигурирована как OPC UA сервер и принимала запросы AddReferences. Атакующий должен иметь возможность отправлять специально подготовленные запросы к серверу. Уязвимость не требует аутентификации и может быть использована удалённо. Для успешного применения уязвимости необходимо, чтобы сервер обрабатывал запросы с пустым targetServerUri и ненулевым targetNodeId.serverIndex. Условия, необходимые для успешной эксплуатации, зависят от конкретной реализации сервера и его обработки ошибок.

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


Атакующий, имеющий доступ к сети, где работает сервер, использующий open62541, отправляет специально подготовленный AddReferencesRequest. В запросе указывается пустое значение targetServerUri и ненулевое значение targetNodeId.serverIndex. Сервер, не выполняя корректной проверки, продолжает обработку запроса с NULL-указателем. Это может привести к сбою или другим непредсказуемым эффектам в работе сервера. Например, сервер может завершиться аварийно или перестать отвечать на запросы. Сценарий возможен, если сервер не проверяет указатель на NULL перед его использованием. Подробности реализации описаны в исходном коде [1].

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


На момент написания статьи не было подтверждено наличия публичного эксплойта или PoC, который демонстрирует эксплуатацию уязвимости CVE-2026-67870. Отсутствие публичных данных не означает отсутствие потенциальной эксплуатации. Уязвимость может быть использована для вызова отказа в обслуживании или других непредсказуемых эффектов, но конкретные сценарии эксплуатации не были зафиксированы. Ожидается, что в будущем могут появиться дополнительные данные о возможных методах эксплуатации. Подробности о реализации уязвимости доступны в исходном коде [1].

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


В отсутствие специфичных IOC, можно использовать общие метрики наблюдения за системой. Например, необычные или частые ошибки в журналах сервера, которые могут указывать на попытки использования уязвимости. Также можно отслеживать неожиданные перезапуски или сбои в работе сервера, использующего open62541. Проверка на наличие нестандартных запросов AddReferences с пустым targetServerUri и ненулевым targetNodeId.serverIndex может быть полезной. Однако, такие индикаторы не являются уникальными и требуют дополнительной проверки. Наличие таких событий не обязательно указывает на эксплуатацию уязвимости, но может быть сигналом для дальнейшего анализа.

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


Обнаружение уязвимости возможно через анализ журналов работы сервера, использующего open62541. Системы, которые получают запросы AddReferences, могут быть проверены на наличие нестандартных значений targetServerUri и targetNodeId.serverIndex. Также можно использовать инструменты мониторинга, которые отслеживают ошибки в работе сервера и неожиданные перезапуски. Анализ исходного кода библиотеки также может помочь в выявлении потенциальных проблем. Рекомендуется использовать средства, позволяющие отслеживать запросы к серверу и их параметры. Подробности о реализации уязвимости доступны в исходном коде [1].

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


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

Bash:
apt-cache policy libopen62541-1.4

или

Bash:
apt-cache policy libopen62541-1.4-tools

Также можно проверить текущую версию системы:

Bash:
uname -r

или информацию о версии Ubuntu:

Bash:
lsb_release -a

Проверка версии пакета позволяет определить, установлена ли уязвимая версия open62541. Если версия ниже 1.5.5, то система может быть уязвимой. Рекомендуется обновить пакеты до версии, в которой устранена уязвимость.

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


Самый надёжный способ устранения уязвимости — обновление пакета open62541 до версии, в которой устранена проблема. В Ubuntu 26.04 LTS рекомендуется обновить пакеты libopen62541-1.4 и libopen62541-1.4-tools. Обновление можно выполнить с помощью стандартных средств управления пакетами:

Bash:
sudo apt update && sudo apt upgrade

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

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


В случае невозможности немедленного обновления, можно рассмотреть временную защиту. Например, ограничение доступа к серверу, использующему open62541, через брандмауэр или сетевые политики. Также можно отключить или ограничить использование функций AddReferences, если они не критически важны. Важно также отслеживать журналы сервера на предмет необычных запросов и ошибок. Эти меры не устраняют уязвимость, но могут снизить риск её эксплуатации. Рекомендуется также использовать мониторинг и инструменты безопасности для выявления подозрительной активности.

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


После обновления пакетов рекомендуется проверить, что версия библиотеки действительно обновлена. Можно использовать команду:

Bash:
apt-cache policy libopen62541-1.4

или

Bash:
apt-cache policy libopen62541-1.4-tools

Также можно проверить, что сервер использует обновлённую версию библиотеки:

Bash:
ldd /path/to/server | grep open62541

После обновления рекомендуется перезапустить сервисы, чтобы применить изменения. Проверка журналов работы сервера также может подтвердить, что уязвимость больше не используется. Рекомендуется также провести тестирование, чтобы убедиться, что обновление не вызвало проблем в работе системы.

Вывод​


CVE-2026-67870 представляет собой критическую уязвимость в библиотеке open62541, используемой в Ubuntu 26.04 LTS. Она позволяет удалённому атакующему вызвать отказ в обслуживании или другие непредсказуемые эффекты при отправке специально подготовленных запросов AddReferences. Уязвимость связана с некорректной проверкой входных данных и может быть использована в системах, где сервер обрабатывает запросы OPC UA. Рекомендуется немедленно обновить пакеты open62541 до версий, в которых устранена проблема. В случае невозможности обновления, следует применять временные меры защиты. Проверка версий и журналов работы сервера поможет определить, устранена ли уязвимость.

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


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

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


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