<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>