Уязвимость BDU:2026-04546 (CVE-2026-3502) TrueConf Client
В начале 2026 года специалистами Check Point Research была обнаружена целевая атака Operation TrueChaos, направленная против государственных учреждений Юго-Восточной Азии. В ходе расследования выявлена уязвимость нулевого дня в клиентском приложении TrueConf Client (Windows), получившая идентификатор BDU:2026-04546 (CVE-2026-3502). Проблема заключается в механизме обновления клиента, который загружает исполняемый файл с сервера без какой-либо проверки его целостности и подлинности. Злоумышленник, получивший контроль над сервером TrueConf, может подменить легитимный пакет обновления произвольным вредоносным файлом. В результате все подключающиеся клиенты автоматически (с согласия пользователя) скачивают и запускают вредоносный код с повышенными привилегиями, так как процесс обновления традиционно требует административных прав.
Анализ уязвимости
Уровень опасности: 7.8 (HIGH)
Вектор атаки: CVSS:3.1/AV:A/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:L
Расшифровка значений вектора атаки:
-
Вектор атаки (AV:A) – смежная сеть: атакующий должен находиться в той же локальной сети или иметь доступ к внутреннему сегменту, где расположен TrueConf сервер.
-
Сложность атаки (AC:L) – низкая: злоумышленнику не требуется преодолевать дополнительные средства защиты.
-
Необходимые привилегии (PR:H) – высокие: для замены файла обновления на сервере нужны права администратора этого сервера (либо предварительная компрометация).
-
Взаимодействие с пользователем (UI:R) – требуется: жертва должна нажать на кнопку «Обновить» во всплывающем окне клиента.
-
Влияние на конфиденциальность (C:H) – высокое: полное раскрытие информации.
-
Влияние на целостность (I:H) – высокое: возможность модификации любых данных.
-
Влияние на доступность (A:L) – низкое: частичное нарушение доступности.
-
Область (S:C) – изменённая: атака на клиента выходит за рамки уязвимого компонента.
Условия эксплуатации
Для успешной атаки должны соблюдаться следующие условия:
-
Злоумышленник уже находится во внутренней сети организации (или скомпрометировал один из хостов в этой сети) и имеет возможность сетевого взаимодействия с сервером TrueConf.
-
Нарушитель обладает правами администратора на сервере TrueConf или может выполнить запись в каталог
C:\Program Files\TrueConf Server\ClientInstFiles\. -
Клиент TrueConf (версия до 8.5.3.884) сконфигурирован для получения обновлений от этого сервера (стандартная настройка).
-
Пользователь взаимодействует с интерфейсом приложения и соглашается на установку «новой версии».
Технический анализ эксплоита
Для понимания работы вектора атаки рассмотрим код эксплоита к уязвимости BDU:2026-04546 (CVE-2026-3502). Эксплоит написан на Python и состоит из трёх основных модулей: основной эксплоит (exploit.py), конструктор вредоносного обновления (malicious_update_builder.py) и поддельный сервер обновлений (update_server.py). Анализ кода выполняется в образовательных целях для демонстрации механизма уязвимости.
Анализ основного эксплоита (exploit.py)
Основной модуль предназначен для проверки уязвимости и симуляции подмены обновления. Рассмотрим его ключевые части.
Класс TrueConfUpdateExploit
При инициализации принимает URL целевого сервера и формирует конечную точку обновления: self.update_endpoint = f"{self.target_server}/downlods/trueconf_client.exe". Обратите внимание на опечатку в пути: вместо downloads используется downlods – это реальный путь в уязвимых версиях TrueConf Server, что подтверждает точность эксплоита.
Метод check_vulnerability()
Отправляет HEAD-запрос к endpoint’у обновления. Если сервер возвращает 200 OK, проверяется наличие заголовков ETag или Last-Modified. Отсутствие этих заголовков интерпретируется как признак отсутствия проверок целостности. Это – основной индикатор уязвимости. В реальном ответе легитимного сервера также нет цифровой подписи или хэша, что и позволяет подменить файл.
Метод simulate_attack()
Принимает путь к вредоносному исполняемому файлу (собранному в формате Inno Setup) и выводит инструкции по развёртыванию. Важно отметить, что эксплоит не выполняет автоматическую замену файла на сервере – это оставлено на усмотрение атакующего, так как требует предварительной компрометации.
Генерация отчёта
Метод generate_report() создаёт JSON с IOC, включая пути к артефактам (PowerISO, 7z-x64.dll) и ключ реестра для постоянного доступа.
Анализ конструктора вредоносного обновления (malicious_update_builder.py)
Этот модуль демонстрирует, как злоумышленник создаёт поддельный пакет обновления, имитирующий легитимный инсталлятор TrueConf.
Функция create_dll_payload()
Генерирует исходный код DLL на C, который при загрузке вызывает MessageBoxA и создаёт файл C:\ProgramData\pwned.txt. В реальной атаке вместо этого может происходить загрузка Havoc C2 демона. DLL будет использоваться для загрузки (DLL sideloading) через легитимный poweriso.exe.
Скрипт Inno Setup (create_innosetup_script())
Создаёт файл installer.iss – инструкцию для сборщика установщика Inno Setup. Ключевые секции:
-
[Files]– копирует легитимныйtrueconf_client.exe(симулирует обновление), а также7z-x64.dllиpoweriso.exeв{commonappdata}\PowerISO. -
[Run]– после установки добавляет ключ автозапускаUpdateCheckвHKCU\Software\Microsoft\Windows\CurrentVersion\Run, указывая наpoweriso.exe. -
[Code]– черезExecсоздаёт задание в планировщике Windows (schtasks) для ежедневного запуска того же исполняемого файла, обеспечивая персистентность.
Компиляция
В коде приведены инструкции по компиляции с использованием MinGW для создания исполняемых файлов-обманок. В реальной кампании злоумышленники использовали настоящий легитимный poweriso.exe, уязвимый к DLL sideloading, и подкладывали вредоносную 7z-x64.dll.
Анализ поддельного сервера (update_server.py)
Данный модуль запускает Flask-сервер, эмулирующий поведение скомпрометированного TrueConf Server. Он необходим для тестирования атаки в изолированной среде.
Эндпоинт /downlods/trueconf_client.exe
Отдаёт вредоносный файл, указанный в аргументе --update. Важно, что ответ не содержит заголовков ETag, Content-MD5 или Digest, что полностью повторяет поведение реального уязвимого сервера.
Эндпоинт /config
Возвращает JSON с полями version (установлена более новая версия, например 8.5.2) и update_available: true. Клиент TrueConf периодически обращается к этому URL или аналогичному, чтобы узнать о наличии обновлений.
Атака MITM
В реальных условиях злоумышленник может перенаправить DNS-запросы клиентов на IP-адрес своего поддельного сервера (например, через ARP-spoofing или компрометацию DNS).
Пример HTTP-запроса (от клиента к серверу)
Обычный запрос клиента для проверки обновления выглядит так:
GET /downlods/trueconf_client.exe HTTP/1.1 Host: trueconf-internal.local User-Agent: TrueConf Client/8.5.1 Accept: */*
Уязвимый сервер отвечает:
HTTP/1.1 200 OK Content-Type: application/x-msdownload Content-Length: 52428800 [бинарные данные поддельного update.exe]
Отсутствие заголовков проверки целостности позволяет клиенту без сомнений сохранить и запустить полученный файл.
Способы защиты
Учитывая, что уязвимость уже исправлена в версии TrueConf Client 8.5.3.884 и выше, основная рекомендация – немедленное обновление всех клиентских приложений. Однако в крупных организациях обновление может занять время, поэтому следует применять компенсирующие меры.
Способы защиты:
-
Обновление TrueConf Client до версии 8.5.3.884 или новее.
-
Ограничение сетевого доступа к каталогу
ClientInstFiles– если сервер TrueConf работает под Windows, следует настроить разрешения NTFS так, чтобы только доверенные учётные записи (например, LOCAL SERVICE и администраторы сервера) имели запись вC:\Program Files\TrueConf Server\ClientInstFiles\. -
Мониторинг целостности файлов – использовать SIEM или FIM (File Integrity Monitoring) для отслеживания изменений
trueconf_client.exeв указанном каталоге. При любом изменении – сигнал тревоги.