W instalatorze purescript npm znaleziono złośliwy kod

npm czysty skrypt

Kilka dni temu złośliwy kod został wykryty w zależnościach pakietu npm z instalatorem PureScript, co objawia się podczas próby zainstalowania pakietu purescript.

Złośliwy kod osadzone za pomocą zależności load-from-cwd-lub-npm i zależności map prędkości. Należy zaznaczyć, że za dołączenie pakietów z tymi zależnościami odpowiada pierwotny autor pakietu npm z instalatorem PureScript, który do niedawna zajmował się utrzymaniem tego pakietu npm, ale pakiet został wysłany do innych opiekunów.

O problemie

Problem został odkryty przez jednego z nowych analityków pakietu, na którego prawa alimentacyjne zostały przeniesione po wielu nieporozumieniach i paskudnych dyskusjach z pierwotnym autorem pakietu purescript npm.

Nowi opiekunowie są odpowiedzialni za kompilator PureScript i nalegali, aby pakiet NPM wraz z instalatorem był naprawiany przez samych opiekunów, a nie przez dewelopera spoza projektu.

Autor pakietu npm z instalatorem PureScript przez długi czas nie zgadzał się z tym, ale potem zrezygnował i udostępnił repozytorium. Jednak niektóre zależności pozostawiono pod jego kontrolą.

W zeszłym tygodniu ogłoszono wydanie kompilatora PureScript 0.13.2 a nowi opiekunowie przygotowali odpowiednią aktualizację pakietu npm wraz z instalatorem, dla którego wykryto szkodliwy kod.

Złośliwy kod został najpierw wstawiony do pakietu npm „load-from-cwd-or-npm” w wersji 3.0.2, a następnie w pakiecie rate-map od wersji 1.0.3. W ostatnich dniach opublikowano kilka wersji obu pakietów.

Po przejściu z postu towarzyszącego autorowi pakietu npm z instalatorem PureScript, powiedział, że jego konto zostało przejęte przez nieznanych napastników.

Jednak w obecnej formie działania szkodliwego kodu były ograniczone jedynie przez sabotowanie instalacji pakietu, która była pierwszą wersją nowych opiekunów. Szkodliwe działania zostały zapętlone podczas próby zainstalowania pakietu za pomocą polecenia „npm i -g purescript” bez wykonywania żadnej jawnej złośliwej aktywności.

Zidentyfikowano dwa ataki

Podsumowując, kod sabotuje instalator purescript npm, aby uniemożliwić ukończenie pobierania, co powoduje zawieszenie się instalatora podczas kroku „Sprawdź, czy dla Twojej platformy jest dostarczony prekompilowany plik binarny”.

Pierwszy exploit zrobił to, przerywając pakiet load-from-cwd-or-npm aby każde wywołanie loadFromCwdOrNpm () zwróciło sekwencję tranzytową zamiast oczekiwanego pakietu (w tym przypadku pakiet żądania, którego używaliśmy do pobrania plików binarnych kompilatora). W drugiej iteracji exploita dokonano tego, modyfikując plik źródłowy, aby zapobiec uruchomieniu wywołania zwrotnego pobierania.

4 dni później programiści zrozumieli źródło błędów i przygotowywali się do wydania aktualizacji, aby wykluczyć load-from-cwd-o-npm z zależności, atakujący wydali kolejną aktualizację load-from-cwd-or-npm 3.0.4, z której usunięto złośliwy kod.

Jednak aktualizacja do innej zależności Rate-Map 1.0.3 została wydana niemal natychmiast, w której dodano poprawkę blokującą wywołanie zwrotne w celu pobrania.

Oznacza to, że w obu przypadkach zmiany w nowych wersjach load-from-cwd-or-npm i szybkości mapowania miały charakter pozornego odchylenia.

Ponadto w szkodliwym kodzie znajdowało się sprawdzenie, które uruchamiało nieudane akcje tylko podczas instalowania nowej wersji nowych opiekunów i nie pojawiało się w ogóle podczas instalowania poprzednich wersji.

Programiści rozwiązali problem, wydając aktualizację, w której problematyczne zależności zostały usunięte.

Aby zapobiec instalowaniu zainfekowanego kodu w systemach użytkowników po próbie zainstalowania problematycznej wersji PureScript.

W końcu deweloper zaleca każdemu, kto ma wspomniane wersje pakietu w swoim systemie usuń zawartość katalogów node_modules i pliki package-lock.json, a następnie ustaw wersję purescript 0.13.2.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.