TeamViewer выпустил исправление уязвимости CVE-2026-111585, которая позволяет атаковать устройство пользователя при подключении к удалённому компьютеру. Злоумышленник должен контролировать этот удалённый компьютер или предварительно взломать его, а пользователь – установить с ним сеанс управления. Ошибка может вызвать сбой TeamViewer и, в зависимости от платформы, выполнение произвольного кода с правами процесса приложения. Исправление вышло в версии 15.83; для нескольких старых веток предусмотрены отдельные сборки.
Под угрозой компьютер, с которого оказывают помощь
В сеансе TeamViewer устройство, с которого пользователь подключается и управляет чужой системой, называют viewer. Удалённая система, передающая изображение своего экрана, выступает в роли host. При эксплуатации этой ошибки атакует именно удалённая система, а пострадавшим становится подключившийся к ней пользователь – например, специалист технической поддержки.
В записи CVE, опубликованной TeamViewer, уязвимость получила оценку 8,8 балла по CVSS 3.1 – высокий уровень опасности. Для эксплуатации требуется установленный пользователем сеанс с вредоносным или скомпрометированным удалённым компьютером. Возможное выполнение кода ограничено правами процесса TeamViewer на устройстве пострадавшего.
Исследователь Omri Dar из Remedio, который опубликовал технический разбор , подтвердил достижимость уязвимого кода при стандартной конфигурации. После установления сеанса дополнительные действия пользователя не требуются; похищать его пароль для этой атаки также не нужно. Само наличие установленного TeamViewer без подключения к атакующей системе не выполняет необходимое условие эксплуатации.
Ошибка возникает при обработке изображения экрана
В начале сеанса удалённый компьютер сообщает клиенту ширину, высоту и глубину цвета своего экрана. Клиент использует эти параметры, чтобы выделить память под изображение. В уязвимом коде часть расчёта выполняется с 32-битными целыми числами: специально подобранные размеры вызывают переполнение, и приложение выделяет значительно меньше памяти, чем нужно.
Целочисленное переполнение – ошибка, при которой результат вычисления не помещается в используемый числовой тип и искажается. В этом случае она приводит к выделению слишком маленького буфера и последующей записи данных за его границы.
Проверка входящих обновлений экрана ориентируется на заявленные размеры изображения, а не на фактически выделенную память. Поэтому формально допустимые блоки пикселей выходят за границы буфера. Удалённая система может принудительно задействовать уязвимый путь обработки растровых данных, отказавшись от согласования видеокодеков AV1 и H.264.
Remedio приводит пример экрана размером 32 768 &規 32 768 пикселей с глубиной цвета 32 бита. Такие параметры не соответствуют обычному монитору, однако исследователи не обнаружили проверки, которая отклоняла бы их до уязвимого расчёта.
| Параметр | Расчёт | Результат | Значение для ошибки |
|---|---|---|---|
| Ширина с внутренним запасом | 32 768 + 16 | 32 784 пикселя | Используется при расчёте строки |
| Размер строки | 32 &規 32 784 / 8 | 131 136 байт | Сохраняется без усечения |
| Требуемый размер буфера | 131 136 &規 32 784 | 4 299 162 624 байта | Не помещается в 32-битное беззнаковое число |
| Фактически выделенная память | Остаток от деления требуемого размера на 232 | 4 195 328 байт, около 4 МиБ | Буфер значительно меньше заявленного изображения |
| Число строк: заявлено и помещается | 32 784 и 4 195 328 / 131 136 | 32 784 и около 31 | Начиная со строки с индексом 31 запись выходит за границы буфера |
Передача обновления экрана, охватывающего всю заявленную область, вызывает воспроизводимый сбой клиента. Пока пользователь подключается к вредоносной системе с уязвимой версией, атакующая сторона может повторять такой отказ в обслуживании.
Что исследователи показали на Windows
На Windows Remedio продемонстрировала выполнение выбранного исследователями кода, обойдя защитные механизмы Control Flow Guard и DEP. В исследовании фигурируют TeamViewer.exe на стороне подключающегося пользователя и TeamViewer_Desktop.exe на удалённой стороне версии 15.80.6.0. Уязвимый конструктор буфера также обнаружен в клиенте 15.82.6.0.
У демонстрации есть существенное ограничение: часть данных для повреждения памяти подавалась через специальный перехватчик на стороне удалённого компьютера, заменявший соответствующую часть сетевых данных и этап подготовки расположения объектов в памяти. Поэтому показанный запуск кода нельзя считать готовой атакой, целиком выполненной по сети. При этом Remedio отдельно подтвердила сетевую доставку параметров, вызывающих ошибку.
Результат с выполнением кода показан для Windows. Исследование не демонстрирует такой же результат на macOS, Linux или Android; формулировка TeamViewer допускает выполнение кода в зависимости от платформы. Исправление, установленное в сентябрьской ветке 15.82, эту ошибку не устраняет.
Какие версии нужно обновить
В основной ветке исправление требуется для TeamViewer Full Client на Windows, Linux и macOS, Portable на Windows и приложения Remote Control на Android с версиями ниже 15.83. Для старых веток в записи CVE перечислены отдельные пороги исправления.
| Продукт и платформа | Ветка | Версия с исправлением |
|---|---|---|
| Full Client: Windows, Linux, macOS | Основная ветка 15.x | 15.83 |
| Portable: Windows | Основная ветка 15.x | 15.83 |
| Remote Control: Android | Основная ветка 15.x | 15.83 |
| Full Client и Portable: устаревшие Windows 7/8 | 15.64 | 15.64.10 |
| Full Client: Windows, Linux, macOS | 14.7 | 14.7.48868 |
| Full Client: Windows | 13.2 | 13.2.36231 |
| Full Client: Linux | 13.2 | 13.2.154008 |
| Full Client: macOS | 13.2 | 13.2.154007 |
Обновите используемый клиент до версии 15.83 или новее либо установите соответствующее исправление своей старой ветки. До обновления разумно отложить подключения к непроверенным удалённым системам. В сообщении об исправлении обходной способ устранения уязвимости не указан.
TeamViewer Host не включён в список продуктов, затронутых именно CVE-2026-111585. Однако бюллетень TV-2026-1011 описывает ещё две уязвимости высокого уровня опасности, исправленные в 15.83 и затрагивающие в том числе Host. Одна из них допускает выполнение кода на Linux и macOS, поэтому обновление необходимо и пользователям Host.
Отдельный бюллетень TV-2026-1012 касается шести дополнительных уязвимостей в модулях Remote Management. Исправления для этих модулей распространяются автоматически; их следует отличать от обновления клиента TeamViewer.
На момент публикации исправления TeamViewer сообщила, что ей неизвестно об атаках с использованием CVE-2026-111585. Исследователи сообщили об ошибке разработчику 14 августа, а технический разбор выпустили уже после выхода обновления.
Вывод
При удалённой поддержке состояние чужого компьютера влияет и на безопасность специалиста, который к нему подключается. Поэтому обновление требуется прежде всего на устройстве, с которого устанавливают сеансы управления. Для организаций со старыми установками полезно проверить номера сборок по каждой ветке: исправления выпущены и за пределами основной версии 15.83.
