PoDoFo
cpe:2.3:a:podofo_project:podofo:*:*:*:*:*:*:*
- 1.1.0-dev (commit 053cf47)
A heap use-after-free vulnerability has been identified in the PoDoFo PDF library version 1.1.0-dev. This issue arises in the PDF Dictionary Parser component, specifically within the PdfTokenizer::DetermineDataType function of PdfTokenizer.cpp. The vulnerability can be triggered by malformed PDF files with certain dictionary structures, leading to memory corruption and program crashes. The vulnerability is caused by improper management of PdfName objects during parsing, where these objects are prematurely freed and then accessed again, creating a critical memory management flaw. Additionally, this vulnerability can be exploited through deep recursion, where excessively nested dictionary structures cause stack exhaustion that interacts with heap memory management, further complicating the vulnerability's impact.
Exploitation of this vulnerability leads to a heap use-after-free condition, where memory that has been freed is accessed again, causing memory corruption. This type of vulnerability can often be exploited to execute arbitrary code or cause a program to crash.
The vulnerability can be reproduced by compiling the PoDoFo library with AddressSanitizer enabled, and then using the 'podofoencrypt' tool to process a crafted PDF file that exploits the use-after-free condition. This file should contain specific XRef stream dictionary structures that trigger the vulnerability during parsing. After processing the file, the 'podofoencrypt' program will crash, demonstrating the use-after-free error.
Users are advised to update to the latest version of the PoDoFo library, where this vulnerability has been fixed. The patch is available in the official PoDoFo GitHub repository.
Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.