Nexus 安全公告 - 2015 年 8 月

发布时间:2015 年 8 月 13 日

在每月发布 Android 安全公告的同时,我们都会通过无线 (OTA) 更新的方式发布针对 Nexus 设备的安全更新。 我们还会在 Google Developers 网站上发布 Nexus 固件映像。LMY48I 或更高版本的系统都已解决本公告中所述的问题。合作伙伴在 2015 年 6 月 25 日或之前就已收到关于这些问题的通知。

这些问题中危险性最高的是一个严重程度为“严重”的安全漏洞。攻击者可以通过多种方式(例如电子邮件、网页浏览和彩信等),在受影响的设备处理媒体文件时,利用漏洞远程执行代码。严重程度评估的依据是漏洞被利用后可能会对受影响的设备造成的影响(假设相关平台和服务缓解措施被成功规避或出于开发目的而被停用)。

缓解措施

这一部分总结了 Android 安全平台和服务防护功能(如 SafetyNet)提供的缓解措施。这些功能有助于降低 Android 上的安全漏洞被成功利用的可能性。

  • 较高版本的 Android 平台中提供的增强功能让攻击者更加难以利用 Android 上存在的许多问题。我们建议所有用户都尽可能更新到最新版 Android。
  • Android 安全团队会积极利用“验证应用”功能和 SafetyNet 监控滥用行为,这些功能会在用户要安装可能有害的应用时发出警告。Google Play 中禁止提供会获取设备 Root 权限的工具。为了保护从 Google Play 以外的来源安装应用的用户,“验证应用”功能会默认处于启用状态,并会在用户要安装能够获取 root 权限的已知应用时警告用户。“验证应用”功能会尝试识别并阻止用户安装会利用提权漏洞的已知恶意应用。如果用户已安装此类应用,那么“验证应用”功能将会通知用户并尝试移除所有此类应用。
  • Google 已对 Hangouts 和 Messenger 应用进行了适当更新,因此这两款应用不会自动将媒体内容传递给易受攻击的进程(例如 Mediaserver)。

致谢

非常感谢以下研究人员做出的贡献:

  • Joshua Drake:CVE-2015-1538、CVE-2015-3826
  • Ben Hawkes:CVE-2015-3836
  • Alexandru Blanda:CVE-2015-3832
  • Alexandru Blanda:CVE-2015-3831、CVE-2015-3844、CVE-2015-1541
  • Alex Copot:CVE-2015-1536
  • Alex Eubanks:CVE-2015-0973
  • Roee Hay 和 Or Peles:CVE-2015-3837
  • 龚广:CVE-2015-3834
  • Gal Beniamini:CVE-2015-3835
  • 吴潍浠*:CVE-2015-3842
  • Artem Chaykin:CVE-2015-3843

*吴潍浠还是我们的首位 Android 安全奖获得者!

在处理 MP4 atom 时会发生整数溢出

在系统处理 MP4 atom 期间,libstagefright 中可能会发生多次整数溢出,从而导致攻击者能够破坏内存,并且可能还能够通过 Mediaserver 进程远程执行代码。

受影响的功能是某个应用 API,有多个应用允许通过远程内容(最主要是彩信和浏览器媒体播放)使用该功能。

由于攻击者可以利用该漏洞通过特权 Mediaserver 服务远程执行代码,因此我们将该漏洞的严重程度评为“严重”。虽然 Mediaserver 受到 SELinux 的限制,但它确实可以访问音频和视频流以及许多设备上的特权内核驱动程序设备节点(第三方应用通常无法访问这些节点)。请注意,根据之前的严重程度评定准则,我们过去将该漏洞的严重程度评为了“高”,并且也是如此向合作伙伴报告的。但是,根据我们在 2015 年 6 月发布的新准则,该漏洞现在属于“严重”问题。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-1538 ANDROID-20139950 [2] 严重 5.1 及更低版本

在处理 ESDS 时会发生整数下溢

在系统处理 ESDS atom 期间,libstagefright 中可能会发生整数下溢,从而导致攻击者能够破坏内存,并且可能还能够通过 Mediaserver 进程远程执行代码。

受影响的功能是某个应用 API,有多个应用允许通过远程内容(最主要是彩信和浏览器媒体播放)使用该功能。

