V závislostech na npm balíčku s instalátorem PureScript škodlivý kód, který se projevuje při pokusu o instalaci balíčku . Škodlivý kód je vestavěn prostřednictvím závislostí a . Je pozoruhodné, že správu balíčků s těmito závislostmi má na starosti původní autor npm balíčku s instalátorem PureScript, který se až do nedávna věnoval správě tohoto npm balíčku, ale před přibližně měsícem byl balíček předán jiným správcům.
Problém zjistil jeden z nových správců balíčku, kterému byla práva na správu předána po mnoha neshodách a nepříjemných diskuzích s původním autorem npm balíčku purescript. Noví správci odpovídají za kompilátor PureScript a trvali na tom, že NPM balíček s jeho instalátorem by měl spravovat stejný tým, a ne někdo jiný. Autor npm balíčku s instalátorem PureScript se dlouho nechtěl dohodnout, ale nakonec ustoupil a předal přístup k repozitáři. Některé závislosti však zůstaly pod jeho kontrolou.
Minulý týden byl vydán release kompilátoru PureScript 0.13.2 a
novými správci bylo připraveno odpovídající aktualizace npm balíčku s instalátorem, ve které byl ve závislostech identifikován škodlivý kód. Odvolaný autor npm balíčku s instalátorem PureScript uvedl, že jeho účet byl kompromitován neznámými útočníky. Nicméně, ve své současné podobě byly akce škodlivého kódu omezeny pouze na sabotáží instalace balíčku, což byla první verze od nových správců. Škodlivé akce spočívaly v cyklickém výstupu chybové hlášení při pokusu o instalaci balíčku příkazem „npm i -g purescript“ bez provedení zjevné škodlivé činnosti.
Byly odhaleny dva útoky. Pár hodin po oficiálním vydání nové verze npm balíčku purescript někdo vytvořil novou verzi závislosti load-from-cwd-or-npm 3.0.2, jejíž změny vedly k tomu, že volání loadFromCwdOrNpm() místo seznamu potřebných binárních souborů pro instalaci vracelo proud , který zrcadlí příchozí požadavky jako výstupní hodnoty.
Po čtyřech dnech, kdy se vývojáři zabývali zdrojem výpadků a chystali se vydat aktualizaci, aby odstranili load-from-cwd-or-npm z závislostí, byla útočníky vydána další aktualizace load-from-cwd-or-npm 3.0.4, ve které byl škodlivý kód odstraněn. Nicméně téměř okamžitě byla vydána aktualizace jiné závislosti rate-map 1.0.3, v níž bylo přidáno opravení blokující callbackovém volání pro načítání. Tedy v obou případech změny v nových verzích load-from-cwd-or-npm a rate-map měly charakter jasné diverze. Co víc, ve škodlivém kódu byla kontrola, která aktivovala závadná jednání pouze při instalaci vydání od nových správců a nijak se neprojevovala při instalaci starých verzí.
Vývojáři vyřešili problém vydáním aktualizace, v níž byly problematické závislosti odstraněny. Aby se vyloučilo usazení zkompromitovaného kódu v systémech uživatelů po pokusu o instalaci problematické verze PureScript, doporučuje se odstranit obsah adresářů node_modules a souborů package-lock.json, poté nastavit jako dolní mez verzi purescript 0.13.2.
Zdroj: opennet.ru
