W zależności od pakietu npm z instalatorem PureScript wykryto złośliwe zmiany

W zależności od pakietu npm z instalatorem PureScript wykryto złośliwy kod, który pojawia się podczas próby instalacji pakietu purescript. Złośliwy kod został wbudowany przez zależności load-from-cwd-or-npm i rate-map. Co ciekawe, opieką nad pakietami z tymi zależnościami zajmuje się pierwotny autor pakietu npm z instalatorem PureScript, który do niedawna zajmował się tym pakietem npm, ale około miesiąca temu pakiet przeszedł pod inną opiekę.

Problem został odkryty przez jednego z nowych głównych opiekunów pakietu, którym prawa do opieki zostały przekazane po wielu sporach i nieprzyjemnych dyskusjach z pierwotnym autorem pakietu npm purescript. Nowi główni opiekunowie odpowiadają za kompilator PureScript i nalegali, że pakiet npm z jego instalatorem powinien być obsługiwany przez tych samych opiekunów, a nie obce osoby. Autor pakietu npm z instalatorem PureScript długo się nie zgadzał, ale ostatecznie ustąpił i przekazał dostęp do repozytorium. Przy tym niektóre zależności pozostały pod jego zarządem.

W zeszłym tygodniu wydano wersję kompilatora PureScript 0.13.2 i
nowi opiekunowie przygotowali odpowiednią aktualizację pakietu npm z instalatorem, w zależnościach którego wykryto złośliwy kod. Odsunięty od stanowiska opiekuna autor pakietu npm z instalatorem PureScript stwierdził, że jego konto zostało skompromitowane przez nieznanych atakujących. Niemniej jednak, w obecnej formie działania złośliwego kodu ograniczały się jedynie do sabotażu instalacji pakietu, który stał się pierwszą wersją od nowych oświecających. Działania złośliwe polegały na zapętleniu z wyświetleniem błędu podczas próby zainstalowania pakietu za pomocą polecenia „npm i -g purescript” bez wykonywania jawnej złośliwej aktywności.

Zidentyfikowano dwa ataki. Kilka godzin po oficjalnym wydaniu nowej wersji pakietu npm purescript, ktoś wytworzył nową wersję zależności load-from-cwd-or-npm 3.0.2, której zmiany spowodowały, że wywołanie loadFromCwdOrNpm() zamiast listy wymaganych do instalacji plików binarnych zwracało strumień PassThrough, który odzwierciedlał wejściowe zapytania jako wartości wyjściowe.

Cztery dni po tym, jak deweloperzy zrozumieli źródło awarii i przygotowywali się do wypuszczenia aktualizacji w celu wykluczenia load-from-cwd-or-npm z zależności, przestępcy wydali kolejną aktualizację load-from-cwd-or-npm 3.0.4, w której usunięto złośliwy kod. Niemniej jednak prawie natychmiast wydano aktualizację innej zależności rate-map 1.0.3, która wprowadziła poprawkę blokującą wywołanie callback do ładowania. Oznacza to, że w obu przypadkach zmiany w nowych wersjach load-from-cwd-or-npm i rate-map miały charakter jawnej dywersji. Co więcej, złośliwy kod zawierał sprawdzenie, które aktywowało awaryjne działania tylko podczas instalacji wydania od nowych opiekunów i w żaden sposób nie ujawniało się przy instalacji starszych wersji.

Deweloperzy rozwiązali problem, wydając aktualizację, w której problematyczne zależności zostały usunięte. Aby wykluczyć osiadanie skompromitowanego kodu na systemach użytkowników po próbie instalacji problematycznej wersji PureScript, zaleca się usunięcie zawartości katalogów node_modules oraz plików package-lock.json, a następnie ustawienie jako dolnego limitu wersji purescript 0.13.2.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster