CVE:CVE-2007-6277
CNNVD:CNNVD-200712-072
免费无损音频压缩(FLAC)是用于压缩音频数据的流行文件格式。
多个厂商播放器所使用的libFLAC库中都存在缓冲器溢出漏洞，攻击者可能利用此漏洞通过诱使用户处理恶意文件控制用户系统。
元数据块大小堆溢出
当使用FLAC库的有漏洞软件打开或处理畸形FLAC文件时，会使用大小字段引用指针分配内存(malloc)并将文件内容写入到这些内存缓冲区。如果将该值设置为很大(如0xFFFFFFFF)的话，就会触发堆溢出。
VORBIS标注字符串大小字段堆溢出
如果将VORBIS标注字符串大小字段设置为很大值(如0xFFFFFFF)的话，在解析该值时就会触发堆溢出。 
VORBIS标注字符串大小长度栈溢出
使用FLAC库的应用程序在处理VORBIS标注元数据块中的数据时使用了预先确定的缓冲区大小，如果在超大的VORBIS标注数据字符串大小值中注入了超长的VORBIS标注数据字符串的话(如0x000061A8后跟随25,050个A)，就会触发栈溢出。 
图片MIME类型大小堆溢出
图片元数据块允许在FLAC文件中为嵌入式相册封面注入MIME类型。当支持FLAC相册封面的应用程序试图处理超长的MIME类型大小字段时，就可能触发堆溢出。
图片MIME类型栈溢出
如果对图片MIME类型设置了大约5000字节的大小值(具体取决于有漏洞的应用程序)和很大的字符串值，就可以触发栈溢出。 
图片维度大小堆溢出
攻击者可以通过修改图片元数据块的宽度和高度值触发堆溢出。当支持FLAC图形的应用程序试图渲染超大图形时，应用程序会根据维度字段分配内存，这可能导致用任意值覆盖内存值和指针。
#7 图片描述大小堆溢出
如果应用程序支持图片元数据块的话，超大的描述大小值(如0xFFFFFFFF)可能导致堆内存破坏并执行任意代码。 
图片描述长度栈溢出
这个漏洞类似于VORBIS标注字符串长度栈溢出漏洞，输入了超大的描述大小值和描述字符串值就可以触发栈溢出。 
图片数据长度堆溢出
远程攻击者可以通过将图片数据长度字段设置为超大的值(如0xFFFFFFFF)触发堆溢出。当支持图片元数据块的应用程序处理相册封面图形时，会使用这个字段确定嵌入图形文件的字节数，但没有执行边界检查便分配了内存，导致用FLAC文件中的任意值覆盖内存和指针。
图片URL栈溢出
如果FLAC文件的MIME类型设置为"-->"，这个标记就表示Data的值不是图形文件的内容，而是图形文件所在的URL。如果将这个值设置为很大的字符串值的话，就会在支持FLAC图形的应用程序中触发栈溢出。
 填充长度堆溢出
如果将填充长度字段值设置为很大值(如0xFFFFFFFF)的话，畸形的FLAC文件就会导致堆溢出。
solution:Upgrade flac libflac to a higher version than 1.2,and avoid the version (,1.2]