Hi

Here’s a patch for CVE-2018-20797.

The problem occurs in the PdfPredictorDecoder constructor which calls 
podofo_calloc to allocate a buffer based on values in the pDecodeParms 
dictionary, which are multiplied together to produce a buffer size passed to 
podofo_calloc

            m_nRows = (m_nColumns * m_nColors * m_nBPC) >> 3;

If any of these values are negative, then m_nRows is negative and turns into a 
large positive value when passed as unsigned size_t to podofo_calloc.

A related problem is caused when large positive values in pDecodeParms overflow 
when multiplied together so produce the wrong buffer size (e.g. if nColumns=1, 
m_nBPC=2 and m_nColors=SIZE_MAX/2+1).

This has been tested in production for a few months on Mac 64-bit / Windows 
32-bit.

Best Regards
Mark

Mark Rogers - mark.rog...@powermapper.com
PowerMapper Software Ltd - www.powermapper.com
Registered in Scotland No 362274 Quartermile 2 Edinburgh EH3 9GL

Attachment: patch-CVE-2018-20797.diff
Description: patch-CVE-2018-20797.diff

_______________________________________________
Podofo-users mailing list
Podofo-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/podofo-users

Reply via email to