Современные технологии связи постоянно развиваются, и одним из ключевых направлений является VoLTE — голосовая связь поверх LTE, обеспечивающая высокое качество голосовых вызовов и быструю установку соединения. Однако внедрение новых технологий всегда сопровождается вызовами и выявлением определенных уязвимостей. Компания sipgate недавно обнаружила серьезную ошибку, присутствующую в прошивке VoLTE стека Mediatek — null-pointer-dereference, которая приводила к сбоям в работе смартфонов и ухудшению качества связи. Данная проблема была выявлена при работе с различными телефонами, использующими SIM-карты sipgate и подключенными к их VoLTE/IMS сети. Технология VoLTE (Voice over LTE) представляет собой голосовую связь, реализованную через передачу данных в сети LTE.
В отличие от классических звонков в 2G или 3G, где голосовая связь осуществляется через выделенный канал, VoLTE передает голос в виде IP-пакетов через специальную подсистему IMS (IP Multimedia Subsystem). Это позволяет значительно улучшить качество голоса, снизить время установления вызова, а также внедрить такие функции, как высокая четкость звука и возможность одновременного использования мобильного интернета. Компания sipgate, которая с конца 2023 года предоставляет услуги VoLTE и IMS своим абонентам, натолкнулась на ситуацию, когда некоторые модели смартфонов не корректо взаимодействовали с их сетью. Среди подобных японец, китайские и европейские бренды, включая Huawei, Xiaomi, Gigaset и Motorola. Все устройства успешно подключались к LTE сети, регистрировались, им выдавался адрес в IP-сети, и мобильный интернет множества смартфонов функционировал бесперебойно.
Однако при попытках с их стороны принять входящие вызовы через VoLTE происходил полный сбой. Телефоны просто не реагировали на приглашения к вызову (SIP INVITE), а после определенного количества попыток звонок либо полностью проваливался, либо устройство переключалось на менее защищенную и более медленную сеть 2G. В процессе детального анализа логов и трафика инженеры sipgate заметили, что проблемные смартфоны начинали обмениваться сигнализацией с сервером через TCP вместо привычного UDP в случае больших сообщений SIP. Следуя стандарту RFC 3261, это поведение корректно, однако выявило эту ошибку, связанную с обработкой SIP-сообщений внутри Mediatek VoLTE стека. При более глубоком исследовании удалось обнаружить, что приложение volte_stack на телефоне аварийно завершалось при получении определенного SIP NOTIFY сообщения без обязательного заголовка Contact.
Данный заголовок необходим для корректной обработки уведомлений о состоянии звонка и регистрации в VoLTE сети. В результате отсутствия этого элемента стек вызывал ошибку null-pointer-dereference — попытку доступа к неинициализированному указателю в памяти, что приводило к сбою приложения и перезапуску процесса. Этот цикл перезапусков генераировал дополнительную нагрузку на процессор, вызывая торможения, повышенный нагрев устройства и ухудшение пользовательского опыта. Важно отметить, что подобное поведение не было единичным. Уязвимость проявлялась на множестве моделей смартфонов с чипсетами Mediatek, установленными в популярные устройства.
Это обстоятельство подчеркивало значимость и срочность решения проблемы. Кроме того, ошибка касалась не только VoLTE, но и технологий Voice over WiFi (VoWiFi), которые набирают популярность с точки зрения быстроты установки соединения и экономии ресурсов. Попытка воспроизвести баг в лабораторных условиях с использованием VoWiFi облегчила диагностирование и анализ проблемы. Sipgate оперативно связалась с поставщиками IMS оборудования и с производителем чипсетов MediaTek для уведомления и совместного решения выявленной уязвимости. Внутри собственной сети sipgate был добавлен временный заголовок Contact в отправляемых NOTIFY сообщениях, что позволило избежать сбоев.
Однако это не было долгосрочным решением, поскольку для полной стабильности требовалось обновление прошивки Mediatek на уровне программного обеспечения VoLTE стека. В процессе работы sipgate сотрудничала с исследовательскими организациями ISMK из Стральзунда и SBA Research из Вены. Их опыт в области безопасности мобильных устройств и сетей помог проанализировать дампы памяти, логи ошибок и понять корень проблемы. Вместе им удалось установить, что причинами сбоев является неправильная обработка обязательных заголовков SIP сообщений медиа стеком, точнее отсутствие проверки существования Contact перед попыткой обращения к нему. После совместного анализа sipgate отправила официальное уведомление в MediaTek и производителям смартфонов, в частности Motorola, о выявленной уязвимости, что привело к ее присвоению идентификатора CVE-2025-20647 и разработке патча.
Согласно оценке безопасности, данная уязвимость была классифицирована как средняя по степени риска (CVSS 5.3) ввиду необходимости привилегированного доступа к IMS сети. Это означало, что эксплуатировать баг в массовом масштабе сложно, тем не менее, он может привести к отказу в обслуживании и переходу вызовов в менее надежные сети 2G с пониженным уровнем защиты. Проблема null-pointer-dereference не только нарушала работу VoLTE вызовов на устройствах, но и открывала потенциальные пути для атаки, направленной на снижение качества связи. Злоумышленники, получившие доступ к IMS узлам, могли принудительно прервать работу VoLTE стека, провоцируя сбой и переход устройств на 2G, что ухудшало пользовательский опыт и ослабляло безопасность вызовов.
Это происшествие подчеркивает важность постоянного мониторинга и тестирования взаимодействия сетевых элементов и пользовательских устройств, особенно в новых технологиях связи. Несложная по своей сути ошибка в протоколе SIP может иметь масштабные последствия для миллионов пользователей. Со стороны разработчиков оборудования и прошивок необходимо реализовать более строгую валидацию входящих сообщений, а также грамотно обрабатывать исключения. Использование стандартизированных и проверенных стеков SIP с регулярным обновлением безопасности должно быть обязательным условием для производителей мобильных устройств и чипсетов. Sipgate в своей практике показала пример внимательного отношения к качеству VoLTE сервиса и готовности к сотрудничеству с партнерами и экспертами из сферы безопасности для устранения подобных сложных проблем.
Открытое взаимодействие с сообществом и своевременное информирование пользователей и производителей позволили минимизировать негативное воздействие багов и повысить надежность мобильной связи. В итоге, обнаружение и исправление null-pointer-dereference уязвимости в прошивке Mediatek VoLTE стало важным шагом на пути улучшения качества голосовых вызовов и безопасности современных сетей связи. Пользователям рекомендуется своевременно обновлять программное обеспечение своих устройств и следить за обновлениями от производителей, поскольку подобные случаи показывают, что безопасность мобильной связи — это динамичная и многоуровневая задача, требующая координации на всех уровнях от оператора до конечного пользователя.