lib3ds "face_array_read()"内存破坏漏洞

漏洞起因
边界条件错误
危险等级

 
影响系统
lib3ds 1.3.0
 
不受影响系统
 
危害
远程攻击者可以利用漏洞使应用程序崩溃。
 
攻击所需条件
攻击者必须构建恶意3DS文件,诱使用户打开。
 
漏洞信息
lib3ds是一款用来处理AUTODESK公司3D STUDIO MAX动画文件的库。
lib3ds/mesh.c包含的"face_array_read()"函数存在数组索引错误,构建特殊的3DS文件,诱使用户打开,可触发内存破坏漏洞。
当导入3DS文件时,Google SketchUp从.3DS文件中从0x6F49F偏移处读取2字节字序列。这些字用于指针算术操作数来计算数据要拷贝的数组索引。但是应用程序没有检查计算的索引是否在目标数组的边界之内。通过在上述提到的偏移处所在字提供超大值,缺少正确的边界检查可导致写数据到数组限制边界之外,触发内存破坏。
 
测试方法
 
厂商解决方案
lib3ds  2.0 Release Candidate 1已经修复此漏洞,建议用户下载使用:
http://www.lib3ds.org/
 
漏洞提供者
Francisco Falcon, Core Security Technologies

发表评论?

0 条评论。

发表评论