Bug 1696636 (CVE-2019-10871) - CVE-2019-10871 poppler: heap-based buffer over-read in function PSOutputDev::checkPageSlice in PSOutputDev.cc
Summary: CVE-2019-10871 poppler: heap-based buffer over-read in function PSOutputDev::...
Keywords:
Status: CLOSED ERRATA
Alias: CVE-2019-10871
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 1696640 1697575 1697576 1741145
Blocks: 1696639
TreeView+ depends on / blocked
 
Reported: 2019-04-05 10:30 UTC by Dhananjay Arunesh
Modified: 2020-03-31 19:21 UTC (History)
10 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-09-12 12:45:46 UTC
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2019:2713 0 None None None 2019-09-11 09:33:28 UTC
Red Hat Product Errata RHSA-2020:1074 0 None None None 2020-03-31 19:21:15 UTC

Description Dhananjay Arunesh 2019-04-05 10:30:29 UTC
An issue was discovered in Poppler 0.74.0. There is a heap-based buffer over-read in the function PSOutputDev::checkPageSlice at PSOutputDev.cc.

Reference:
https://gitlab.freedesktop.org/poppler/poppler/issues/751

Comment 1 Dhananjay Arunesh 2019-04-05 10:43:12 UTC
Created poppler tracking bugs for this issue:

Affects: fedora-all [bug 1696640]

Comment 2 Scott Gayou 2019-04-08 17:04:58 UTC
Easy to reproduce.

