Компания Check Point выявила уязвимость в предлагаемых компаниями MediaTek (CVE-2021-0674, CVE-2021-0675) и Qualcomm (CVE-2021-30351) декодировщиках формата сжатия звука ALAC (Apple Lossless Audio Codec). Проблема позволяет выполнить код атакующего при обработке специально оформленных данных в формате ALAC.
Опасность уязвимости усугубляется тем, что она затрагивает устройства под управлением платформы Android, оснащённые чипами MediaTek и Qualcomm. В результате атаки злоумышленник может организовать выполнение вредоносного ПО на устройстве, имеющего доступ к общению пользователя и мультимедийным данным, включая данные с камеры. По приблизительно оценке проблеме подвержены 2/3 всех пользователей смартфонов на базе платформы Android. Например, в США общая доля всех проданных в 4 квартале 2021 года Android-смартфонов, поставляемых с чипами MediaTek and Qualcomm, составила 95.1% (48.1% – MediaTek, 47% – Qualcomm).
Детали эксплуатации уязвимости пока не раскрываются, но сообщается, что в компоненты MediaTek и Qualcomm для платформы Android исправления были внесены в декабре 2021 года. В декабрьском отчёте об уязвимостях в платформе Android проблемы отмечены как критические уязвимости в закрытых компонентах для чипов Qualcomm. Уязвимость в компонентах MediaTek в отчётах не упоминается.
Уязвимость интересна своими корнями. В 2011 году компания Apple открыла под лицензией Apache 2.0 исходные тексты кодека ALAC, позволяющего сжимать звуковые данные без потери качества, предоставила возможность использования всех связанных с кодеком патентов. Код был опубликован, но оставлен без сопровождения и не менялся за последние 11 лет. При этом компания Apple продолжала отдельно поддерживать реализацию, применяемую в своих платформах, и в том числе устранять в ней ошибки и уязвимости. Компании MediaTek и Qualcomm основали свои реализации кодеков ALAC на изначально открытом компанией Apple коде, но не учитывали в своих вариантах исправления уязвимостей, устраняемых в реализации от компании Apple.
О проявлении уязвимости в коде других продуктов, также использующих устаревший код ALAC, информации пока нет. Например, формат ALAC поддерживается начиная с FFmpeg 1.1, но код с реализацией декодировщика активно развивается.