免费无损音频压缩(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)是用于压缩音频数据的流行文件格式。 多个厂商播放器所使用的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)设置为相互引用的话,就可能导致多个双重释放的情况。