标签:android stagefrigh media 内存泄漏 攻击
网络安全机构Zimperium最近发现一个Android有史以来最为严重的漏洞,该漏洞预计会影响95%的Android设备,攻击者可利用该漏洞远程操控手机的麦克风、窃取文件、查看邮件并获取个人证书等。Android 2.2到5.1的所有版本上均存在此漏洞。
该漏洞是由于Android StageFright缓冲以溢出造成。
示例如下:(Nexus 5, Android 5.1.1)
新发现的这一漏洞尤其具有危险性,因为它不像网络钓鱼等攻击手段,需要打开攻击者发送的文件或链接才会感染,哪怕受害者不做任何事情它也能偷偷地入侵设备并在用户发现前将证据抹掉。
Stagefright漏洞被分配在了下列CVE中:
CVE-2015-1538
CVE-2015-1539
CVE-2015-3824
CVE-2015-3826
CVE-2015-3827
CVE-2015-3828
CVE-2015-3829
虽然Zimperium项Google提交了漏洞补丁,但是用户短时间内无法收到补丁更新。
此外CyanogenMod从提交上可以看出,已经修复部分漏洞。
根据CM的提交更新可以看出是StageFright的MEPG4Extractor.cpp 中Parser部分处理Metadata时造成内存泄露引起的。
https://github.com/CyanogenMod/android_frameworks_av/commits/cm-12.0
主要函数:
parse3GPPMetaData
parseChunk
status_t MPEG4Extractor::parse3GPPMetaData(off64_t offset, size_t size, int depth) {
- if (size < 4) {
+ if (size < 4 || size == SIZE_MAX) {
return ERROR_MALFORMED;
}
- uint8_t *buffer = new (std::nothrow) uint8_t[size];
+ uint8_t *buffer = new (std::nothrow) uint8_t[size + 1];
+ if (size < 6) {
+ return ERROR_MALFORMED;
+ }
+
parseChunk:
+ if (SIZE_MAX - chunk_size <= size)
+ return ERROR_MALFORMED;
+
const int kSkipBytesOfDataBox = 16;
+ if (chunk_data_size <= kSkipBytesOfDataBox) {
+ return ERROR_MALFORMED;
+ }
+
mFileMetaData->setData(
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:android stagefrigh media 内存泄漏 攻击
原文地址:http://blog.csdn.net/matrix_laboratory/article/details/47149053