Biblioteka HTML::Gumbo dla Perla w wersjach przed 0.19 ujawnia zawartość pamięci sterty (heap) wskutek błędu type confusion przy przetwarzaniu elementu HTML <template>. Podatność umożliwia atakującemu uzyskanie fragmentów wrażliwych danych z pamięci procesu.
▸ Pokaż oryginał (EN)
HTML::Gumbo versions before 0.19 for Perl disclose heap memory via type confusion. Support for the <template> element was added to libgumbo 0.10.0 in 2015, but the walk_tree function in lib/HTML/Gumbo.xs was not updated to support it. The element was treated as a text-node, where strlen() over-reads the heap block that the pointer addresses. Any caller that runs parse() with the default format => 'string', or with format => 'tree', on input containing a <template> element serializes the over-read bytes into the returned result, disclosing bounded heap contents. format => 'callback' reaches a croak on the unhandled node type and is unaffected.
Element <template> został dodany do libgumbo 0.10.0 w 2015 roku, jednak funkcja walk_tree w pliku lib/HTML/Gumbo.xs nie została zaktualizowana o jego obsługę. Element jest błędnie traktowany jako węzeł tekstowy (type confusion, CWE-843), co powoduje wywołanie strlen() na wskaźniku adresującym blok sterty przeznaczony dla innego typu danych. Skutkuje to odczytem poza granicami bufora (out-of-bounds read, CWE-125). Każdy wywołujący, który korzysta z parse() z domyślnym format => 'string' lub z format => 'tree' na danych wejściowych zawierających element <template>, otrzymuje w wyniku zserializowane bajty odczytane poza granicami bloku, tym samym ujawniając ograniczoną porcję zawartości sterty. Tryb format => 'callback' nie jest podatny, ponieważ nieobsługiwany typ węzła powoduje wywołanie croak.
Atakujący może uzyskać fragmenty zawartości sterty procesu przetwarzającego dane HTML, co może prowadzić do ujawnienia wrażliwych informacji (np. kluczy, tokenów, danych użytkowników) przechowywanych w pamięci aplikacji.
Należy zaktualizować HTML::Gumbo do wersji 0.19 lub nowszej. Patch dostępny jest w repozytorium GitHub projektu (commit 15c0598909d4a64f47ef0a1abc5051f4e113c186) oraz w dystrybucji CPAN pod oznaczeniem HTML-Gumbo-0.19.
HTML::Gumbo dla Perla w wersjach przed 0.19
Podatność została zgłoszona w Debian Bug Tracker pod numerem #1104789 oraz ogłoszona na liście oss-security w dniu 2026-07-01. Tryb format => 'callback' nie jest podatny.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H