```
==12415== Memcheck, a memory error detector
==12415== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==12415== Using Valgrind-3.14.0 and LibVEX; rerun with -h for copyright info
==12415== Command: pdftops -level1sep poc /dev/null
==12415== 
==12415== Invalid read of size 1
==12415==    at 0x4FAD6F8: PSOutputDev::checkPageSlice(Page*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A296: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A569: Page::display(OutputDev*, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F91A0C: PDFDoc::displayPages(OutputDev*, int, int, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x402130: ??? (in /usr/bin/pdftops)
==12415==    by 0x6D96504: (below main) (in /usr/lib64/libc-2.17.so)
==12415==  Address 0x7d79e00 is 0 bytes after a block of size 519,168 alloc'd
==12415==    at 0x4C29E63: malloc (vg_replace_malloc.c:309)
==12415==    by 0x4FD1F81: gmallocn_checkoverflow (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4FF82BF: SplashBitmap::SplashBitmap(int, int, int, SplashColorMode, bool, bool, GooList*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4EF920D: SplashOutputDev::startPage(int, GfxState*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F4242E: Gfx::Gfx(PDFDoc*, OutputDev*, int, Dict*, double, double, PDFRectangle*, PDFRectangle*, int, bool (*)(void*), void*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A05D: Page::createGfx(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A360: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4FAD110: PSOutputDev::checkPageSlice(Page*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A296: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A569: Page::display(OutputDev*, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F91A0C: PDFDoc::displayPages(OutputDev*, int, int, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x402130: ??? (in /usr/bin/pdftops)
==12415== 
==12415== Invalid read of size 1
==12415==    at 0x4FAD6FC: PSOutputDev::checkPageSlice(Page*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A296: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A569: Page::display(OutputDev*, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F91A0C: PDFDoc::displayPages(OutputDev*, int, int, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x402130: ??? (in /usr/bin/pdftops)
==12415==    by 0x6D96504: (below main) (in /usr/lib64/libc-2.17.so)
==12415==  Address 0x7d79e01 is 1 bytes after a block of size 519,168 alloc'd
==12415==    at 0x4C29E63: malloc (vg_replace_malloc.c:309)
==12415==    by 0x4FD1F81: gmallocn_checkoverflow (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4FF82BF: SplashBitmap::SplashBitmap(int, int, int, SplashColorMode, bool, bool, GooList*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4EF920D: SplashOutputDev::startPage(int, GfxState*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F4242E: Gfx::Gfx(PDFDoc*, OutputDev*, int, Dict*, double, double, PDFRectangle*, PDFRectangle*, int, bool (*)(void*), void*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A05D: Page::createGfx(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A360: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4FAD110: PSOutputDev::checkPageSlice(Page*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A296: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A569: Page::display(OutputDev*, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F91A0C: PDFDoc::displayPages(OutputDev*, int, int, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x402130: ??? (in /usr/bin/pdftops)
==12415== 
==12415== Invalid read of size 1
==12415==    at 0x4FAD709: PSOutputDev::checkPageSlice(Page*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A296: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A569: Page::display(OutputDev*, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F91A0C: PDFDoc::displayPages(OutputDev*, int, int, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x402130: ??? (in /usr/bin/pdftops)
==12415==    by 0x6D96504: (below main) (in /usr/lib64/libc-2.17.so)
==12415==  Address 0x7d79e02 is 2 bytes after a block of size 519,168 alloc'd
==12415==    at 0x4C29E63: malloc (vg_replace_malloc.c:309)
==12415==    by 0x4FD1F81: gmallocn_checkoverflow (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4FF82BF: SplashBitmap::SplashBitmap(int, int, int, SplashColorMode, bool, bool, GooList*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4EF920D: SplashOutputDev::startPage(int, GfxState*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F4242E: Gfx::Gfx(PDFDoc*, OutputDev*, int, Dict*, double, double, PDFRectangle*, PDFRectangle*, int, bool (*)(void*), void*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A05D: Page::createGfx(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A360: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4FAD110: PSOutputDev::checkPageSlice(Page*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A296: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A569: Page::display(OutputDev*, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F91A0C: PDFDoc::displayPages(OutputDev*, int, int, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x402130: ??? (in /usr/bin/pdftops)
==12415== 
==12415== Invalid read of size 1
==12415==    at 0x4FADF2C: PSOutputDev::checkPageSlice(Page*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A296: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A569: Page::display(OutputDev*, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F91A0C: PDFDoc::displayPages(OutputDev*, int, int, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x402130: ??? (in /usr/bin/pdftops)
==12415==    by 0x6D96504: (below main) (in /usr/lib64/libc-2.17.so)
==12415==  Address 0x7d79e00 is 0 bytes after a block of size 519,168 alloc'd
==12415==    at 0x4C29E63: malloc (vg_replace_malloc.c:309)
==12415==    by 0x4FD1F81: gmallocn_checkoverflow (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4FF82BF: SplashBitmap::SplashBitmap(int, int, int, SplashColorMode, bool, bool, GooList*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4EF920D: SplashOutputDev::startPage(int, GfxState*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F4242E: Gfx::Gfx(PDFDoc*, OutputDev*, int, Dict*, double, double, PDFRectangle*, PDFRectangle*, int, bool (*)(void*), void*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A05D: Page::createGfx(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A360: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4FAD110: PSOutputDev::checkPageSlice(Page*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A296: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A569: Page::display(OutputDev*, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F91A0C: PDFDoc::displayPages(OutputDev*, int, int, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x402130: ??? (in /usr/bin/pdftops)
==12415== 
==12415== Invalid read of size 1
==12415==    at 0x4FADF30: PSOutputDev::checkPageSlice(Page*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A296: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A569: Page::display(OutputDev*, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F91A0C: PDFDoc::displayPages(OutputDev*, int, int, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x402130: ??? (in /usr/bin/pdftops)
==12415==    by 0x6D96504: (below main) (in /usr/lib64/libc-2.17.so)
==12415==  Address 0x7d79e00 is 0 bytes after a block of size 519,168 alloc'd
==12415==    at 0x4C29E63: malloc (vg_replace_malloc.c:309)
==12415==    by 0x4FD1F81: gmallocn_checkoverflow (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4FF82BF: SplashBitmap::SplashBitmap(int, int, int, SplashColorMode, bool, bool, GooList*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4EF920D: SplashOutputDev::startPage(int, GfxState*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F4242E: Gfx::Gfx(PDFDoc*, OutputDev*, int, Dict*, double, double, PDFRectangle*, PDFRectangle*, int, bool (*)(void*), void*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A05D: Page::createGfx(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A360: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4FAD110: PSOutputDev::checkPageSlice(Page*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A296: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A569: Page::display(OutputDev*, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F91A0C: PDFDoc::displayPages(OutputDev*, int, int, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x402130: ??? (in /usr/bin/pdftops)
==12415== 
==12415== Invalid read of size 1
==12415==    at 0x4FADF57: PSOutputDev::checkPageSlice(Page*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A296: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A569: Page::display(OutputDev*, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F91A0C: PDFDoc::displayPages(OutputDev*, int, int, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x402130: ??? (in /usr/bin/pdftops)
==12415==    by 0x6D96504: (below main) (in /usr/lib64/libc-2.17.so)
==12415==  Address 0x7d79e00 is 0 bytes after a block of size 519,168 alloc'd
==12415==    at 0x4C29E63: malloc (vg_replace_malloc.c:309)
==12415==    by 0x4FD1F81: gmallocn_checkoverflow (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4FF82BF: SplashBitmap::SplashBitmap(int, int, int, SplashColorMode, bool, bool, GooList*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4EF920D: SplashOutputDev::startPage(int, GfxState*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F4242E: Gfx::Gfx(PDFDoc*, OutputDev*, int, Dict*, double, double, PDFRectangle*, PDFRectangle*, int, bool (*)(void*), void*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A05D: Page::createGfx(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, XRef*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A360: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4FAD110: PSOutputDev::checkPageSlice(Page*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A296: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F8A569: Page::display(OutputDev*, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x4F91A0C: PDFDoc::displayPages(OutputDev*, int, int, double, double, int, bool, bool, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.46.0.0)
==12415==    by 0x402130: ??? (in /usr/bin/pdftops)
==12415== 
==12415== 
==12415== HEAP SUMMARY:
==12415==     in use at exit: 12,861 bytes in 29 blocks
==12415==   total heap usage: 6,851 allocs, 6,822 frees, 1,684,429 bytes allocated
==12415== 
==12415== LEAK SUMMARY:
==12415==    definitely lost: 0 bytes in 0 blocks
==12415==    indirectly lost: 0 bytes in 0 blocks
==12415==      possibly lost: 0 bytes in 0 blocks
==12415==    still reachable: 12,861 bytes in 29 blocks
==12415==         suppressed: 0 bytes in 0 blocks
==12415== Rerun with --leak-check=full to see details of leaked memory
==12415== 
==12415== For counts of detected and suppressed errors, rerun with: -v
==12415== ERROR SUMMARY: 212 errors from 6 contexts (suppressed: 0 from 0)
```

checkPageSlice invalid read looks to match upstream "heap-buffer-overflow"

Comment 3 Scott Gayou 2019-04-08 17:10:33 UTC
For Red Hat Enterprise Linux 6:

```
Error: pdftops was built without CMYK support, level1sep needs it to work in this file
```

Played around with the CLI options a bit, unable to reproduce the invalid read via valgrind.

Hence, does not appear to be vulnerable.

Comment 7 errata-xmlrpc 2019-09-11 09:33:27 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 8

Via RHSA-2019:2713 https://access.redhat.com/errata/RHSA-2019:2713

Comment 8 Product Security DevOps Team 2019-09-12 12:45:46 UTC
This bug is now closed. Further updates for individual products will be reflected on the CVE page(s):

https://access.redhat.com/security/cve/cve-2019-10871

Comment 9 errata-xmlrpc 2020-03-31 19:21:13 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7

Via RHSA-2020:1074 https://access.redhat.com/errata/RHSA-2020:1074


Note You need to log in before you can comment on or make changes to this bug.