Kritická chyba nahlásená v balíku NPM s miliónmi stiahnutí týždenne

Široko používaný balík NPM s názvom ‘Pac-Resolver’ pre programovací jazyk JavaScript bol opravený opravou veľmi závažnej zraniteľnosti spustenia vzdialeného kódu, ktorá by mohla byť zneužitá na spustenie škodlivého kódu v aplikáciách Node.js vždy, keď sú odoslané požiadavky HTTP.

Chyba, sledovaná ako CVE-2021-23406, má hodnotenie závažnosti 8.1 na systéme hodnotenia zraniteľnosti CVSS a ovplyvňuje predchádzajúce verzie Pac-Resolver 5.0.0.

Súbor PAC (Proxy Auto-Configuration) je funkcia JavaScriptu, ktorá určuje, či sa majú požiadavky webového prehliadača smerovať priamo do cieľa alebo posielať na webový proxy server pre daný názov hostiteľa. Súbory PAC predstavujú spôsob distribúcie pravidiel proxy v podnikových prostrediach.

„Tento balík sa používa na podporu súborov PAC v Pac-Proxy-Agent, ktorý sa zase používa v Proxy-Agent, ktorý sa potom všade používa ako štandardný balík na automatickú detekciu a konfiguráciu HTTP proxy v Node. .js,“ uviedol Tim Perry vo svojom príspevku zverejnenom koncom minulého mesiaca. “Je to veľmi populárne: Proxy-Agent sa používa všade od sady nástrojov CDK od AWS cez Mailgun SDK až po Firebase CLI.”

CVE-2021-23406 súvisí s tým, ako Pac-Proxy-Agent správne neumiestňuje súbory PAC do karantény, čo vedie k scenáru, v ktorom možno nedôveryhodný súbor PAC zneužiť na úplné vymanenie sa z karantény a spustenie ľubovoľného kódu na základnej prevádzke. systém. To si však vyžaduje, aby sa útočník buď zdržiaval v lokálnej sieti, mal schopnosť manipulovať s obsahom súboru PAC alebo ho spojil s druhou zraniteľnosťou na zmenu konfigurácie proxy.

“Toto je dobre známy útok proti modulu VM a funguje, pretože Node neizoluje kontext ‘sandboxu’ úplne, pretože sa v skutočnosti nesnaží poskytnúť serióznu izoláciu,” povedal Perry. “Oprava je jednoduchá: použite skutočný sandbox namiesto vstavaného modulu VM.”

Red Hat v nezávislom poradenstve uviedol, že zraniteľný balík sa dodáva s jeho produktom Advanced Cluster Management for Kubernetes, ale poznamenal, že „momentálne nevie o vektore, ktorý by spustil zraniteľnosť v postihnutom komponente, okrem toho je ovplyvnený komponent chránený používateľom. autentifikácia znižuje potenciálny dopad tejto zraniteľnosti.”