Купить решения «Лаборатории Касперского»
в интернет-магазине Kaspersky-Security.ru
ГлавнаяНовости→Вредоносный шрифт: чем опасна уязвимость Canon CVE-2024-12649

Вредоносный шрифт: чем опасна уязвимость Canon CVE-2024-12649

Как скомпрометировать сеть организации, просто отправив на печать документ — все об уязвимости в интерпретаторе шрифтов TTF в МФУ Canon

В сети организации атакующим все реже встречается такая роскошь, как рабочий компьютер без агента EDR, поэтому злоумышленники делают акцент на компрометацию серверов или разнообразных специализированных устройств. Они тоже подключены к сети, имеют достаточно широкие доступы, но при этом не защищенны EDR и часто не снабжены журналированием. О типах уязвимых офисных устройств мы подробно писали ранее. Реальные атаки 2025 года сосредоточены на сетевых устройствах (VPN, файрволы, роутеры), системах видеонаблюдения и собственно серверах. Но не стоит сбрасывать со счетов и принтеры. Об этом напомнил независимый исследователь Петер Гайслер в своем докладе на Security Analyst Summit 2025. Он описал найденную им уязвимость в принтерах и МФУ Canon (CVE-2024-12649, CVSS 9.8), которая позволяет запустить на устройствах вредоносный код. Самое интересное в этой уязвимости — для ее эксплуатации достаточно отправить на печать невинного вида файл.

Вредоносная матрешка: атака через CVE-2024-12649

Атака начинается с того, что злоумышленник отправляет на печать файл в формате XPS. Этот изобретенный Microsoft формат содержит все необходимое для успешной печати документа и является альтернативой PDF. По сути XPS — это архив формата ZIP, содержащий подробное описание документа, все его изображения, а также использованные в оформлении шрифты. Шрифты, как правило, хранятся в широко используемом формате TTF (TrueType Font), изобретенном Apple. Как раз в шрифте, который обычно не воспринимается как нечто опасное, и содержится вредоносный код.

По задумке создателей формата TTF, буквы шрифта должны выглядеть одинаково на любом носителе и в любом размере — от самого маленького символа на экране до самого большого на бумажном плакате. Чтобы достичь этой цели, к каждой букве могут быть написаны инструкции хинтинга (font hinting, font instruction), описывающие нюансы отображения букв в маленьких размерах. По сути, инструкции хинтинга — это команды для компактной виртуальной машины, которая, несмотря на простоту, поддерживает все основные «строительные блоки» программирования: управление памятью, переходы, ветвления. Гайслер с коллегами изучили, как эта виртуальная машина реализована в принтерах Canon и обнаружили, что некоторые инструкции хинтинга TTF выполняются небезопасным образом, например команды виртуальной машины, управляющие стеком, не проверяют его на переполнение.

В результате им удалось создать вредоносный шрифт, который при печати документа с этим шрифтом на некоторых принтерах Canon вызывает переполнение стека, запись данных за пределы буферов виртуальной машины и в итоге — выполнение кода на процессоре принтера. Вся атака проводится через файл TTF, остальное содержимое файла XPS безобидно. Впрочем, даже в файле TTF заметить вредоносный код довольно сложно. Он не очень длинный: первая часть является инструкциями виртуальной машины TTF, а вторая работает на базе экзотической фирменной ОС Canon (DryOS).

Стоит отметить, что Canon в последние годы уделяет внимание защите прошивок принтеров, например использует предусмотренные в процессорах ARM регистры DACR и флаги NX (No-Execute), чтобы ограничить возможности модифицировать системный код или запустить код в тех фрагментах памяти, где должны храниться данные. Несмотря на это, общая архитектура DryOS не позволяет эффективно реализовать характерные для современных «больших» ОС механизмы защиты памяти вроде ASLR или Stack Canary. Поэтому исследователи иногда находят способы обойти эту защиту. Например, в описываемой атаке вредоносный код удалось исполнить, разместив его при помощи трюка с TTF в буфере памяти, предназначенном для другого протокола печати, IPP.

Реалистичный сценарий эксплуатации

В своем бюллетене, описывающем уязвимость, Canon утверждают, что уязвимость может быть проэксплуатирована дистанционно, если принтер доступен для печати через Интернет. Поэтому они предлагают настроить файрвол, чтобы принтером можно было пользоваться только из офисной сети. Этот совет неплох и убрать принтер из публичного доступа действительно надо, однако данный сценарий атаки не единственный.

В своем докладе Петер Гайслер указал на гораздо более реалистичный гибридный вариант, в котором злоумышленник присылает сотруднику письмо с вложением по e-mail или документ в мессенджере и под тем или иным предлогом советует напечатать его. Если жертва действительно направит документ на печать (во внутренней сети организации, безо всякого Интернета), на принтере будет запущен вредоносный код. Разумеется, на самом принтере возможности вредоносного ПО будут ограничены, но оно может, например, создать туннель, установив соединение с сервером атакующих, через который атакующие смогут развить атаку на другие компьютеры организации. Другой возможный вариант использования зловреда на принтере может привести к пересылке всей информации, которую печатают в компании, на сервер атакующих. В некоторых организациях вроде юридических фирм это может стать критической утечкой данных.

Как защититься от принтерной угрозы

Саму уязвимость CVE-2024-12649 и еще несколько близкородственных ей дефектов можно устранить, установив обновление прошивки принтера по инструкции Canon. К сожалению, многие организации (даже те, в которых ПО на компьютерах и серверах исправно обновляется) не имеют системного процесса для обновления прошивок принтеров. Его необходимо внедрить для всего оборудования, подключенного к компьютерной сети.

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

  • сегментировать сеть, ограничивая возможности принтера устанавливать исходящие соединения, а также принимать соединения от устройств и пользователей, не имеющих полномочий на печать;
  • отключить на принтере все неиспользуемые службы;
  • установить на принтере сложный и уникальный для каждого устройства пароль администратора;
  • внедрить в организации комплексную систему безопасности, включающую: установку EDR на все компьютеры и серверы, современный межсетевой экран и комплексный мониторинг сети на базе SIEM-системы. Потребуется также настроить анализ трафика принтера через NGFW для выявления аномальных соединений.

Источник: Лаборатория Касперского

13.11.2025