From fea8852c681c26a785557353caea4a669dcc35be Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 2 Sep 2023 23:40:31 +0200 Subject: [PATCH] package/poppler: backport patch to fix CVE-2023-34872 Signed-off-by: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- ...em-open-Fix-crash-on-malformed-files.patch | 45 +++++++++++++++++++ package/poppler/poppler.mk | 2 + 2 files changed, 47 insertions(+) create mode 100644 package/poppler/0001-OutlineItem-open-Fix-crash-on-malformed-files.patch diff --git a/package/poppler/0001-OutlineItem-open-Fix-crash-on-malformed-files.patch b/package/poppler/0001-OutlineItem-open-Fix-crash-on-malformed-files.patch new file mode 100644 index 0000000000..478759e0cc --- /dev/null +++ b/package/poppler/0001-OutlineItem-open-Fix-crash-on-malformed-files.patch @@ -0,0 +1,45 @@ +From e5cc11e0b5b867f4705fd28ff1b981c1224be1cd Mon Sep 17 00:00:00 2001 +From: Albert Astals Cid +Date: Wed, 17 May 2023 22:42:05 +0200 +Subject: [PATCH] OutlineItem::open: Fix crash on malformed files + +Fixes #1399 + +Upstream: https://gitlab.freedesktop.org/poppler/poppler/-/commit/591235c8b6c65a2eee88991b9ae73490fd9afdfe +[Thomas: backported to fix CVE-2023-34872] +Signed-off-by: Thomas Petazzoni +--- + poppler/Outline.cc | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/poppler/Outline.cc b/poppler/Outline.cc +index cbb6cb49..4c68be99 100644 +--- a/poppler/Outline.cc ++++ b/poppler/Outline.cc +@@ -14,7 +14,7 @@ + // under GPL version 2 or later + // + // Copyright (C) 2005 Marco Pesenti Gritti +-// Copyright (C) 2008, 2016-2019, 2021 Albert Astals Cid ++// Copyright (C) 2008, 2016-2019, 2021, 2023 Albert Astals Cid + // Copyright (C) 2009 Nick Jones + // Copyright (C) 2016 Jason Crain + // Copyright (C) 2017 Adrian Johnson +@@ -483,8 +483,12 @@ void OutlineItem::open() + { + if (!kids) { + Object itemDict = xref->fetch(ref); +- const Object &firstRef = itemDict.dictLookupNF("First"); +- kids = readItemList(this, &firstRef, xref, doc); ++ if (itemDict.isDict()) { ++ const Object &firstRef = itemDict.dictLookupNF("First"); ++ kids = readItemList(this, &firstRef, xref, doc); ++ } else { ++ kids = new std::vector(); ++ } + } + } + +-- +2.41.0 + diff --git a/package/poppler/poppler.mk b/package/poppler/poppler.mk index 5524bfc420..4c6017a5f5 100644 --- a/package/poppler/poppler.mk +++ b/package/poppler/poppler.mk @@ -11,6 +11,8 @@ POPPLER_DEPENDENCIES = fontconfig host-pkgconf POPPLER_LICENSE = GPL-2.0+ POPPLER_LICENSE_FILES = COPYING POPPLER_CPE_ID_VENDOR = freedesktop +# 0001-OutlineItem-open-Fix-crash-on-malformed-files.patch +POPPLER_IGNORE_CVES += CVE-2023-34872 POPPLER_INSTALL_STAGING = YES POPPLER_CONF_OPTS = \