由于攻击者可以利用该漏洞通过特权 Mediaserver 服务远程执行代码,因此我们将该漏洞的严重程度评为“严重”。虽然 Mediaserver 受到 SELinux 的限制,但它确实可以访问音频和视频流以及许多设备上的特权内核驱动程序设备节点(第三方应用通常无法访问这些节点)。请注意,根据之前的严重程度评定准则,我们过去将该漏洞的严重程度评为了“高”,并且也是如此向合作伙伴报告的。但是,根据我们在 2015 年 6 月发布的新准则,该漏洞现在属于“严重”问题。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-1539 ANDROID-20139950 严重 5.1 及更低版本

在解析 MPEG4 tx3g atom 时,libstagefright 中会发生整数溢出

在系统处理 MPEG4 tx3g 数据期间,libstagefright 中可能会发生整数溢出,从而导致攻击者能够破坏内存,并且可能还能够通过 Mediaserver 进程远程执行代码。

受影响的功能是某个应用 API,有多个应用允许通过远程内容(最主要是彩信和浏览器媒体播放)使用该功能。

由于攻击者可以利用该漏洞通过特权 Mediaserver 服务远程执行代码,因此我们将该漏洞的严重程度评为“严重”。虽然 Mediaserver 受到 SELinux 的限制,但它确实可以访问音频和视频流以及许多设备上的特权内核驱动程序设备节点(第三方应用通常无法访问这些节点)。

请注意,根据之前的严重程度评定准则,我们过去将该漏洞的严重程度评为了“高”,并且也是如此向合作伙伴报告的。但是,根据我们在 2015 年 6 月发布的新准则,该漏洞现在属于“严重”问题。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-3824 ANDROID-20923261 严重 5.1 及更低版本

在处理 MPEG4 covr atom 时,libstagefright 中会发生整数下溢

在系统处理 MPEG4 数据期间,libstagefright 中可能会发生整数下溢,从而导致攻击者能够破坏内存,并且可能还能够通过 Mediaserver 进程远程执行代码。

受影响的功能是某个应用 API,有多个应用允许通过远程内容(最主要是彩信和浏览器媒体播放)使用该功能。

由于攻击者可以利用该漏洞通过特权 Mediaserver 服务远程执行代码,因此我们将该漏洞的严重程度评为“严重”。虽然 Mediaserver 受到 SELinux 的限制,但它确实可以访问音频和视频流以及许多设备上的特权内核驱动程序设备节点(第三方应用通常无法访问这些节点)。

请注意,根据之前的严重程度评定准则,我们过去将该漏洞的严重程度评为了“高”,并且也是如此向合作伙伴报告的。但是,根据我们在 2015 年 6 月发布的新准则,该漏洞现在属于“严重”问题。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-3827 ANDROID-20923261 严重 5.1 及更低版本

在处理 3GPP 元数据时,如果 size 小于 6,libstagefright 中会发生整数下溢

在系统处理 3GPP 数据期间,libstagefright 中可能会发生整数下溢,从而导致攻击者能够破坏内存,并且可能还能够通过 Mediaserver 进程远程执行代码。

受影响的功能是某个应用 API,有多个应用允许通过远程内容(最主要是彩信和浏览器媒体播放)使用该功能。

由于攻击者可以利用该漏洞通过特权 Mediaserver 服务远程执行代码,因此我们将该漏洞的严重程度评为“严重”。虽然 Mediaserver 受到 SELinux 的限制,但它确实可以访问音频和视频流以及许多设备上的特权内核驱动程序设备节点(第三方应用通常无法访问这些节点)。请注意,根据之前的严重程度评定准则,我们过去将该漏洞的严重程度评为了“高”,并且也是如此向合作伙伴报告的。但是,根据我们在 2015 年 6 月发布的新准则,该漏洞现在属于“严重”问题。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-3828 ANDROID-20923261 严重 5.0 及更高版本

在处理 MPEG4 covr atom 时,如果 chunk_data_size 为 SIZE_MAX,libstagefright 中会发生整数溢出

在系统处理 MPEG4 covr 数据期间,libstagefright 中可能会发生整数溢出,从而导致攻击者能够破坏内存,并且可能还能够通过 Mediaserver 进程远程执行代码。

