A PureScript telepítő npm-csomag függőségeiben rosszindulatú kód, amely a csomag telepítési kísérletekor jelentkezik . A rosszindulatú kód a függőségeken keresztül van beágyazva és . Érdekes, hogy az ilyen függőségekkel rendelkező csomagok karbantartását az eredeti szerző végzi, aki eddig karbantartotta ezt az npm-csomagot, de körülbelül egy hónapja a csomag más karbantartókhoz került.
A problémát az egyik új csomagkarbantartó fedezte fel, akinek a jogait az eredeti purescript npm-csomag szerzőjével folytatott sok vitát és kellemetlen beszélgetéseket követően adták át. Az új karbantartók a PureScript fordítónak feleltek, és ragaszkodtak ahhoz, hogy a telepítőt tartalmazó npm-csomagot ugyanazoknak a karbantartóknak kell kezelnie, nem külső személyeknek. Az npm-csomag szerzője sokáig nem volt hajlandó beleegyezni, de végül engedett, és átadta a hozzáférést a tárolóhoz. Közben néhány függőség még mindig az ő irányítása alatt maradt.
A múlt héten megjelent a PureScript 0.13.2 fordító kiadása,
és az új karbantartók elkészítették a megfelelő frissítést a telepítőt tartalmazó npm-csomaghoz, amelynek függőségeiben rosszindulatú kódot fedeztek fel. Az npm-csomag telepítőjének pozíciójából eltávolított szerző kijelentette, hogy fiókját ismeretlen támadók kompromittálták. Ennek ellenére a rosszindulatú kód jelenlegi formája csak a csomag telepítésének szabotázsával korlátozódott, amely az új karbantartók első verziója lett. A rosszindulatú tevékenységek abból álltak, hogy a «npm i -g purescript» parancs végrehajtásakor hibaüzenetet okozott anélkül, hogy kifejezetten kártékony tevékenységet végezne.
Két támadást fedeztek fel. Néhány órával az új npm-packet purescript hivatalos megjelenése után valaki új verziót hozott létre a load-from-cwd-or-npm 3.0.2 függőségből, amelynek változásai eredményeként a loadFromCwdOrNpm() hívás a szükséges telepítő bináris fájlok listája helyett egy folyamatot adott vissza, amely a bemeneti kéréseket tükrözte vissza kimeneti értékként.
Négy nappal azután, hogy a fejlesztők megérkeztek a hibák forrásának feltárására és előkészültek egy frissítés kiadására, amely kizárta a load-from-cwd-or-npm-t a függőségekből, a kiberbűnözők kiadtak egy másik frissítést a load-from-cwd-or-npm 3.0.4 verziójában, amelyből eltávolították a rosszindulatú kódot. Mindazonáltal szinte azonnal kiadták a rate-map 1.0.3 verziójának frissítését, amelyben olyan javítást vezettek be, amely blokkolja a callback-hívást a betöltéshez. Ezért mindkét esetben a load-from-cwd-or-npm és a rate-map új verzióiban végrehajtott változások nyilvánvaló szabotázs jellegűek voltak. Sőt, a rosszindulatú kódban volt egy ellenőrzés, amely a hibás műveleteket csak az új kísérők kiadásának telepítésekor aktiválta, és nem jelentkezett a régi verziók telepítésekor.
A fejlesztők megoldották a problémát egy frissítés kiadásával, amelyben eltávolították a problémás függőségeket. A múltbeli PureScript problémás verzió telepítése után a felhasználói rendszereken történő kompromittált kód megakadályozása érdekében ajánlott törölni a node_modules mappák és a package-lock.json fájlok tartalmát, majd a purescript 0.13.2 verzióját alsó határként beállítani.
Forrás: opennet.ru
