Исследователи из Computest Sector 7 и PHP Hooligans / Midnight Blue определили и воспользовались двумя уязвимостями переполнения стека в прошивке Autel Maxicharger версии 1.32 на Pwn2Own Automotive 2024. Первая уязвимость, CVE-2024-23967, вызвана декодированием данных, закодированных в base64, которые могут быть контролируемыми злоумышленником, что приводит к переполнению стека и удаленному выполнению кода. Уязвимая функция отвечает за обработку сообщений ACMP, полученных от сервера websockets.
Autel развернула обновление прошивки, версию 1.35, для устранения обеих уязвимостей. Патч для первой уязвимости добавляет проверку длины, чтобы убедиться, что закодированная в base64 строка меньше 1366 байт перед декодированием ее в 1024-байтовый стековый буфер. Однако этот патч не идеален, поскольку он защищает только от переполнения буфера в этой конкретной функции, а другой код, который может вызвать функцию base64_decode, может ввести другое переполнение буфера.
Вторая уязвимость, CVE-2024-23957, вызвана декодированием большого шестнадцатеричного строки в фиксированный размер стека без проверки границ. Уязвимая функция связана с протоколом динамического балансировки нагрузки, который распределяет нагрузку мощности между сетью зарядных устройств для электромобилей. Патч для этой уязвимости добавляет проверку длины, чтобы убедиться, что длина ключа, закодированного в шестнадцатеричном формате, меньше 33 байт перед декодированием ее в 16-байтовый стековый буфер.
Оба патча действительны, но могли бы быть более эффективными, если бы длина выходного буфера передавалась функциям декодирования, чтобы они могли внутренне обеспечить невозможность переполнения буфера. Реакция Autel на уязвимости и выпуск патча являются положительным знаком, но производители зарядных устройств для электромобилей должны улучшить безопасность своих продуктов для смягчения рисков безопасности.
thezdi.com
From Pwn2Own Automotive: More Autel Maxicharger Vulnerabilities
