Description: infamous41md has reported some vulnerabilities in xpdf, which can be exploited by malicious people to cause a DoS (Denial of Service) and potentially to compromise a user's system.
1) A boundary error exists in the "DCTStream::readBaselineSOF()" function in "xpdf/Stream.cc" when copying data from a PDF file to a heap-based buffer. This can be exploited to cause a heap-based buffer overflow via a specially crafted PDF file with an overly large "numComps" value.
2) A boundary error exists in the "DCTStream::readProgressiveSOF()" function in "xpdf/Stream.cc" when copying data from a PDF file to a heap-based buffer. This can be exploited to cause a heap-based buffer overflow via a specially crafted PDF file with an overly large "numComps" value.
3) An error exists in the "StreamPredictor::StreamPredictor()" function in "xpdf/Stream.cc" when using the "numComps" value to calculate the memory size to be allocated by "gmalloc()". This can be exploited to cause "gmalloc()" to allocate less memory than required, which will lead to a heap-based buffer overflow when data is copied from the PDF file to the allocated memory.
4) An error exists in the "JPXStream::readCodestream()" function in "xpdf/JPXStream.cc" when using the "nXTiles" and "nYTiles" values from a PDF file to copy data from the file into allocated memory. This can be exploited to cause a heap-based buffer overflow via a specially crafted PDF file with overly large "nXTiles" and "nYTiles" values.
Successful exploitation of the vulnerabilities requires that the user is e.g. tricked into opening a malicious PDF file.
The vulnerabilities have been reported in version 3.01. Prior versions may also be affected.
If you have new information regarding this Secunia advisory or a product in our database, please send it to us using either our web form or email us at vuln@secunia.com.
Ideas, suggestions, and other feedback are most welcome.