漏洞预警:JPEG 2000某漏洞可执行任意代码

2016-10-08 322627人围观 ,发现 9 个不明物体 漏洞

*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。

漏洞编号

CVE-2016-8332

TALOS-2016-0193

影响版本

OpenJpeg openjp2 2.1.1

漏洞描述

最近思科的Talos安全团队披露了JPEG 2000的一个零日漏洞,该漏洞可以执行任意代码。OpenJPEG是一个开源的JPEG 2000解码器,而这个编码器是由C语言所编写。JPEG 2000常被用于解码交流系统中的PDF文档,比如PdFium, Poppler和MuPDF这些软件。现在,黑客可以通过邮件传输带有恶意payload的PDF文件或者JPEG 2000格式的图像来感染目标系统。甚至,黑客可以将恶意文件传输到公网资源内,让受害者下载,比如google drive,drop box等等的。

漏洞细节

漏洞主要位于src/lib/openjp2/j2k.c文件中的opj_j2k_read_mcc_record函数。这个文件是负责解析MCC记录的。

1.png

如果一个MCC被解析,那么接下来一个l_mcc_recprd 数组就会寻找一个合适的index进行迭代。如果没有找到index,那么就会执行下面的代码。

2.png

在第一个if语句中,如果没有找到index,并且l_tcp-> m_nb_max_mcc_records中的记录为最大值(才开始的最大值为10),那么就会继续增加最大值,并且重新分配内存,以便容下更多的记录。

4.png

如果MCC的记录为0,那样就永远跳出不这个循环,会一直停留在一个index上,达到一个无效的越界读写记录。如下面这个Valgrind输出为例子。

3.png

漏洞流程

2016年7月26日 – 向厂商披露

2016年9月29日 – 向公众披露

*参考来源:securityaffairs,漏洞盒子安全团队发布,ArthurKiller编译,转载请注明来自FreeBuf(FreeBuf.COM)

更多精彩
相关推荐
发表评论

已有 9 条评论

取消
Loading...

特别推荐

推荐关注

活动预告

填写个人信息

姓名
电话
邮箱
公司
行业
职位
css.php