<div>Hello all,</div><div><br></div><div>Dhanesh K. and myself had performed a vulnerability assessment of the taglib library(<a href="http://developer.kde.org/~wheeler/taglib.html" target="_blank">http://developer.kde.org/~wheeler/taglib.html</a>). A few vulnerabilities that were found include :-</div>



<div><br></div><div>- Sanity checks are not performed for fields read from a media file, which are used to allocate memory later on. Causes DoS due to application crash at the very least, exploitability is unconfirmed.</div>



<div><br></div><div>An example :-</div><div>apeitem.cpp</div><div>  APE::Item::parse(const ByteVector &data)</div><div>    d->key = String(data.mid(8), String::UTF8);</div><div><br></div><div>- ogg/xiphcomment.cpp, Ogg::XiphComment::parse(const ByteVector &data)</div>



<div>    Control over "vendorLength" and can cause a string allocation with that size. Control over "commentFields" which is the number of times, "commentLength" is read and a string of size "commandLength" is allocated. Causes DoS due to application crash at the very least, exploitability is unconfirmed.</div>



<div><br></div><div>- ape/apeproperties.cpp, APE::Properties::analyzeCurrent()</div><div>    Specially crafted ape media files with sampleRate being "0" could lead to application crash, division by zero error.</div>



<div><br></div><div>    d->sampleRate = header.mid(20, 4).toUInt(false);</div><div>    d->length = totalBlocks / d->sampleRate;</div><div><br></div><div>- crafted ogg file with a 1 bit change(0=>1) at the offset 0x0000007f leads to an infinite loop in the thread processing the tags.</div>



<div><br></div><div>Regards,</div><div>Zubin Mithra</div>