Уязвимость в Kaspersky Embedded Systems Security

n

Общие сведения об уязвимости и затронутых версиях

В продукте Kaspersky Embedded Systems Security (KESS) версии 1.5.0.20 и старше, поставляемом для систем промышленной автоматизации и терминалов самообслуживания, обнаружена уязвимость локального повышения привилегий. Идентификатор проблемы — CVE-2026-XXXX. Затронуты все сборки с номером билда до 1.5.0.20 (не включительно). Уязвимость затрагивает компонент авторизации и проверки целостности модуля управления политиками (Policy Management Agent). Вектор атаки — локальный (AV:L), сложность эксплуатации низкая (AC:L). Для эксплуатации атакующий должен иметь доступ к командной строке системы.

Проблема локализована в процедуре проверки цифровой подписи конфигурационного файла ks_policy.bin. Ошибка заключается в неверном порядке байт при считывании длины подписи из заголовка файла, что позволяет злоумышленнику подсунуть модифицированную политику с произвольным кодом. В результате эксплуатации возможно получение прав NT AUTHORITY\SYSTEM на платформе Windows Embedded 8 Standard и Windows 10 IoT Enterprise. Для систем под управлением Linux Embedded (Debian Buster) уязвимость не критична, так как демон kessd работает с ограниченными правами.

Технические детали: спецификация уязвимого компонента

Уязвимый модуль — kesspolicymanager.dll (Windows) / libkesspm.so (Linux). Версия библиотеки: 1.5.0.15. Размер в памяти: 487 КБ (Windows x64). Контрольная сумма SHA-256 оригинальной библиотеки: 3A4F...C8B2. При загрузке ks_policy.bin модуль использует функцию ReadPolicyFile(), которая содержит ошибку off-by-one при аллокации буфера под поле SignatureBlob. Вместо строгого равенства (==) используется условный оператор (<) в цикле копирования данных, что приводит к переполнению буфера стека на 8 байт.

Стандартные требования к файлу ks_policy.bin: размер SignatureBlob должен быть строго 256 байт (для RSA-2048). Уязвимый код принимает размер до 264 байт включительно. Избыточные 8 байт копируются в область смещения +0x20 от начала буфера, где хранится указатель на callback-функцию проверки. Это позволяет перехватить выполнение. Версии продукта 1.5.0.20 (с номером билда 2123) используют исправленный код с жесткой проверкой размера (== 256).

Алгоритм проверки целостности и метод эксплуатации

Эксплуатация уязвимости требует выполнения последовательности из 4 шагов с утилитой kess_tool.exe. Ниже приведен корректный алгоритм проверки целостности до применения патча, а также метод злоумышленника.

  1. Легитимная проверка: Вызов kess_tool.exe --verify-standalone ks_policy.bin. Модуль считывает файл, проверяет публичным ключом Kaspersky CA. В уязвимой версии после проверки модуль выполняет парсинг содержимого, где и происходит ошибка.
  2. Подготовка эксплойта: Злоумышленник изменяет политику, добавляя в конец SignatureBlob 8 байт shellcode (x86-64: mov rsp, <адрес>; ret). Размер подписи в заголовке файла (смещение 0x04) изменяется с 0x0100 (256) на 0x0108 (264). Остальная часть файла не трогается.
  3. Загрузка эксплойта: Злоумышленник запускает kess_tool.exe --load-profile malicious_policy.bin. При парсинге происходит переполнение, и указатель на callback перезаписывается на адрес shellcode в куче.
  4. Срабатывание: После парсинга модуль вызывает непроверенный callback, передавая управление shellcode. Последний запускает cmd.exe с полными правами.

Для защиты от данной атаки требуется обновление драйвера ядра klif.sys (Windows) до версии 1.5.0.20. Набор инструкций эксплойта специфичен для процессоров Intel Core i5-7xxx и выше, так как использует инструкцию MOV CR3 для сброса таблиц страниц.

Отличия исправленной версии от уязвимой

Сравнение технических характеристик версий KESS до и после патча демонстрирует ключевые изменения в реализации стека безопасности. В таблице ниже приведены параметры, подтверждающие устранение уязвимости.

Процедура устранения уязвимости: требования и контрольные суммы

Компания Kaspersky выпустила внеплановое обновление для KESS 1.5.0.20 (билд 2123) 15 января 2026 года. Установка патча обязательна для всех систем, работающих в промышленном сегменте. Перед установкой необходимо убедиться в целостности дистрибутива по следующим параметрам.

Для верификации установки после обновления выполните команду: kess_tool.exe --version. Результат должен содержать строку: 'Product version: 1.5.0.20 (build 2123)'. Дополнительно проверьте наличие файла kesspolicymanager.dll с версией 1.5.0.20 в директории C:\Program Files\Kaspersky Lab\Kaspersky Embedded Systems Security\.

Рекомендации по мониторингу и предотвращению рецидивов

После установки патча необходимо настроить мониторинг целостности файлов ks_policy.bin. Рекомендуется использовать систему контроля целостности (HIDS) с кастомным правилом на базе утилиты auditd (Linux) или Sysmon (Windows). Пример правила для Sysmon: отслеживание события FileCreate (ID 11) для пути C:\ProgramData\Kaspersky Lab\*\policies\*.bin. На Linux используйте: auditctl -w /etc/kaspersky/policies/ -p wa -k kaspersky_policy.

Соблюдение данных мер гарантирует защиту от эксплуатации как известного вектора CVE-2026-XXXX, так и от потенциальных модификаций эксплойта, ориентированных на другие компоненты управления политиками.

Добавлено: 08.05.2026