受影响的功能是某个应用 API,有多个应用允许通过远程内容(最主要是彩信和浏览器媒体播放)使用该功能。

由于攻击者可以利用该漏洞通过特权 Mediaserver 服务远程执行代码,因此我们将该漏洞的严重程度评为“严重”。虽然 Mediaserver 受到 SELinux 的限制,但它确实可以访问音频和视频流以及许多设备上的特权内核驱动程序设备节点(第三方应用通常无法访问这些节点)。请注意,根据之前的严重程度评定准则,我们过去将该漏洞的严重程度评为了“高”,并且也是如此向合作伙伴报告的。但是,根据我们在 2015 年 6 月发布的新准则,该漏洞现在属于“严重”问题。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-3829 ANDROID-20923261 严重 5.0 及更高版本

Sonivox Parse_wave 中会发生缓冲区溢出

在系统处理 XMF 数据期间,Sonivox 中可能会发生缓冲区溢出,从而导致攻击者能够破坏内存,并且可能还能够通过 Mediaserver 进程远程执行代码。

受影响的功能是某个应用 API,有多个应用允许通过远程内容(最主要是彩信和浏览器媒体播放)使用该功能。

由于攻击者可以利用该漏洞通过特权 Mediaserver 服务远程执行代码,因此我们将该漏洞的严重程度评为“严重”。虽然 Mediaserver 受到 SELinux 的限制,但它确实可以访问音频和视频流以及许多设备上的特权内核驱动程序设备节点(第三方应用通常无法访问这些节点)。请注意,根据之前的严重程度评定准则,我们过去将该漏洞的严重程度评为了“高”,并且也是如此向合作伙伴报告的。但是,根据我们在 2015 年 6 月发布的新准则,该漏洞现在属于“严重”问题。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-3836 ANDROID-21132860 严重 5.1 及更低版本

libstagefright MPEG4Extractor.cpp 中会发生缓冲区溢出

在系统处理 MP4 期间,libstagefright 中可能会发生多次缓冲区溢出,从而导致攻击者能够破坏内存,并且可能还能够通过 Mediaserver 进程远程执行代码。

受影响的功能是某个应用 API,有多个应用允许通过远程内容(最主要是彩信和浏览器媒体播放)使用该功能。

由于攻击者可以利用该漏洞通过特权 Mediaserver 服务远程执行代码,因此我们将该漏洞的严重程度评为“严重”。虽然 Mediaserver 受到 SELinux 的限制,但它确实可以访问音频和视频流以及许多设备上的特权内核驱动程序设备节点(第三方应用通常无法访问这些节点)。

我们最初报告的是攻击者可以在本地利用该漏洞,但无法远程利用该漏洞。 请注意,根据之前的严重程度评定准则,我们过去将该漏洞的严重程度评为了“中”,并且也是如此向合作伙伴报告的。但是,根据我们在 2015 年 6 月发布的新准则,该漏洞现在属于“严重”问题。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-3832 ANDROID-19641538 严重 5.1 及更低版本

Mediaserver BpMediaHTTPConnection 中会发生缓冲区溢出

在系统处理其他应用提供的数据时,BpMediaHTTPConnection 中可能会发生缓冲区溢出,从而导致攻击者能够破坏内存,并且可能还能够通过 Mediaserver 进程执行代码。

受影响的功能是某个应用 API。我们不认为攻击者能够远程利用该漏洞。

由于攻击者可以利用该漏洞在本地应用中通过特权 Mediaserver 服务执行代码,因此我们将该漏洞的严重程度评为“高”。虽然 Mediaserver 受到 SELinux 的限制,但它确实可以访问音频和视频流以及许多设备上的特权内核驱动程序设备节点(第三方应用通常无法访问这些节点)。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-3831 ANDROID-19400722 5.0 和 5.1

libpng 中的漏洞:png_Read_IDAT_data 中会发生溢出

在系统读取 libpng 的 png_read_IDAT_data() 函数中的 IDAT 数据时,该函数中可能会发生缓冲区溢出,从而导致攻击者能够破坏内存,并且可能还能够通过使用此方法的应用远程执行代码。

受影响的功能是某个应用 API,有多个应用允许通过远程内容(最主要是消息应用和浏览器)使用该功能。

