Biblioteka jsPDF przed wersją 4.2.1 jest podatna na atak XSS polegający na wstrzyknięciu dowolnego kodu HTML (w tym skryptów) do kontekstu przeglądarki, w której otwierany jest wygenerowany plik PDF. Podatność umożliwia atakującemu wykonanie złośliwych skryptów w przeglądarce ofiary.
▸ Pokaż oryginał (EN)
jsPDF is a library to generate PDFs in JavaScript. Prior to version 4.2.1, user control of the `options` argument of the `output` function allows attackers to inject arbitrary HTML (such as scripts) into the browser context the created PDF is opened in. The vulnerability can be exploited in the following scenario: the attacker provides values for the output options, for example via a web interface. These values are then passed unsanitized (automatically or semi-automatically) to the attack victim. The victim creates and opens a PDF with the attack vector using one of the vulnerable method overloads inside their browser. The attacker can thus inject scripts that run in the victims browser context and can extract or modify secrets from this context. The vulnerability has been fixed in jspdf@4.2.1. As a workaround, sanitize user input before passing it to the output method.
Atakujący kontroluje wartości argumentu `options` przekazywanego do funkcji `output()` biblioteki jsPDF — na przykład poprzez formularz lub inny interfejs webowy aplikacji. Wartości te są następnie przekazywane bez sanityzacji do ofiary, która generuje i otwiera plik PDF w przeglądarce korzystając z jednego z podatnych przeciążeń metody. Brak walidacji danych wejściowych pozwala na osadzenie w pliku PDF złośliwego kodu HTML lub JavaScript, który zostaje wykonany w kontekście przeglądarki ofiary.
Atakujący może wykonać dowolny kod JavaScript w przeglądarce ofiary, co umożliwia kradzież lub modyfikację poufnych danych (np. sesji, tokenów, danych formularzy) dostępnych w danym kontekście przeglądarkowym.
Należy zaktualizować bibliotekę jsPDF do wersji 4.2.1 lub nowszej. Jako obejście tymczasowe (workaround) — sanityzować dane wejściowe użytkownika przed przekazaniem ich do metody output().
Biblioteka jsPDF (Parallax) w wersjach poprzedzających 4.2.1
Podatność wymaga interakcji użytkownika (otworzenia pliku PDF w przeglądarce) oraz dostarczenia złośliwych danych wejściowych przez atakującego. Zakres podatności wykracza poza domenę źródłową (CVSS: Scope Changed), co podnosi jej ocenę do poziomu CRITICAL (9.6).
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:LParall Jspdf
APPParall< 4.2.1
Powiązane podatności
Path traversal w jsPDF (Node.js) umożliwia odczyt dowolnych plików
jsPDF is a library to generate PDFs in JavaScript. Prior to version 4.2.1, user control of arguments of the `c...
jsPDF is a library to generate PDFs in JavaScript. Prior to 4.2.0, user control of properties and methods of t...
jsPDF is a library to generate PDFs in JavaScript. Prior to 4.2.0, user control of the first argument of the `...
jsPDF is a library to generate PDFs in JavaScript. Prior to 4.2.0, user control of the argument of the `addJS`...