Na začátku srpna 2026 zasáhl ekosystém npm jeden z největších supply chain útoků v historii JavaScriptu. Útočník, který ovládl GitHub účet spravující populární balíčky keyv a cacheable, do nich vložil škodlivý kód a vydal desítky napadených verzí. Přes propojené závislosti se nákaza – pojmenovaná Shai-Hulud – rozšířila na více než 1 300 verzí napříč 434 balíčky s celkovým měsíčním počtem stažení přesahujícím 2 miliardy.
Jak útok probíhal
Útočník 4. srpna 2026 kolem 9:00 UTC nahrál škodlivý kód přímo do hlavní větve balíčku keyv a okamžitě vydal nové verze. Stejný správce vlastnil i další rozšířené utility jako cacheable (29 milionů stažení měsíčně), flat-cache (565 milionů) nebo file-entry-cache (557 milionů) – jediný kompromitovaný účet tak otevřel dveře do stovek projektů po celém světě. Škodlivé verze obsahovaly tzv. preinstall hook, který se spustí automaticky při instalaci balíčku ještě předtím, než se spustí samotná aplikace, a stáhne mnohem větší škodlivý payload.
Co malware skutečně dělá
Shai-Hulud je navržený jako červ – po nakažení jednoho vývojářského stroje se pokouší krást přístupové údaje (npm tokeny, GitHub klíče, cloudové credentials) a pomocí nich se automaticky šířit do dalších balíčků, ke kterým má nakažený vývojář přístup. Právě proto se za pár hodin rozšířil z jednoho zdrojového balíčku na stovky dalších – nejde o klasický jednorázový únik dat, ale o samošiřitelnou infekci celého dodavatelského řetězce.
Proč se to týká i vás, i když nejste vývojáři
Balíčky jako keyv nebo cacheable jsou tzv. „neviditelné“ závislosti – většina firem ani neví, že je jejich web nebo aplikace používá, protože je do projektu přitáhl jiný, přímo používaný balíček. Pokud váš web nebo e-shop staví na Node.js frameworcích, WordPress buildovacích nástrojích nebo jiných JavaScriptových projektech aktualizovaných v okně útoku, mohl být zasažený nepřímo – bez ohledu na to, jak pečlivě si hlídáte vlastní kód.
Jak se bránit
Doporučuje se okamžitě zkontrolovat, zda vaše projekty nepoužívají napadené verze keyv, cacheable, flat-cache nebo file-entry-cache, a případně je uzamknout na starší bezpečnou verzi nebo aktualizovat na opravenou. Firmy s vlastním vývojem by měly zrotovat npm tokeny a přístupové klíče, které mohly být v ohroženém období aktivní, a zkontrolovat CI/CD logy na neobvyklé odchozí připojení. U webů spravovaných externě je nejjednodušší cestou zeptat se svého dodavatele, jestli kontrolu už provedl.
Závěr
Útok Shai-Hulud znovu ukázal, že bezpečnost webu dnes nekončí u vlastního kódu – rozhoduje o ní i to, komu důvěřuje váš dodavatelský řetězec. Chcete mít jistotu, že vaše závislosti někdo pravidelně kontroluje? Ozvěte se nám, prověříme vaše projekty a nastavíme monitoring, který podobné útoky odhalí včas.