由于攻击者可以利用该漏洞通过非特权应用远程执行代码,因此我们将该漏洞的严重程度评为“高”。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-0973 ANDROID-19499430 5.1 及更低版本

wpa_supplicant 内的 p2p_add_device() 中会发生可被攻击者远程利用的 memcpy() 溢出

当 wpa_supplicant 以 WLAN 直连模式运行时,很容易因 p2p_add_device() 方法中发生溢出而导致攻击者能够远程执行代码。如果攻击者成功利用该漏洞,则可能导致以 Android 中“WLAN”用户的身份执行代码。

下面几种缓解措施有助于降低该漏洞被成功利用的可能性:

- WLAN 直连模式在大多数 Android 设备上默认处于未启用状态

- 攻击者必须在较近的距离内(在 WLAN 覆盖范围内)才能利用该漏洞

- wpa_supplicant 进程以“WLAN”用户的身份(对系统拥有有限的访问权限)运行

- 在运行 Android 4.1 及更高版本的设备上,ASLR 可缓解该漏洞被远程利用的可能性

- 在 Android 5.0 及更高版本上,wpa_supplicant 进程受到 SELinux 政策的严格限制

由于攻击者可以利用该漏洞远程执行代码,因此我们将该漏洞的严重程度评为“高”。虽然“WLAN”服务确实具有第三方应用通常无法获取的权能,我们可以据此将该漏洞的严重程度评为“严重”,但由于具有的只是有限的权能,并且已部署一定级别的缓解措施,因此我们认为可以将其严重程度降为“高”。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-1863 ANDROID-20076874 5.1 及更低版本

OpenSSLX509Certificate 反序列化中会发生内存损坏

本地恶意应用可以发送一个 intent,当收到该 intent 的应用对其进行反序列化后,该 intent 可以减低任意内存地址的值,从而导致攻击者能够破坏内存,并且可能还能够通过接收 intent 的应用执行代码。

由于攻击者可以利用该漏洞获取第三方应用无法获取的权限,因此我们将该漏洞的严重程度评为“高”。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-3837 ANDROID-21437603 5.1 及更低版本

Mediaserver BnHDCP 中会发生缓冲区溢出

在系统处理其他应用提供的数据时,libstagefright 中可能会发生整数溢出,从而导致攻击者能够破坏内存(堆),并且可能还能够通过 Mediaserver 进程执行代码。

由于攻击者可以利用该漏洞获取第三方应用无法获取的权限,因此我们将该漏洞的严重程度评为“高”。虽然 Mediaserver 受到 SELinux 的限制,但它确实可以访问音频和视频流以及许多设备上的特权内核驱动程序设备节点(第三方应用通常无法访问这些节点)。

请注意,根据之前的严重程度评定准则,我们过去将该漏洞的严重程度评为了“中”,并且也是如此向合作伙伴报告的。但是,根据我们在 2015 年 6 月发布的新准则,该漏洞的严重程度属于“高”。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-3834 ANDROID-20222489 5.1 及更低版本

libstagefright OMXNodeInstance::emptyBuffer 中会发生缓冲区溢出

在系统处理其他应用提供的数据时,libstagefright 中可能会发生缓冲区溢出,从而导致攻击者能够破坏内存,并且可能还能够通过 Mediaserver 进程执行代码。

由于攻击者可以利用该漏洞获取第三方应用无法获取的权限,因此我们将该漏洞的严重程度评为“高”。虽然 Mediaserver 受到 SELinux 的限制,但它确实可以访问音频和视频流以及许多设备上的特权内核驱动程序设备节点(第三方应用通常无法访问这些节点)。

请注意,根据之前的严重程度评定准则,我们过去将该漏洞的严重程度评为了“中”,并且也是如此向合作伙伴报告的。但是,根据我们在 2015 年 6 月发布的新准则,该漏洞的严重程度属于“高”。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-3835 ANDROID-20634516 [2] 5.1 及更低版本

Mediaserver AudioPolicyManager::getInputForAttr() 中会发生堆溢出

Mediaserver 的音频政策服务中会发生堆溢出,从而导致本地应用能够通过 Mediaserver 进程执行任意代码。

