{"id":"CVE-2021-36978","details":"QPDF 9.x through 9.1.1 and 10.x through 10.0.4 has a heap-based buffer overflow in Pl_ASCII85Decoder::write (called from Pl_AES_PDF::flush and Pl_AES_PDF::finish) when a certain downstream write fails.","modified":"2026-07-09T05:44:42.572410Z","published":"2021-07-20T07:15:08.030Z","related":["SUSE-SU-2022:2669-1","SUSE-SU-2022:2670-1","SUSE-SU-2022:3248-1"],"references":[{"type":"WEB","url":"https://lists.debian.org/debian-lts-announce/2023/08/msg00037.html"},{"type":"ADVISORY","url":"https://github.com/google/oss-fuzz-vulns/blob/main/vulns/qpdf/OSV-2020-2245.yaml"},{"type":"ADVISORY","url":"https://security.gentoo.org/glsa/202401-20"},{"type":"REPORT","url":"https://github.com/qpdf/qpdf/issues/492"},{"type":"FIX","url":"https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28262"},{"type":"FIX","url":"https://github.com/qpdf/qpdf/commit/dc92574c10f3e2516ec6445b88c5d584f40df4e5"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/qpdf/qpdf","events":[{"introduced":"5462dfce3106ffcc9b866902773933adeb7a4d41"},{"last_affected":"52a2e95dd5ab2c2a197aa0a564a4e09c551e8309"},{"introduced":"892937cbbeeef612da9e8b8a4b5ba145fc1e6caa"},{"last_affected":"78b9d6bfd4cbd3e947b1c5ffe73eb97b040e312a"},{"fixed":"dc92574c10f3e2516ec6445b88c5d584f40df4e5"}],"database_specific":{"cpe":"cpe:2.3:a:qpdf_project:qpdf:*:*:*:*:*:*:*:*","extracted_events":[{"introduced":"9.0.0"},{"last_affected":"9.1.1"},{"introduced":"10.0.0"},{"last_affected":"10.0.4"}],"source":["CPE_RANGE","REFERENCES"]}}],"versions":["release-qpdf-10.0.4","release-qpdf-10.0.3","release-qpdf-10.0.2","release-qpdf-10.0.1","release-qpdf-10.0.0","release-qpdf-9.1.1","release-qpdf-9.1.0","release-qpdf-9.1.rc1","release-qpdf-9.0.2","release-qpdf-9.0.1","release-qpdf-9.0.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-36978.json","vanir_signatures_modified":"2026-07-09T05:44:42Z","vanir_signatures":[{"signature_version":"v1","source":"https://github.com/qpdf/qpdf/commit/dc92574c10f3e2516ec6445b88c5d584f40df4e5","target":{"function":"Pl_ASCII85Decoder::flush","file":"libqpdf/Pl_ASCII85Decoder.cc"},"deprecated":false,"digest":{"length":601,"function_hash":"144956906454211698411691442384169583080"},"id":"CVE-2021-36978-346f02bf","signature_type":"Function"},{"source":"https://github.com/qpdf/qpdf/commit/dc92574c10f3e2516ec6445b88c5d584f40df4e5","target":{"file":"libqpdf/Pl_ASCIIHexDecoder.cc"},"deprecated":false,"digest":{"line_hashes":["13694993585028465781001319959825347373","310087498959386361797291823932404456576","49649446920326451269899972948266568550","13342412487834560302921158546766133040","35639778790983792980946705142459620813","40699785523547269874326470352434338009","120104397444494129316167492941951621002","33774880105769830406438680590666744443"],"threshold":0.9},"id":"CVE-2021-36978-40dda416","signature_type":"Line","signature_version":"v1"},{"signature_type":"Function","signature_version":"v1","source":"https://github.com/qpdf/qpdf/commit/dc92574c10f3e2516ec6445b88c5d584f40df4e5","target":{"file":"libqpdf/Pl_Count.cc","function":"Pl_Count::write"},"deprecated":false,"digest":{"function_hash":"187767804974098575998698531302435435782","length":227},"id":"CVE-2021-36978-63f64580"},{"target":{"function":"Pl_AES_PDF::flush","file":"libqpdf/Pl_AES_PDF.cc"},"deprecated":false,"digest":{"function_hash":"9705939944941504444367821742668190477","length":1266},"id":"CVE-2021-36978-9c33a036","signature_type":"Function","signature_version":"v1","source":"https://github.com/qpdf/qpdf/commit/dc92574c10f3e2516ec6445b88c5d584f40df4e5"},{"target":{"file":"libqpdf/Pl_ASCII85Decoder.cc"},"deprecated":false,"digest":{"line_hashes":["321687402356745505709807097041181169873","195795008906658110627770024484001465071","243075336715669782149423546345526685975","73538397886346705444978026317791772716","240297237944962101967649497148396010055","327952393685159224342343458199478375702"],"threshold":0.9},"id":"CVE-2021-36978-b6d83928","signature_type":"Line","signature_version":"v1","source":"https://github.com/qpdf/qpdf/commit/dc92574c10f3e2516ec6445b88c5d584f40df4e5"},{"deprecated":false,"digest":{"threshold":0.9,"line_hashes":["259576175114283761549609434847224880008","8363428569006197602946321268027361157","213213413482566284995313261346255273241","39686366821373870085308297589176283198","16063276423364534148040834083823740815"]},"id":"CVE-2021-36978-c34a9232","signature_type":"Line","signature_version":"v1","source":"https://github.com/qpdf/qpdf/commit/dc92574c10f3e2516ec6445b88c5d584f40df4e5","target":{"file":"libqpdf/Pl_Count.cc"}},{"digest":{"line_hashes":["297677908884695691230243607557058068057","87327623640626139513340691484857922771","168551980213957308120344626598273265683"],"threshold":0.9},"id":"CVE-2021-36978-e3ce2fb2","signature_type":"Line","signature_version":"v1","source":"https://github.com/qpdf/qpdf/commit/dc92574c10f3e2516ec6445b88c5d584f40df4e5","target":{"file":"libqpdf/Pl_AES_PDF.cc"},"deprecated":false},{"digest":{"function_hash":"154758842905624294376623863600796136195","length":666},"id":"CVE-2021-36978-e8733a89","signature_type":"Function","signature_version":"v1","source":"https://github.com/qpdf/qpdf/commit/dc92574c10f3e2516ec6445b88c5d584f40df4e5","target":{"file":"libqpdf/Pl_ASCIIHexDecoder.cc","function":"Pl_ASCIIHexDecoder::flush"},"deprecated":false}]}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"}]}