Egy, a jsPDF könyvtárban nemrégiben javított kritikus súlyosságú sérülékenység lehetővé teheti a támadók számára, hogy érzékeny információkat olvassanak ki, többek között konfigurációs állományokat és hitelesítő adatokat – figyelmeztet az Endor Labs. A jsPDF egy rendkívül népszerű NPM csomag, amelyet hetente több mint 3,5 millió alkalommal töltenek le. A csomag JavaScript alkalmazásokban biztosít lehetőséget PDF dokumentumok előállítására.
A hiba a CVE-2025-68428 azonosítón nyomon követett (CVSS pontszáma 9,2) local file inclusion/path traversal probléma a könyvtár loadFile metódusában. A jsPDF a felhasználó által befolyásolható bemenetet fájlútvonalként kezeli, így a megadott fájlt beolvassa, majd annak tartalmát változatlan formában beilleszti a generált PDF kimenetbe.
A jsPDF karbantartói egy tanácsadói közleményben kiemelik: amennyiben a loadFile metódusnak szűretlen (nem szanitizált) útvonal kerül átadásra, a felhasználó tetszőleges fájlok tartalmát olvashatja ki abból a helyi fájlrendszerből, amelyhez a Node folyamat hozzáfér. Az így megszerzett tartalom egy az egyben kerül bele a létrehozott PDF-ekbe, vagyis nem történik semmilyen korlátozás vagy tisztítás.
Kiemelten veszélyes, hogy nemcsak a loadFile közvetlen használata jelenthet problémát: több olyan nyilvános metódus is létezik, amely belsőleg meghívja a loadFile-t és így potenciális támadási vektor lehet. Ilyenek például az addImage, a html, illetve az addFont funkciók, amelyek különösen kockázatosak lehetnek, ha a paramétereik részben vagy egészben felhasználói bemenetre támaszkodnak.
Fontos megjegyezni, hogy a sérülékenység csak a jsPDF Node.js buildjeit érinti; a böngészős környezetben futó verziók nem érintettek ebben a formában. A problémát a jsPDF 4.0.0 verziójában javították úgy, hogy alapértelmezetten korlátozták a fájlhozzáférést, ezzel megelőzve az ilyen jellegű visszaéléseket.
A sérülékenység megszüntetéséhez a felhasználóknak frissíteniük kell a jsPDF-et a 4.0.0-ás verzióra és emellett javasolt a Node.js permission flagjeinek beállítása is, hogy a futtatókörnyezet csak meghatározott fájlokhoz férhessen hozzá. Az Endor Labs ugyanakkor külön figyelmeztet: önmagában a frissítés nem elég, mert, ha valaki a frissített jsPDF mellett a Node.js környezetet továbbra is túl széles olvasási jogosultságokkal konfigurálja azért, hogy az alkalmazás változtatás nélkül működjön, akkor a rendszer továbbra is sérülékeny marad. Ezért a javítás részeként nemcsak a könyvtár frissítése, hanem a futtatási jogosultságok tényleges, minimálisra szűkítése is elengedhetetlen.
