Дата публикации: 13 августа 2015 г.
К выходу ежемесячного бюллетеня по безопасности Android мы выпустили беспроводное обновление системы безопасности для устройств Nexus и опубликовали образы встроенного ПО Nexus на сайте для разработчиков. Уязвимости устранены в сборке LMY48I и более новых. Мы сообщили партнерам об уязвимостях 25 июня 2015 года или ранее.
Самая серьезная из проблем – критическая уязвимость, которая позволяет удаленно выполнять код на устройстве, где идет обработка медиафайлов. Например, это может быть при просмотре сайтов в интернете и работе с электронной почтой и MMS. Уровень серьезности зависит от того, какой ущерб может быть нанесен устройству при атаке с использованием уязвимости, если средства защиты будут отключены в целях разработки или злоумышленник их обойдет.
Предотвращение атак
Ниже рассказывается, как платформа безопасности и средства защиты сервисов, например SafetyNet, позволяют снизить вероятность успешной эксплуатации уязвимостей на Android.
- В новых версиях Android сложнее использовать многие уязвимости, поэтому мы рекомендуем своевременно обновлять систему.
- Команда, отвечающая за безопасность Android, активно отслеживает злоупотребления с помощью Проверки приложений и SafetyNet. Эти сервисы предупреждают пользователя об установке потенциально вредоносных приложений. Инструменты для рутинга в Google Play запрещены. Чтобы защитить пользователей, которые устанавливают ПО из сторонних источников, функция "Проверка приложений" включена по умолчанию. При этом система предупреждает пользователей об известных рутинг-приложениях. Кроме того, она пытается идентифицировать известное вредоносное ПО, использующее уязвимость для повышения привилегий, и блокировать его установку. Если подобное ПО уже установлено, функция уведомит об этом пользователя и попытается удалить приложение.
- Компания Google обновила приложения Hangouts и Messenger. Теперь они не передают медиафайлы уязвимым процессам, таким как mediaserver, автоматически.
Благодарности
Благодарим всех, кто помог обнаружить уязвимости:
- Джошуа Дрейк: CVE-2015-1538, CVE-2015-3826.
- Бен Хоукс: CVE-2015-3836.
- Александру Бланда: CVE-2015-3832.
- Михал Беднарский: CVE-2015-3831, CVE-2015-3844, CVE-2015-1541.
- Алекс Копот: CVE-2015-1536.
- Алекс Юбэнкс: CVE-2015-0973.
- Рои Хэй и Ор Пелес: CVE-2015-3837.
- Гуан Гун: CVE-2015-3834.
- Гал Беньямини: CVE-2015-3835.
- Виш Ву*: CVE-2015-3842.
- Артем Чайкин: CVE-2015-3843.
* Мы также награждаем Виш У первым призом Android Security Rewards!
Целочисленное переполнение при обработке атомов MP4
При обработке атомов MP4 в libstagefright могут возникать целочисленные переполнения, которые позволяют нарушить целостность информации в памяти и удаленно выполнить код от имени процесса mediaserver.
Уязвимая функция является частью API. Многие приложения позволяют контенту, обычно MMS-сообщениям и воспроизводимым в браузере медиафайлам, дистанционно обращаться к ней.
Уязвимости присвоен критический уровень из-за возможности удаленного выполнения кода от имени привилегированного сервиса (mediaserver). Этот сервис защищен SELinux, однако у него есть доступ к аудио- и видеопотокам, а также к узлам устройства из драйвера ядра. Такие данные недоступны сторонним приложениям. Согласно старым правилам, этой уязвимости ранее присваивался высокий уровень серьезности. По новым правилам, опубликованным в июне 2015 года, мы присвоили ей критический уровень.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-1538 | ANDROID-20139950 [2] | Критический | 5.1 и ниже |
Целочисленное антипереполнение при обработке ESDS
При обработке блоков ESDS в libstagefright может возникнуть целочисленное антипереполнение, которое позволяет нарушить целостность информации в памяти и удаленно выполнить код от имени процесса mediaserver.
Уязвимая функция является частью API. Многие приложения позволяют контенту, обычно MMS-сообщениям и воспроизводимым в браузере медиафайлам, дистанционно обращаться к ней.
Уязвимости присвоен критический уровень из-за возможности удаленного выполнения кода от имени привилегированного сервиса (mediaserver). Этот сервис защищен SELinux, однако у него есть доступ к аудио- и видеопотокам, а также к узлам устройства из драйвера ядра. Такие данные недоступны сторонним приложениям. Согласно старым правилам, этой уязвимости ранее присваивался высокий уровень серьезности. По новым правилам, опубликованным в июне 2015 года, мы присвоили ей критический уровень.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-1539 | ANDROID-20139950 | Критический | 5.1 и ниже |
Целочисленное переполнение в libstagefright при обработке атомов tx3g (MPEG4)
При обработке атомов tx3g (MPEG4) в libstagefright может возникнуть целочисленное переполнение, которое позволяет нарушить целостность информации в памяти и удаленно выполнить код от имени процесса mediaserver.
Уязвимая функция является частью API. Многие приложения позволяют контенту, обычно MMS-сообщениям и воспроизводимым в браузере медиафайлам, дистанционно обращаться к ней.
Уязвимости присвоен критический уровень из-за возможности удаленного выполнения кода от имени привилегированного сервиса (mediaserver). Этот сервис защищен SELinux, однако у него есть доступ к аудио- и видеопотокам, а также к узлам устройства из драйвера ядра. Такие данные недоступны сторонним приложениям.
Согласно старым правилам, этой уязвимости ранее присваивался высокий уровень серьезности. По новым правилам, опубликованным в июне 2015 года, мы присвоили ей критический уровень.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-3824 | ANDROID-20923261 | Критический | 5.1 и ниже |
Целочисленное антипереполнение в libstagefright при обработке атомов MPEG4 (covr)
При обработке MPEG4 в libstagefright может возникнуть целочисленное антипереполнение, которое позволяет нарушить целостность информации в памяти и удаленно выполнить код от имени процесса mediaserver.
Уязвимая функция является частью API. Многие приложения позволяют контенту, обычно MMS-сообщениям и воспроизводимым в браузере медиафайлам, дистанционно обращаться к ней.
Уязвимости присвоен критический уровень из-за возможности удаленного выполнения кода от имени привилегированного сервиса (mediaserver). Этот сервис защищен SELinux, однако у него есть доступ к аудио- и видеопотокам, а также к узлам устройства из драйвера ядра. Такие данные недоступны сторонним приложениям.
Согласно старым правилам, этой уязвимости ранее присваивался высокий уровень серьезности. По новым правилам, опубликованным в июне 2015 года, мы присвоили ей критический уровень.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-3827 | ANDROID-20923261 | Критический | 5.1 и ниже |
Целочисленное антипереполнение в libstagefright при обработке метаданных 3GPP, если размер меньше 6
При обработке данных 3GPP в libstagefright может возникнуть целочисленное антипереполнение, которое позволяет нарушить целостность информации в памяти и удаленно выполнить код от имени процесса mediaserver.
Уязвимая функция является частью API. Многие приложения позволяют контенту, обычно MMS-сообщениям и воспроизводимым в браузере медиафайлам, дистанционно обращаться к ней.
Уязвимости присвоен критический уровень из-за возможности удаленного выполнения кода от имени привилегированного сервиса (mediaserver). Этот сервис защищен SELinux, однако у него есть доступ к аудио- и видеопотокам, а также к узлам устройства из драйвера ядра. Такие данные недоступны сторонним приложениям. Согласно старым правилам, этой уязвимости ранее присваивался высокий уровень серьезности. По новым правилам, опубликованным в июне 2015 года, мы присвоили ей критический уровень.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-3828 | ANDROID-20923261 | Критический | 5.0 и выше |
Целочисленное переполнение в libstagefright при обработке атомов covr (MPEG4), когда значение chunk_data_size равно SIZE_MAX
При обработке атомов covr (MPEG4) в libstagefright может возникнуть целочисленное переполнение, которое позволяет нарушить целостность информации в памяти и удаленно выполнить код от имени процесса mediaserver.
Уязвимая функция является частью API. Многие приложения позволяют контенту, обычно MMS-сообщениям и воспроизводимым в браузере медиафайлам, дистанционно обращаться к ней.
Уязвимости присвоен критический уровень из-за возможности удаленного выполнения кода от имени привилегированного сервиса (mediaserver). Этот сервис защищен SELinux, однако у него есть доступ к аудио- и видеопотокам, а также к узлам устройства из драйвера ядра. Такие данные недоступны сторонним приложениям. Согласно старым правилам, этой уязвимости ранее присваивался высокий уровень серьезности. По новым правилам, опубликованным в июне 2015 года, мы присвоили ей критический уровень.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-3829 | ANDROID-20923261 | Критический | 5.0 и выше |
Переполнение буфера в Parse_wave (Sonivox)
При обработке XMF в Sonivox может возникнуть переполнение буфера, которое позволяет нарушить целостность информации в памяти и удаленно выполнить код от имени процесса mediaserver.
Уязвимая функция является частью API. Многие приложения позволяют контенту, обычно MMS-сообщениям и воспроизводимым в браузере медиафайлам, дистанционно обращаться к ней.
Уязвимости присвоен критический уровень из-за возможности удаленного выполнения кода от имени привилегированного сервиса (mediaserver). Этот сервис защищен SELinux, однако у него есть доступ к аудио- и видеопотокам, а также к узлам устройства из драйвера ядра. Такие данные недоступны сторонним приложениям. Согласно старым правилам, этой уязвимости ранее присваивался высокий уровень серьезности. По новым правилам, опубликованным в июне 2015 года, мы присвоили ей критический уровень.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-3836 | ANDROID-21132860 | Критический | 5.1 и ниже |
Переполнение буфера в MPEG4Extractor.cpp (libstagefright)
При обработке MP4 в libstagefright могут возникать переполнения буфера, которые позволяют нарушить целостность информации в памяти и удаленно выполнить код от имени процесса mediaserver.
Уязвимая функция является частью API. Многие приложения позволяют контенту, обычно MMS-сообщениям и воспроизводимым в браузере медиафайлам, дистанционно обращаться к ней.
Уязвимости присвоен критический уровень из-за возможности удаленного выполнения кода от имени привилегированного сервиса (mediaserver). Этот сервис защищен SELinux, однако у него есть доступ к аудио- и видеопотокам, а также к узлам устройства из драйвера ядра. Такие данные недоступны сторонним приложениям.
Изначально мы сообщали, что этой уязвимостью нельзя воспользоваться удаленно. Согласно старым правилам, этой уязвимости ранее присваивался средний уровень серьезности. По новым правилам, опубликованным в июне 2015 года, мы присвоили ей критический уровень.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-3832 | ANDROID-19641538 | Критический | 5.1 и ниже |
Переполнение буфера в BpMediaHTTPConnection (mediaserver)
При обработке данных, предоставленных другим приложением, в BpMediaHTTPConnection может возникнуть переполнение буфера. Это позволяет нарушить целостность информации в памяти и удаленно выполнить код от имени процесса mediaserver.
Уязвимая функция является частью API. Мы считаем, что ее нельзя использовать удаленно.
Уязвимости присвоен высокий уровень из-за возможности выполнения кода от имени привилегированного сервиса (mediaserver) через приложение, установленное на устройстве. Сервис mediaserver защищен SELinux, однако у него есть доступ к аудио- и видеопотокам, а также к узлам устройства из драйвера ядра. Эти данные недоступны сторонним приложениям.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-3831 | ANDROID-19400722 | Высокий | 5.0 и 5.1 |
Переполнение png_Read_IDAT_data (libpng)
При чтении данных IDAT в функции png_read_IDAT_data() в libpng может возникнуть переполнение буфера, которое позволяет нарушить целостность информации в памяти и удаленно выполнить код в приложении, используя этот метод.
Уязвимая функция является частью API. Возможно, некоторые приложения, такие как сервисы обмена сообщениями и браузеры, позволяют контенту дистанционно обращаться к ней.
Уязвимости присвоен высокий уровень серьезности из-за возможности удаленного выполнения кода от имени приложения без расширенных прав доступа.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-0973 | ANDROID-19499430 | Высокий | 5.1 и ниже |
Удаленная эксплуатация переполнения memcpy() в p2p_add_device() (wpa_supplicant)
Когда процесс wpa_supplicant находится в режиме WLAN Direct, в нем можно удаленно выполнять код из-за переполнения в методе p2p_add_device(). В результате успешной атаки может выполняться произвольный код от имени пользователя wifi.
Предотвратить атаку могут следующие меры:
– Функция WLAN Direct по умолчанию отключена на большинстве устройств Android.
– Злоумышленник не может произвести атаку, если находится вне диапазона действия Wi-Fi.
– Процесс wpa_supplicant выполняется от имени пользователя wifi (его доступ к системе ограничен).
– Дистанционная атака предотвращается с помощью ASLR на устройствах с Android 4.1 и выше.
– Права процесса wpa_supplicant ограничены политикой SELinux на Android 5.0 и выше.
Уязвимости присвоен высокий уровень серьезности из-за возможности удаленного выполнения кода. У пользователя wifi есть права, которые обычно недоступны сторонним приложениям, но мы считаем, что уязвимость не критическая: возможности для атаки ограничены, а также существуют меры ее предотвращения.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-1863 | ANDROID-20076874 | Высокий | 5.1 и ниже |
Нарушение целостности информации в памяти при десериализации OpenSSLX509Certificate
Вредоносное приложение, установленное на устройстве, может отправить алгоритм в другое приложение. После того как алгоритм будет десериализирован, он может уменьшить значение в произвольном адресе ячейки памяти, что позволяет нарушить целостность информации в памяти и выполнить код в конечном приложении.
Уязвимости присвоен высокий уровень серьезности, поскольку с ее помощью можно получить привилегии, недоступные сторонним приложениям.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-3837 | ANDROID-21437603 | Высокий | 5.1 и ниже |
Переполнение буфера в BnHDCP (mediaserver)
При обработке данных, предоставленных другим приложением, в libstagefright может возникнуть целочисленное переполнение буфера. Это позволяет нарушить целостность информации в памяти и удаленно выполнить код от имени процесса mediaserver.
Уязвимости присвоен высокий уровень серьезности, поскольку с ее помощью можно получить привилегии, недоступные сторонним приложениям. Сервис mediaserver защищен SELinux, однако у него есть доступ к аудио- и видеопотокам, а также к узлам устройства из драйвера ядра. Эти данные недоступны сторонним приложениям.
Согласно старым правилам, этой уязвимости ранее присваивался средний уровень серьезности. По новым правилам, опубликованным в июне 2015 года, мы присвоили ей высокий уровень.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-3834 | ANDROID-20222489 | Высокий | 5.1 и ниже |
Переполнение буфера в OMXNodeInstance::emptyBuffer (libstagefright)
При обработке данных, предоставленных другим приложением, в libstagefright может возникнуть переполнение буфера. Это позволяет нарушить целостность информации в памяти и удаленно выполнить код от имени процесса mediaserver.
Уязвимости присвоен высокий уровень серьезности, поскольку с ее помощью можно получить привилегии, недоступные сторонним приложениям. Сервис mediaserver защищен SELinux, однако у него есть доступ к аудио- и видеопотокам, а также к узлам устройства из драйвера ядра. Эти данные недоступны сторонним приложениям.
Согласно старым правилам, этой уязвимости ранее присваивался средний уровень серьезности. По новым правилам, опубликованным в июне 2015 года, мы присвоили ей высокий уровень.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-3835 | ANDROID-20634516 [2] | Высокий | 5.1 и ниже |
Переполнение кучи в AudioPolicyManager::getInputForAttr() (mediaserver)
Переполнение кучи в сервисе audio policy в mediaserver позволяет приложению, установленному на устройстве, выполнять произвольный код в процессе mediaserver.
Уязвимая функция является частью API. Мы считаем, что ее нельзя использовать удаленно.
Уязвимости присвоен высокий уровень из-за возможности выполнения кода от имени привилегированного сервиса (mediaserver) через приложение, установленное на устройстве. Сервис mediaserver защищен SELinux, однако у него есть доступ к аудио- и видеопотокам, а также к узлам устройства из драйвера ядра. Эти данные недоступны сторонним приложениям.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-3842 | ANDROID-21953516 | Высокий | 5.1 и ниже |
Перехват и имитация SIM-команд
Уязвимость фреймворка SIM Toolkit позволяет приложениям перехватывать и имитировать определенные SIM-команды при связи с подсистемой Telephony.
Уязвимости присвоен высокий уровень серьезности. С ее помощью приложение без расширенных прав может получить доступ к данным, защищенным разрешениями уровня signature (подпись) и system (система).
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-3843 | ANDROID-21697171 [2, 3, 4] | Высокий | 5.1 и ниже |
Демаршалинг Bitmap
Целочисленное переполнение Bitmap_createFromParcel() позволяет приложению либо вызвать сбой процесса system_server, либо читать данные в памяти system_server.
Уязвимости присвоен средний уровень серьезности из-за возможной утечки конфиденциальных данных из процесса system_server в локальный процесс без расширенных прав. Таким уязвимостям обычно присваивается высокий уровень серьезности, однако полученные при атаке данные нельзя контролировать с помощью атакующего процесса. Злоумышленник может лишь временно вывести устройство из строя. Эту проблему решает перезагрузка.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-1536 | ANDROID-19666945 | Средний | 5.1 и ниже |
AppWidgetServiceImpl может создать IntentSender с системными правами доступа
Уязвимость AppWidgetServiceImpl в Настройках позволяет приложению самостоятельно предоставить себе разрешение URI, указав FLAG_GRANT_READ/WRITE_URI_PERMISSION. Например, в результате злоумышленник может читать данные контактов без разрешения READ_CONTACTS.
Уязвимости присвоен средний уровень серьезности. С ее помощью приложение на устройстве может получить доступ к данным, защищенным разрешениями уровня dangerous.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-1541 | ANDROID-19618745 | Средний | 5.1 |
Обход ограничения на использование getRecentTasks()
Приложение на устройстве может найти активное приложение в обход ограничения на использование getRecentTasks(), введенного в Android 5.0.
Уязвимости присвоен средний уровень серьезности. С ее помощью приложение на устройстве может получить доступ к данным, защищенным разрешениями уровня dangerous.
Мы считаем, что об этой уязвимости впервые написали на сайте Stack Overflow.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-3833 | ANDROID-20034603 | Средний | 5.0 и 5.1 |
ActivityManagerService.getProcessRecordLocked() может загрузить неверный процесс для системного UID-приложения
Метод getProcessRecordLocked() в ActivityManager не подтверждает должным образом, что название приложения совпадает с именем пакета. В некоторых случаях это может привести к тому, что ActivityManager загрузит неверный процесс для определенных задач.
В результате приложение может препятствовать загрузке Настроек или добавлять параметры во фрагменты Настроек. Мы считаем, что это уязвимость не позволяет выполнять произвольный код от имени пользователя system.
Если уязвимость позволяет получить возможности, доступные только пользователю system, ей обычно присваивается высокий уровень серьезности. Поскольку в этом случае доступ ограничен, мы указали средний уровень.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-3844 | ANDROID-21669445 | Средний | 5.1 и ниже |
Переполнение буфера из-за операции чтения в libstagefright при обработке метаданных 3GPP
Целочисленное переполнение при обработке данных 3GPP может привести к выполнению операции чтения, перегружающей буфер и вызывающей сбой процесса mediaserver.
Изначально этой уязвимости был присвоен высокий уровень серьезности. Однако после тщательной проверки мы выяснили, что последствия сводятся только к сбою mediaserver, и изменили уровень на низкий.
CVE | Ошибки со ссылками на AOSP | Уровень серьезности | Уязвимые версии |
---|---|---|---|
CVE-2015-3826 | ANDROID-20923261 | Низкий | 5.0 и 5.1 |
Версии
- 13 августа 2015 г. Бюллетень опубликован.