Biblioteka PoDoFo zawiera krytyczną podatność typu heap-based buffer overflow w funkcji PdfParser::ReadXRefSubsection, znajdującej się w pliku base/PdfParser.cpp. Podatność może zostać wykorzystana przez atakującego do wywołania niezdefiniowanych skutków, potencjalnie obejmujących przejęcie kontroli nad procesem.
▸ Pokaż oryginał (EN)
Heap-based buffer overflow in the PdfParser::ReadXRefSubsection function in base/PdfParser.cpp in PoDoFo allows attackers to have unspecified impact via vectors related to m_offsets.size.
Błąd wynika z nieprawidłowej obsługi pola m_offsets.size podczas parsowania sekcji tabeli referencji krzyżowych (XRef) w plikach PDF. Niewystarczająca walidacja rozmiaru powoduje przepełnienie bufora na stercie (heap), co umożliwia zapis danych poza przeznaczonym obszarem pamięci. Podatność może być wywołana przez dostarczenie spreparowanego pliku PDF do aplikacji korzystającej z biblioteki PoDoFo.
Atakujący może doprowadzić do uszkodzenia pamięci procesu, co w zależności od kontekstu może skutkować wykonaniem dowolnego kodu (RCE), eskalacją uprawnień lub awarią aplikacji (denial of service).
Należy zastosować poprawkę dostępną w repozytorium PoDoFo (commit/rewizja 1672 na SourceForge). Zaleca się aktualizację biblioteki do wersji zawierającej tę poprawkę. Dodatkowo warto ograniczyć przetwarzanie plików PDF z niezaufanych źródeł.
Biblioteka PoDoFo projektu Podofo Project — wersje wskazane w referencjach producenta (poprawka dostępna w rewizji kodu nr 1672 na SourceForge).
Podatność została ujawniona publicznie na liście oss-security w dniach 1–2 lutego 2017 roku, natomiast oficjalny wpis CVE został opublikowany 16 marca 2017 roku.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HPodofo Project Podofo
APPPodofo Projectwszystkie wersje
Powiązane podatności
PoDoFo 0.9.6 — heap-based buffer overflow w konwersji UTF-16 do UTF-8
Heap-based buffer overflow w PoDoFo — funkcja PdfParser::ReadObjects
A heap-use-after free in the PdfTokenizer::ReadDictionary function of podofo v0.10.0 to v0.10.5 allows attacke...
Podofo v0.10.0 was discovered to contain a heap-use-after-free via the component PoDoFo::PdfEncrypt::IsMetadat...
Podofo v0.10.0 was discovered to contain a heap buffer overflow via the component PoDoFo::PdfEncryptAESV3::Pdf...