diff options
| author | Yogita Urade <yogita.urade@windriver.com> | 2025-08-19 16:43:54 +0530 |
|---|---|---|
| committer | Anuj Mittal <anuj.mittal@intel.com> | 2025-09-12 08:15:11 +0800 |
| commit | c316f92599940a5e08f33361add407e1a402719c (patch) | |
| tree | 1761e63127c4a8c745fe18254b8945dc5195e8ec | |
| parent | b484df63613b515782bd8deece4ba6465c01b7d1 (diff) | |
| download | meta-openembedded-c316f92599940a5e08f33361add407e1a402719c.tar.gz | |
poppler: fix CVE-2025-50420
An issue in the pdfseparate utility of freedesktop poppler
v25.04.0 allows attackers to cause an infinite recursion via
supplying a crafted PDF file. This can lead to a Denial of
Service (DoS).
Reference:
https://nvd.nist.gov/vuln/detail/CVE-2025-50420
Upstream patch:
https://gitlab.freedesktop.org/poppler/poppler/-/commit/a7025904e3330dd6cf95f3664ef6fc77034cc5e1
Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
| -rw-r--r-- | meta-oe/recipes-support/poppler/poppler/CVE-2025-50420.patch | 38 | ||||
| -rw-r--r-- | meta-oe/recipes-support/poppler/poppler_23.04.0.bb | 1 |
2 files changed, 39 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/poppler/poppler/CVE-2025-50420.patch b/meta-oe/recipes-support/poppler/poppler/CVE-2025-50420.patch new file mode 100644 index 0000000000..a6396eeba2 --- /dev/null +++ b/meta-oe/recipes-support/poppler/poppler/CVE-2025-50420.patch | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | From a7025904e3330dd6cf95f3664ef6fc77034cc5e1 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Sune Vuorela <sune@vuorela.dk> | ||
| 3 | Date: Tue, 29 Jul 2025 14:14:00 +0200 | ||
| 4 | Subject: [PATCH] Fix crash in pdfseparate | ||
| 5 | |||
| 6 | Don't continue recursing in PDFDoc::mark* if things looks a bit weirder | ||
| 7 | than expected | ||
| 8 | |||
| 9 | CVE: CVE-2025-50420 | ||
| 10 | Upstream-Status: Backport [https://gitlab.freedesktop.org/poppler/poppler/-/commit/a7025904e3330dd6cf95f3664ef6fc77034cc5e1] | ||
| 11 | |||
| 12 | Signed-off-by: Yogita Urade <yogita.urade@windriver.com> | ||
| 13 | --- | ||
| 14 | poppler/PDFDoc.cc | 9 +++++++++ | ||
| 15 | 1 file changed, 9 insertions(+) | ||
| 16 | |||
| 17 | diff --git a/poppler/PDFDoc.cc b/poppler/PDFDoc.cc | ||
| 18 | index 872841c..a7c2e24 100644 | ||
| 19 | --- a/poppler/PDFDoc.cc | ||
| 20 | +++ b/poppler/PDFDoc.cc | ||
| 21 | @@ -1818,6 +1818,15 @@ bool PDFDoc::markAnnotations(Object *annotsObj, XRef *xRef, XRef *countRef, unsi | ||
| 22 | if (obj1.isDict()) { | ||
| 23 | Dict *dict = obj1.getDict(); | ||
| 24 | Object type = dict->lookup("Type"); | ||
| 25 | + if (type.isNull()) { | ||
| 26 | + Object subType = dict->lookup("SubType"); | ||
| 27 | + // Type is optional, subtype is required | ||
| 28 | + // If neither of them exists, something is probably | ||
| 29 | + // weird here, so let us just skip this entry | ||
| 30 | + if (subType.isNull()) { | ||
| 31 | + continue; | ||
| 32 | + } | ||
| 33 | + } | ||
| 34 | if (type.isName() && strcmp(type.getName(), "Annot") == 0) { | ||
| 35 | const Object &obj2 = dict->lookupNF("P"); | ||
| 36 | if (obj2.isRef()) { | ||
| 37 | -- | ||
| 38 | 2.40.0 | ||
diff --git a/meta-oe/recipes-support/poppler/poppler_23.04.0.bb b/meta-oe/recipes-support/poppler/poppler_23.04.0.bb index 81574177e0..7a6666936e 100644 --- a/meta-oe/recipes-support/poppler/poppler_23.04.0.bb +++ b/meta-oe/recipes-support/poppler/poppler_23.04.0.bb | |||
| @@ -18,6 +18,7 @@ SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.xz \ | |||
| 18 | file://CVE-2025-43903-0002.patch \ | 18 | file://CVE-2025-43903-0002.patch \ |
| 19 | file://CVE-2025-52886-0001.patch \ | 19 | file://CVE-2025-52886-0001.patch \ |
| 20 | file://CVE-2025-52886-0002.patch \ | 20 | file://CVE-2025-52886-0002.patch \ |
| 21 | file://CVE-2025-50420.patch \ | ||
| 21 | " | 22 | " |
| 22 | SRC_URI[sha256sum] = "b6d893dc7dcd4138b9e9df59a13c59695e50e80dc5c2cacee0674670693951a1" | 23 | SRC_URI[sha256sum] = "b6d893dc7dcd4138b9e9df59a13c59695e50e80dc5c2cacee0674670693951a1" |
| 23 | 24 | ||
