главное в кибербезопасности Читать в канале
Уязвимости 24 сентября 2026 2 мин

В принтере Canon MF753Cdw нашли переполнение буфера с удалённым выполнением кода

Переполнение буфера в принтере Canon MF753Cdw приводит к удалённому выполнению кода

Исследователь безопасности обнаружил уязвимость CVE-2024-0244 в принтере Canon MF753Cdw. Уязвимость представляет собой переполнение буфера на куче без аутентификации, которое приводит к произвольному вызову функции free(). Это позволяет злоумышленнику выполнить произвольный код на устройстве.

Canon MF753Cdw использует драйвер для отправки факсов

Canon MF753Cdw — это многофункциональное устройство, которое также поддерживает отправку факсов. Для этого используется специальный драйвер, устанавливаемый на компьютер пользователя. При отправке факса драйвер взаимодействует с принтером через протокол SOAP, отправляя сообщения на конечную точку /wsd/print. В процессе передачи данных драйвер отправляет бинарный пакет, содержащий информацию о получателе, имя файла для отправки, имя пользователя и имя компьютера в системе Windows. В этом пакете содержатся строки, длина которых указывается байтом перед самой строкой.

Уязвимость возникает при обработке длинных строк в факс-драйвере

Уязвимость CVE-2024-0244 проявляется при обработке факс-драйвером длинных строк. Исследователь обнаружил, что указание большого значения (0xff) для длины номера факса приводит к сбою задачи отправки факса и последующей перезагрузке принтера. Анализ логов устройства показал сообщения, связанные с функцией free(), непосредственно перед сбоем. В прошивке принтера найдена функция free() с функцией логирования, которая выводит адрес объекта перед его освобождением. Злоумышленник может контролировать указатель, передаваемый в функцию free(), с помощью специально сформированного бинарного факс-пакета. Это происходит из-за переполнения буфера при копировании номера факса в массив phone_number без проверки длины. Переполненный буфер перезаписывает соседние поля объекта на куче, включая указатель unknown, который затем передается в free().

Эксплуатация уязвимости использует протокол BJNP для выполнения кода

Эксплуатация уязвимости CVE-2024-0244 включает использование проприетарного протокола Canon BJNP. Этот протокол позволяет отправлять запросы без аутентификации и сохраняет их по фиксированным адресам в памяти устройства. Злоумышленник отправляет два BJNP-запроса. Первый запрос содержит поддельный объект кучи с валидными метаданными и известным размером. Второй запрос содержит шеллкод. После этого вызывается уязвимость переполнения буфера в факс-драйвере, которая освобождает поддельный объект кучи из первого BJNP-запроса. Затем выполняется выделение памяти, которое повторно использует освобожденный объект BJNP. Данные из второго BJNP-запроса перезаписывают этот объект, включая указатель на функцию. Этот указатель перенаправляется на шеллкод из второго BJNP-запроса, что приводит к выполнению произвольного кода. Исследователь продемонстрировал выполнение кода, запустив игру DOOM на дисплее принтера.

Источник: Zero Day Initiative