Межсайтовый скриптинг в Element Maps срабатывает при наведении на метку карты

Siemens

В библиотеке Element Maps от Siemens обнаружили уязвимость межсайтового скриптинга, или XSS (выполнение чужого кода в браузере жертвы). Злоумышленник может собрать ссылку, при открытии которой произвольный сценарий исполнится в браузере пользователя. Чтобы код запустился, жертва должна навести курсор на метку на карте. Затронуты все выпуски ветвей V47, V48 и V49 старше версий V47.12.3, V48.11.3 и V49.16.1. Уязвимость получила идентификатор CVE-2026-66155.

Уязвимость CVE-2026-66155

Проблема кроется в компоненте отображения карты. Он рисует объекты на карте и всплывающие подсказки, которые появляются при наведении на метку. Текст подсказки формируется из данных, передаваемых в компонент извне. Проверку этих данных разработчики не выполнили должным образом. В результате в подсказку удаётся вставить разметку страницы и скрипт. Сама ссылка при этом выглядит как обычная страница с картой. Когда жертва открывает её, ничего не происходит. Код срабатывает лишь в момент наведения курсора на нужную метку.

Оценка по шкале CVSS - 7.6 в третьей версии и 7.0 в четвёртой. Высшей категории риска уязвимость не получает, поскольку атака зависит от действий пользователя. Влияние на конфиденциальность данных оценили как высокое, на целостность - как низкое. Область действия при этом меняется, то есть последствия выходят за пределы самого компонента. Иными словами, пока страница открыта, чужой сценарий может читать доступные в сессии данные, отправлять запросы от имени пользователя и подменять то, что он видит на экране.

Element Maps - библиотека для веб-приложений на Angular. Она распространяется через реестр npm под именем @siemens/maps-ng. Её подключают как готовый блок визуализации, чтобы показывать на карте производственные площадки, оборудование, датчики и инженерные сети. Такие панели встречаются в диспетчерских, системах мониторинга и корпоративных порталах. Отсюда двойственный характер риска. Для разработчика это обычная зависимость в проекте. Для заказчика скомпрометированная сессия оператора означает подмену данных, на которые тот опирается. Если карта отображает состояние объекта, а посторонний сценарий меняет подсказки или подгружает свои данные, доверять такой картинке нельзя.

В бюллетене указано, что уязвимы только выпуски этой библиотеки. Другие продукты Siemens в списке не значатся. Значит, риск касается прежде всего веб-приложений, которые подключают карты, а не промышленных контроллеров напрямую. Тем не менее именно интерфейсные панели часто служат точкой входа в технологическую сеть, поскольку за ними работают люди с широкими правами доступа.

Сведений о реальных атаках с использованием этой уязвимости в бюллетене нет. Опубликован он 27 августа. Уязвимость нашёл исследователь Fabio Zuber, Siemens указала его в благодарностях. Подготовка атаки не требует высокой квалификации, поскольку достаточно знать формат передаваемых параметров. Однако жертву ещё нужно убедить открыть ссылку, а затем навести курсор на конкретную метку. Поэтому массовое использование затруднено, но целевые попытки обмана исключать нельзя.

Распространять ссылку можно по-разному. Чаще всего для этого применяют целевой фишинг, то есть письмо или сообщение, адресованное конкретному сотруднику. Ссылка при этом ведёт на легитимный корпоративный домен, поэтому проверка адреса не спасает. Так уязвимость из кода библиотеки превращается в инструмент доступа к рабочей сессии.

Проверять наличие уязвимой версии удобно по перечню зависимостей проекта. Многие компании ведут список сторонних компонентов, включая программные спецификации состава поставки. Если такой список есть, поиск по имени пакета занимает минуты. Если нет, придётся просматривать файлы с описанием зависимостей в репозиториях. Кроме того, стоит проверить панели, которые собирали подрядчики: они могли подключить библиотеку, не сообщив об этом заказчику.

Исправления доступны в трёх ветвях. Обновляться следует до V47.12.3, V48.11.3 или V49.16.1 в зависимости от используемой версии. Новые выпуски опубликованы в реестре npm. Обновление внутри ветви не потребует переписывать код приложения. Переход на V49, напротив, может быть сопряжён с дополнительными изменениями. Помимо установки новых версий Siemens предлагает меры снижения риска: следить за журналами доступа на подозрительную активность; включить режим Trusted Types (механизм браузера, запрещающий вставлять непроверенные строки в чувствительные места страницы); следовать рекомендациям по безопасности Angular; применять строгую политику безопасности контента, или CSP (набор правил, определяющих, откуда страница может загружать скрипты и данные). Отдельно компания напоминает об общих правилах защиты промышленных сетей и ограничении доступа к устройствам.

Меры из бюллетеня снижают вероятность эксплуатации, но не заменяют обновление. Строгая политика безопасности контента способна заблокировать выполнение постороннего сценария, однако настройка таких правил в сложных приложениях редко обходится без ошибок. Журналы доступа помогают заметить попытки, но лишь после того, как ссылка уже попала к сотрудникам.

Библиотеки интерфейса из npm обновляют неохотно. Они не выглядят частью критичной инфраструктуры, поэтому их версии подолгу остаются прежними. Между тем уязвимость в общем компоненте затрагивает сразу все приложения, которые его подключили. Один исправленный выпуск закрывает проблему для множества заказчиков, но лишь при условии, что зависимость действительно обновлена. Проверка версий Element Maps в проектах и в панелях, собранных на её основе, остаётся самой надёжной мерой на ближайшее время.

Ссылки

Комментарии: 0