Kritická zranitelnost v protobuf.js ohrožuje tisíce služeb na Google Cloud a Firebase
Populární JavaScriptová knihovna protobuf.js, používaná pro práci s formátem Protocol Buffers, obsahuje kritickou zranitelnost umožňující útočníkům spouštět libovolný kód na serveru. Problém se dotýká milionů služeb, zejména těch běžících na Google Cloud a Firebase.
Jak útok funguje
Zranitelnost souvisí s mechanismem zpracování souborů schémat protobuf. Knihovna generuje JavaScriptový kód na základě popisu dat a spouští jej pomocí obdoby eval. Pokud se do názvu typu nebo pole schématu vloží škodlivý kód, bude spuštěn bez kontroly.
Útok nevyžaduje složité akce: stačí, aby aplikace načetla podvržený soubor schématu z externího zdroje. Taková schémata se často získávají od partnerských služeb, ze sdílených repozitářů nebo prostřednictvím gRPC sebepopisu. Po načtení jediná běžná zpráva aktivuje škodlivý kód.
Rozsah hrozby
- 52 milionů stažení týdně – tolikrát se stahuje protobuf.js.
- Knihovna je často skrytou závislostí, takže skutečný počet zranitelných projektů může být vyšší.
- Zasaženy jsou verze do 8.0.0 a 7.5.4 včetně.
- Zranitelnost získala identifikátor GHSA-xq3m-2v4x-88gg a skóre 9,4 bodu podle CVSS.
Co je důležité
- Zranitelnost umožňuje spustit kód na serveru bez autentizace.
- Útok je možný, pokud aplikace načítá schémata z externích zdrojů.
- Opravy byly vydány ve verzích 8.0.1 a 7.5.5.
- Zatím nebyly zaznamenány veřejné útoky, ale zneužití je technicky jednoduché.
- Obzvláště zranitelné jsou služby na Google Cloud, Firebase a ty, které používají gRPC.
Důsledky pro podnikání
Pokud útočník zkompromituje jeden zdroj schémat, může:
- Získat přístup k tokenům a datům uživatelů.
- Proniknout do interních služeb.
- Ukrást důvěrné informace.
Vzhledem k popularitě protobuf.js může útok zasáhnout tisíce společností. Vývojáři musí neprodleně aktualizovat knihovnu a zkontrolovat všechny závislosti, zejména ty, které načítají schémata z externích zdrojů.
Doporučení
- Okamžitě aktualizujte protobuf.js na verzi 8.0.1 nebo 7.5.5.
- Zkontrolujte všechny projekty na přítomnost skrytých závislostí na zranitelných verzích.
- Přehodnoťte místa, kde aplikace načítá soubory schémat z externích zdrojů.
- Zvažte možnost validace schémat před načtením.
- Používejte mechanismy kontroly integrity pro načítané soubory.
— Editorial Team
Zatím žádné komentáře.