千家信息网

关于最近很火的安卓stagefright漏洞

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,自转标 题: 【讨论】【分享】关于最近很火的安卓stagefright漏洞作 者: minczsys时 间: 2015-07-29,12:41:42链 接http://bbs.pediy.com/sh
千家信息网最后更新 2026年10月31日关于最近很火的安卓stagefright漏洞

自转

标 题: 【讨论】【分享】关于最近很火的安卓stagefright漏洞
作 者: minczsys
时 间: 2015-07-29,12:41:42
链 接http://bbs.pediy.com/showthread.php?t=202868

新人貌似只能在这里发帖,
求转正
求漏洞的poc
求讨论出poc
本人菜鸟,求指正
这个漏洞被归属于
CVE-2015-1538
CVE-2015-1539
CVE-2015-3824
CVE-2015-3826
CVE-2015-3827
CVE-2015-3828
CVE-2015-3829
参考网站:
1.http://blog.zimperium.com/experts-found-a-unicorn-in-the-heart-of-android/(可能需要科学上网,发现这个漏洞的作者的blog)
2.https://threatpost.com/android-stagefright-flaws-put-950-million-devices-at-risk/113960(这个也是新闻报道)
3.http://www.freebuf.com/news/73411.html(这个是新闻报道)
4.http://www.freebuf.com/articles/terminal/73517.html (这个里面有一点信息)
伪详情:
出问题代码在media/libstagefright/MPEG4Extractor.cpp,media/libstagefright/SampleTable.cpp,
media/libstagefright/ESDS.cpp
其中修复最多的为MPEG4Extractor.cpp 共7处
SampleTable.cpp,4处
ESDS.cpp,3处
附件会提供这些文件及其相关的头文件(修复前和修复后),希望尽可能快的讨论出来一个利用方法,最好是在8月份之前。:)举其中一个例子,参考网站4里面有一些这些例子之外的其他例子,也可以使用diff工具进行对比。这次已知的漏洞一共三种类型,越界读取漏洞,整数下溢漏洞,整数溢出漏洞。其中SampleTable.cpp中修复了一个高危级别的整数溢出漏洞。
下面举一个,越界读取漏洞:MPEG4Extractor.cpp(这个漏洞的部分修复,不完全)
====我割====修复前====
status_t MPEG4Extractor::parse3GPPMetaData(off64_t offset, size_t size, int depth) {
/*注意考虑size*/
if (size < 4 ) {
return ERROR_MALFORMED;
}
/*注意*/
uint8_t *buffer = new (std::nothrow) uint8_t[size];
if (buffer == NULL) {
return ERROR_MALFORMED;
}
if (mDataSource->readAt(
offset, buffer, size) != (ssize_t)size) {
delete[] buffer;
buffer = NULL;

return ERROR_IO;
}
====再割====修复后====
status_t MPEG4Extractor::parse3GPPMetaData(off64_t offset, size_t size, int depth) {
/*注意*/
if (size < 4 || size == SIZE_MAX) {
return ERROR_MALFORMED;
}
/*注意*/
uint8_t *buffer = new (std::nothrow) uint8_t[size + 1];
if (buffer == NULL) {
return ERROR_MALFORMED;
}
if (mDataSource->readAt(
offset, buffer, size) != (ssize_t)size) {
delete[] buffer;
buffer = NULL;

return ERROR_IO;
}
====分析====个人理解,望不吝指教====
parse3GPPMetaData这个函数如果不是以NUL结尾的话,
if (buffer[size - 1] != '\0') {
char tmp[4];
sprintf(tmp, "%u", buffer[size - 1]);

mFileMetaData->setCString(kKeyCDTrackNumber, tmp);

setCString不知道哪里结束,就会发生越界读取。
========
详情见附件 说明.txt
附件:http://pan.baidu.com/share/link?shar...&uk=1460778035

漏洞 例子 整数 附件 文件 新闻 新闻报道 网站 详情 参考 安卓 不吝指教 个人 代码 作者 信息 函数 尽可能 工具 新人 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网 科技公司 互联网科技金融公司 奇酷互联网科技 礼当家互联网科技 科技创新互联网企业 天下捷融互联网科技 联恩商钥互联网科技有限公司 栖莱科技互联网股份有限公司 互联网科技创新服务 互联网科技革命什么开始 互联网科技产业特征 恒生互联网科技指数跳水 领航科技大厦互联网公司 信承诺互联网科技有限公司 萌小萌互联网科技河南有限公司 互联网科技平台产品运营 互联网科技创新创业项目 互联网企业和网络科技有限公司 高科技和互联网的现代国家 如何强化互联网金融科技 苏州找大状互联网科技有限公司 西安互联网科技公司 掌上梦互联网科技 深圳国际航运科技和互联网 黑科技闪耀互联网之光 互联网金融科技展 梅州GM互联网络科技有限公司 21世纪互联网科技成就 北京互联网科技类企业分布 互联网科技职业技能培训学校
0