id3lib ID3标签远程溢出漏洞

2007-12-22T00:00:00
ID SSV:2658
Type seebug
Reporter Root
Modified 2007-12-22T00:00:00

Description

BUGTRAQ ID: 26945

id3lib是用于处理音频文件中ID3标签的函数库。

id3lib库在处理畸形格式的数据时存在漏洞,远程攻击者可能利用此漏洞诱使用户处理恶意文件控制用户系统。

id3lib的extflags数组只有1个单元的大小,但extflagbytes可支持0到255个单元。因此,extflagbytes为0会导致崩溃,因为之后的指令会认为extflags[0]已初始化,使用较大的值就会溢出这个数组。

header_tag.cpp中代码如下:

void ID3_TagHeader::ParseExtended(ID3_Reader& reader) ... const int extflagbytes = reader.readChar(); //Number of flag bytes ID3_Flags* extflags[1]; // ID3V2_4_0 has 1 flag byte, extflagbytes should be equal to 1 for (i = 0; i < extflagbytes; ++i) { extflags[i] = new ID3_Flags; extflags[i]->set(reader.readChar()); //flags }

id3lib CVS id3lib


目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

<a href=http://www.id3lib.org/ target=_blank>http://www.id3lib.org/</a>

                                        
                                            
                                                http://aluigi.org/poc/id3libexec.zip