Исследователи безопасности опубликовали полный рабочий эксплойт для уязвимости удалённого выполнения кода в AnyDesk Linux, позволяющей получить root-доступ до того, как кто-либо подтвердит подключение. Проблему закрыли в версии 8.0.3 ещё в июне, но в списке изменений исправление описано лишь как «исправлена ошибка, которая могла приводить к сбою» — без CVE и без отдельного бюллетеня безопасности.
Эксплойт под названием AnyPwn нацелен на переполнение буфера в куче в протоколе сессии AnyDesk. Код выложен на GitHub 8 октября. Администраторам следует обновить AnyDesk Linux как минимум до версии 8.0.3; актуальный выпуск — 8.1.0.
Что умеет опубликованный эксплойт
Эксплойт работает только при прямых TCP-подключениях на порт 7070. Он вероятностный: объект-цель должен оказаться в куче рядом с переполняемым буфером, иначе служба просто падает вместо выполнения команды атакующего. Смещения в опубликованном коде рассчитаны на конкретную сборку AnyDesk Linux — 8.0.2; для других сборок потребуются иные значения.
По словам исследователей, тот же уязвимый участок кода достижим и через relay-серверы AnyDesk, которые программа использует, когда прямое подключение недоступно. Это подтвердили срабатыванием инструментации Frida, но полную цепочку эксплуатации через relay не продемонстрировали.
В AnyDesk в июне заявляли, что уязвимость «ограничена прямыми подключениями на Linux (подключениями, которые не идут через наши relay-серверы). Windows и macOS не затронуты».
Эксплойт нацелен на AnyDesk Linux 8.0.2. Исследователи намекают, что более ранние версии, например 8.0.1, могут содержать тот же уязвимый код, но эксплуатация этих версий не подтверждена.
Как работает уязвимость
Протокол сессии AnyDesk использует потоковые пакеты режима 5. Обработчик вычисляет размер резервируемой памяти, прибавляя 16-байтовый заголовок к объявленной длине полезной нагрузки, и делает это в 32-битной арифметике без проверки переполнения.
Эксплойт объявляет длину полезной нагрузки 0xFFFFFFF0. Прибавление 0x10 заворачивает 32-битный результат в ноль, поэтому аллокатор выделяет крошечный буфер, тогда как объект записывает исходную большую длину. После этого даже один байт данных атакующего пишется за границей выделенной памяти.
Переполнение портит поля соседних объектов в куче, а эксплойт с помощью ROP-цепочки выполняет произвольную команду от имени root.
Уязвимость нашёл Рик де Ягер из команды V12 с помощью V12 — движка для ревью безопасности кода. Основатели V12 ранее создали компанию Zellic и руководили командой соревновательного хакинга Perfect Blue.
Хронология и что делать администраторам
Исследователи объявили об уязвимости 22 июня. AnyDesk подтвердила её на следующий день и выпустила версию 8.0.3 с исправлением. На 9 октября CVE уязвимости не присвоен, формального бюллетеня безопасности AnyDesk не выпускала.
На странице загрузки AnyDesk версия 8.0.2 больше не указана, хотя в списке изменений она ещё встречается. «Похоже, вендор удалил сборку 8.0.2 AnyDesk после выхода нашего видео с PoC», — пишут исследователи.
Тем, кто не может обновиться немедленно, стоит ограничить доступ к TCP-порту 7070. Остаётся невыясненным, полностью ли эксплуатируема уязвимость через relay-подключения.
Отдельное переполнение буфера в куче AnyDesk, CVE-2025-27918, исправили в версии 7.0.0 в апреле 2025 года. Та уязвимость затрагивала все платформы AnyDesk и была связана с целочисленным переполнением при обработке изображений пользователя — механизм, отличный от проблемы в протоколе сессии, которую использует AnyPwn. В начале 2024 года AnyDesk взломали в рамках отдельного инцидента: были скомпрометированы производственные системы компании, что привело к отзыву сертификатов и принудительной смене паролей.
AnyDesk в России: проверьте версию и закройте порт 7070
AnyDesk — популярный инструмент удалённого доступа, которым пользуются в том числе российские компании и администраторы для поддержки рабочих станций и серверов. Linux-сборки нередко стоят на серверах и шлюзах, где root-доступ до аутентификации особенно опасен. Если обновление до 8.0.3 или 8.1.0 невозможно, ограничьте доступ к TCP-порту 7070 на межсетевом экране и не выставляйте прямые подключения AnyDesk в интернет. Помните, что в версии 8.0.3 исправление описано как «исправление сбоя», поэтому факт закрытия уязвимости без CVE легко пропустить при инвентаризации. Похожий урок даёт история с zero-day в KVM, где побег из виртуальной машины до root на хосте тоже требовал немедленной реакции.
Частые вопросы
Кого касается эта уязвимость?
Пользователей AnyDesk для Linux, в первую очередь версии 8.0.2 и, возможно, 8.0.1. Windows и macOS, по заявлению AnyDesk, не затронуты, поскольку проблема ограничена прямыми подключениями на Linux.
Как проверить свою версию AnyDesk?
Посмотрите версию в интерфейсе программы или в списке установленных пакетов. Если у вас 8.0.2 или более ранняя сборка, обновитесь минимум до 8.0.3.
До какой версии нужно обновиться?
Минимально безопасная версия — 8.0.3, актуальный выпуск — 8.1.0.
Есть ли у уязвимости CVE?
На 9 октября CVE не присвоен, формального бюллетеня безопасности AnyDesk не выпускала. В списке изменений исправление описано как «исправление ошибки, которая могла приводить к сбою». Это усложняет отслеживание: без CVE уязвимость не попадёт в автоматические сканеры и списки вроде KEV, как это было с 0-day в FortiMail.
Работает ли эксплойт через relay-серверы AnyDesk?
Исследователи подтвердили, что тот же уязвимый код достижим через relay, но полную цепочку эксплуатации через relay не продемонстрировали. Вопрос остаётся открытым.
Что делать, если обновиться нельзя?
Ограничьте доступ к TCP-порту 7070 и не допускайте прямых подключений AnyDesk из интернета. Это снижает поверхность атаки для опубликованного эксплойта.
Эксплойт срабатывает всегда?
Нет, он вероятностный: нужно, чтобы целевой объект оказался рядом с переполняемым буфером в куче. Иначе служба падает вместо выполнения команды. Кроме того, смещения в коде рассчитаны на сборку 8.0.2 — для других версий их придётся подбирать заново.
Связана ли эта уязвимость с CVE-2025-27918?
Нет, это разные дефекты. CVE-2025-27918 — целочисленное переполнение при обработке изображений пользователя, исправленное в версии 7.0.0 в апреле 2025 года. AnyPwn использует переполнение в протоколе сессии.
Источник: thehackernews.com