受影响的功能是某个应用 API。我们不认为攻击者能够远程利用该漏洞。

由于攻击者可以利用该漏洞在本地应用中通过特权 Mediaserver 服务执行代码,因此我们将该漏洞的严重程度评为“高”。虽然 Mediaserver 受到 SELinux 的限制,但它确实可以访问音频和视频流以及许多设备上的特权内核驱动程序设备节点(第三方应用通常无法访问这些节点)。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-3842 ANDROID-21953516 5.1 及更低版本

应用可拦截或模拟向 Telephony 发出的 SIM 命令

SIM 工具包 (STK) 框架中有一个漏洞,应用可以利用该漏洞拦截或模拟向 Android 的 Telephony 子系统发出的某些 STK SIM 命令。

由于非特权应用可以利用该漏洞访问通常受“签名”或“系统”级别的权限保护的功能或数据,因此我们将该漏洞的严重程度评为“高”。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-3843 ANDROID-21697171 [234] 5.1 及更低版本

位图数据编出过程中会出现漏洞

Bitmap_createFromParcel() 中会发生整数溢出,从而导致应用能够使 system_server 进程崩溃,或从 system_server 读取内存数据。

由于攻击者可以利用该漏洞使 system_server 进程中的敏感数据泄露给非特权本地进程,因此我们将该漏洞的严重程度评为“中”。 虽然此类漏洞的严重程度通常被评为“高”,但由于发起攻击的进程无法控制成功攻击后导致泄露的数据,因此我们将该漏洞评为了较低的严重程度;攻击失败的后果是相应设备暂时无法使用(需要重新启动)。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-1536 ANDROID-19666945 5.1 及更低版本

AppWidgetServiceImpl 可以利用系统权限创建 IntentSender

“设置”应用的 AppWidgetServiceImpl 中有一个漏洞,应用可以利用该漏洞通过指定 FLAG_GRANT_READ/WRITE_URI_PERMISSION 为其自身授予 URI 权限。例如,攻击者可以利用该漏洞在未获得 READ_CONTACTS 权限的情况下读取联系人数据。

由于本地应用可以利用该漏洞访问通常受“危险”保护级别的权限保护的数据,因此我们将该漏洞的严重程度评为“中”。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-1541 ANDROID-19618745 5.1

规避 getRecentTasks() 限制

本地应用可准确确定前台应用,并规避 Android 5.0 中引入的 getRecentTasks() 限制。

由于本地应用可以利用该漏洞访问通常受“危险”保护级别的权限保护的数据,因此我们将该漏洞的严重程度评为“中”。

我们认为,此漏洞是首次在 Stack Overflow 上被公开讨论。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-3833 ANDROID-20034603 5.0 和 5.1

ActivityManagerService.getProcessRecordLocked() 可能会将系统 UID 应用加载到错误的进程中

ActivityManager 的 getProcessRecordLocked() 方法没有正确验证某个应用的进程名称是否与对应的应用包名称保持一致。在某些情况下,这可让 ActivityManager 针对某些任务加载错误的进程。

这意味着,应用可以阻止加载“设置”,或可以针对“设置”片段插入参数。我们不认为攻击者可以利用该漏洞以“system”用户的身份执行任意代码。

虽然该漏洞可让攻击者获取通常只有“system”用户才能获取的权能,我们可以据此将其严重程度评为“高”,但由于攻击者利用该漏洞获取的是有限级别的访问权限,因此我们将该漏洞的严重程度评为“中”。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-3844 ANDROID-21669445 5.1 及更低版本

在解析 3GPP 元数据时,libstagefright 中会发生无限缓冲区读取

如果在解析 3GPP 数据期间发生整数下溢,则可能会导致读取操作溢出缓冲区,从而导致 Mediaserver 崩溃。

我们最初将该漏洞的严重程度评为了“高”,并且也是如此向合作伙伴报告的。不过,经过进一步调查,我们发现该漏洞的影响仅限于导致 Mediaserver 崩溃,因此我们将该漏洞的严重程度降为了“低”。

CVE Bug(附 AOSP 链接) 严重程度 受影响的版本
CVE-2015-3826 ANDROID-20923261 5.0 和 5.1

修订版本

  • 2015 年 8 月 13 日:初次发布