The JPXStream::init function in Poppler 0.78.0 and earlier doesn't check for negative values of stream length, leading to an Integer Overflow, thereby making it possible to allocate a large memory chunk on the heap, with a size controlled by an attacker, as demonstrated by pdftocairo. Upstream Information: https://gitlab.freedesktop.org/poppler/poppler/blob/master/NEWS
Created poppler tracking bugs for this issue: Affects: fedora-all [bug 1732342]
Upstream bug: https://gitlab.freedesktop.org/poppler/poppler/issues/805 Patch: https://gitlab.freedesktop.org/poppler/poppler/commit/68ef84e5968a4249c2162b839ca6d7975048a557 Reproducer available at: https://gitlab.freedesktop.org/poppler/poppler/uploads/3f22837ebd503f87e730b51221b89742/raiter_issue5465.pdf Analysis: This is an integer overflow in the JPX code, which leads to poppler allocating large chunks of memory on the heap. The size of the memory to be allocated can be controlled by the attacker by maliciously modifying the PDF file being parsed. The attacker can cause memory exhaustion or the application compiled against poppler library to crash.
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
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-9959
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