Chyba ve Firefoxu umožňuje spustit cizí kód

21. 5. 2024

Sdílet

PDF nůžky Autor: Depositphotos

Společnost Codean Labs objevila vážnou zranitelnost v prohlížečce PDF integrované ve Firefoxu. Chyba umožňuje útočníkovi spustit libovolný kód v jazyce JavaScript, jakmile je otevřen škodlivý soubor PDF. Chyba se vyskytuje v PDF.js, kterou používá Firefox, ale také dalších nástrojů, které tuto knihovnu volají třeba kvůli náhledům.

Správně připravené PDF je schopno zneužít komplikované podpory fontů k injektáži a spuštění vlastního JavaScriptu. Objevitelé chyby připravili jednoduché PDF demonstrující tuto zranitelnost. V závislosti na aplikaci to může vést k úniku dat, provádění škodlivých akcí jménem oběti nebo dokonce k úplnému převzetí účtu. Pokud je chyba zneužita v aplikaci běžící v Electronu bez řádně sandboxovaného JavaScriptu, je možné spustit nativní kód.

PDF.js má omezená privilegia díky tomu, že se spouští pod vlastním zdrojem resource://pdf.js. Tím zafunguje Same-origin policy a kód prováděný v rámci této oblasti pak nemá například přístup k místním souborům. V jiných ohledech je ovšem o něco privilegovanější a například je možné v něm vyvolat stahování souborů (prostřednictvím dialogového okna), a dokonce i „stahovat“ libovolné adresy začínající na file://. Navíc je skutečná cesta k otevřenému souboru PDF uložena v window.PDFViewerApplication.url, což útočníkovi umožňuje špehovat lidi otevírající soubor PDF a zjistit nejen to, kdy soubor otevřeli a co s ním dělají, ale také to, kde se soubor v jejich počítači nachází.

Chyba je opravena ve Firefoxu 126 a v PDF.js verze 4.2.67. Některé další knihovny také vydávají své opravy, protože obsahují integrovaný prohlížeč PDF. To se týká například react-pdf, ale i dalších podobných projektů. Je možné také ručně upravit PDF.js a změnit hodnotu isEvalSupported na false. Pokud používáte přísné nastavení content-security policy (CSP) a zakážete eval a konstruktor Function, není možné zranitelnost zneužít.

Našli jste v článku chybu?

Autor aktuality