安全研究
安全漏洞
FLAC库多个溢出漏洞
发布日期:2007-10-11
更新日期:2007-11-15
受影响系统:
Josh Coalson FLAC 1.2不受影响系统:
Josh Coalson FLAC 1.2.1描述:
BUGTRAQ ID: 26042
CVE(CAN) ID: CVE-2007-4619
免费无损音频压缩(FLAC)是用于压缩音频数据的流行文件格式。
多个厂商播放器所使用的libFLAC库中都存在缓冲器溢出漏洞,攻击者可能利用此漏洞通过诱使用户处理恶意文件控制用户系统。
#1 元数据块大小堆溢出
当使用FLAC库的有漏洞软件打开或处理畸形FLAC文件时,会使用大小字段引用指针分配内存(malloc)并将文件内容写入到这些内存缓冲区。如果将该值设置为很大(如0xFFFFFFFF)的话,就会触发堆溢出。
#2 VORBIS标注字符串大小字段堆溢出
如果将VORBIS标注字符串大小字段设置为很大值(如0xFFFFFFF)的话,在解析该值时就会触发堆溢出。
#3 VORBIS标注字符串大小长度栈溢出
使用FLAC库的应用程序在处理VORBIS标注元数据块中的数据时使用了预先确定的缓冲区大小,如果在超大的VORBIS标注数据字符串大小值中注入了超长的VORBIS标注数据字符串的话(如0x000061A8后跟随25,050个A),就会触发栈溢出。
#4 图片MIME类型大小堆溢出
图片元数据块允许在FLAC文件中为嵌入式相册封面注入MIME类型。当支持FLAC相册封面的应用程序试图处理超长的MIME类型大小字段时,就可能触发堆溢出。
#5 图片MIME类型栈溢出
如果对图片MIME类型设置了大约5000字节的大小值(具体取决于有漏洞的应用程序)和很大的字符串值,就可以触发栈溢出。
#6 图片维度大小堆溢出
攻击者可以通过修改图片元数据块的宽度和高度值触发堆溢出。当支持FLAC图形的应用程序试图渲染超大图形时,应用程序会根据维度字段分配内存,这可能导致用任意值覆盖内存值和指针。
#7 图片描述大小堆溢出
如果应用程序支持图片元数据块的话,超大的描述大小值(如0xFFFFFFFF)可能导致堆内存破坏并执行任意代码。
#8 图片描述长度栈溢出
这个漏洞类似于VORBIS标注字符串长度栈溢出漏洞,输入了超大的描述大小值和描述字符串值就可以触发栈溢出。
#9 图片数据长度堆溢出
远程攻击者可以通过将图片数据长度字段设置为超大的值(如0xFFFFFFFF)触发堆溢出。当支持图片元数据块的应用程序处理相册封面图形时,会使用这个字段确定嵌入图形文件的字节数,但没有执行边界检查便分配了内存,导致用FLAC文件中的任意值覆盖内存和指针。
#10 图片URL栈溢出
如果FLAC文件的MIME类型设置为“-->”,这个标记就表示Data的值不是图形文件的内容,而是图形文件所在的URL。如果将这个值设置为很大的字符串值的话,就会在支持FLAC图形的应用程序中触发栈溢出。
#11 畸形图形/文件下载漏洞
如果应用程序在下载文件之前没有确认文件类型的话,使用“-->”MIME类型标记可能导致下载任意文件。结合GDI+或其他图片渲染漏洞,这还可能导致代码执行。
#12 填充长度堆溢出
如果将填充长度字段值设置为很大值(如0xFFFFFFFF)的话,畸形的FLAC文件就会导致堆溢出。
#13 查询表越界双重释放
如果在畸形FLAC文件中对查询表值设置了无效的数据指针的话,就会触发双重释放的情况。此外所释放指针的位置可由FLAC文件中的任意值控制,这可能导致执行任意代码。
#14 畸形查询表双重释放
将多个查询表数据偏移设置为很大的值(如0x41414141)然后将查询表点(Seektable Point)设置为相互引用的话,就可能导致多个双重释放的情况。
<*来源:Sean de Regge (seanderegge@hotmail.com)
链接:http://flac.sourceforge.net/changelog.html#flac_1_2_1
http://secunia.com/advisories/27210/
http://secunia.com/advisories/27878/
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=608
http://security.gentoo.org/glsa/glsa-200711-15.xml
http://research.eeye.com/html/advisories/published/AD20071115.html
*>
建议:
临时解决方法:
* 从播放器中卸载FLAC插件。
厂商补丁:
Gentoo
------
Gentoo已经为此发布了一个安全公告(GLSA-200711-15)以及相应补丁:
GLSA-200711-15:FLAC: Buffer overflow
链接:http://security.gentoo.org/glsa/glsa-200711-15.xml
所有FLAC用户都应升级到最新版本:
# emerge --sync
# emerge --ask --oneshot --verbose ">=media-libs/flac-1.2.1-r1"
还应运行revdep-rebuild重新编译所有依赖于旧版FLAC的软件包:
# revdep-rebuild --library=libFLAC.*
Josh Coalson
------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://downloads.sourceforge.net/flac/flac-1.2.1.tar.gz?modtime=1189961849&big_mirror=0
浏览次数:2749
严重程度:0(网友投票)
绿盟科技给您安全的保障
