From 701b518d5c56a1449825a3a37a716c58e05e1c3e Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Wed, 26 Jul 2017 05:03:38 -0400 Subject: Detect recursion loops resolving objects (fixes #51) During parsing of an object, sometimes parts of the object have to be resolved. An example is stream lengths. If such an object directly or indirectly points to the object being parsed, it can cause an infinite loop. Guard against all cases of re-entrant resolution of objects. --- ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index f39c52c3..649e5aac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2017-07-26 Jay Berkenbilt + * Detect infinite loops while resolving objects. This could happen + if something inside an object that had to be resolved during + parsing, such as a stream length, recursively referenced the + object being resolved. + * CVE-2017-9208: Handle references to and appearance of object 0 as a special case. Object 0 is not allowed, and qpdf was using it internally to represent direct objects. -- cgit v1.2.3-54-g00ecf