TL; DR
Den 24 november 2025 upptäckte forskare Shai Hulud: Den andra ankomsten, en ny våg av NPM-attack mot leveranskedjan som återinfekterar npm-paket, stjäl inloggningsuppgifter och sprider sig över utvecklarmaskiner och CI/CD pipelines. Till skillnad från den första incidenten installerar den här versionen Bun-körtiden i realtid, distribuerar dolda GitHub Actions-bakdörrar och inkluderar en destruktiv raderare som kan radera hela hemkataloger på Linux, macOS och Windows. Inom några timmar steg antalet komprometterade paket till över 830, vilket bekräftar att detta inte är en enkel variant utan en kraftig upptrappning av ursprungliga masken.
InverkanAlla utvecklare eller CI-användare som installerar publika npm-paket kan ha blivit exponerade. Java-team är också i riskzonen efter att infekterade paket automatiskt speglades in i Maven Central.
Omedelbara åtgärder: blockera kända skadliga versioner, tillämpa installationer endast för låsfiler, rotera npm-, GitHub- och molnuppgifter, ta bort okända självhostade runners och övervaka IoC:er som setup_bun.js, bun_environment.js och misstänkta GitHub-arkiv som innehåller "Sha1-Hulud: The Second Coming".
Vad som förändrades: Shai Hulud i NPM:s leveranskedjeattack när den hoppade till Maven
Den andra vågen av Shai Hulud-attacken introducerade en kraftig eskalering. I den första kampanjen höll sig masken kvar inom npm-ekosystemet. Den här gången tog sig den skadliga programvaran in i Maven Central, vilket avslöjar Java-team som aldrig har rört vid npm.
Tidslinje och tokenfönster
Attacken började den November 24, 2025
, precis innan npm drog tillbaka sina äldre autentiseringstokens den december 9.
Dessa gamla tokens var lättare att stjäla och återanvända. Eftersom angriparna fortfarande hade tillgång till dem under detta fönster kunde de publicera hundratals skadliga versioner i hög hastighet innan tidsgränsen löpte ut.
Hur skadlig programvara nådde Maven
Hoppet mellan registren inträffade på grund av mvnpm, ett automatiserat speglingsverktyg som konverterar npm-paket till Maven-artefakter.
mvnpm utför inga säkerhetskontroller. Den ompaketerar helt enkelt det som npm publicerar.
Som ett resultat:
- Ett komprometterat npm-paket (till exempel posthog-node@4.18.1)
- Konverterades automatiskt till en Maven-artefakt
org.mvnpm:posthog-node:4.18.1 - Och publicerades till Maven Central innan någon insåg att den var infekterad.
Detta medel Java-utvecklare blev offer för ett npm-intrång, även om de aldrig installerade ett npm-paket.
Varför detta Matters
Detta är den första kända korsregistermasken, där en attack i leveranskedjan sprider sig från ett ekosystem till ett annat enbart genom automatisering.
På grund av detta inkluderar sprängradien nu Java, JVM-arbetsbelastningar och enterprise bygga system som förlitar sig på Maven Central.
Vad gör Shai Hulud 2.0 så seriös
Bun-körning används för att undvika detektering
Angriparna bytte från Node.js till Bun-körningsmiljön. Skadlig programvara installerar Bun direkt via setup_bun.js under paketinstallationen. Detta undviker nodspecifik övervakning och ger angriparna snabbare exekvering för en mycket stor obfuskerad nyttolast.
GitHub-åtgärder som används som en bakdörr för kommandon
När den skadliga programvaran har installerats skapar den en dold GitHub Actions-runner med egen host i $HOME/.dev-env/Detta fungerar på Windows, macOS och Linux. Angriparna kan köra kommandon genom att helt enkelt publicera meddelanden i GitHub-diskussioner på ett komprometterat arkiv. En arbetsflödesfil bearbetar dessa meddelanden och kör dem som skalkommandon.
Inbyggd torkare
Om skadlig programvara inte kan autentisera med GitHub eller npm rensar den offrets hemkatalog.
- På Windows använder den del, rdoch chiffer /W att radera filer.
- På Linux och macOS skriver den över data med strimla och tar sedan bort kataloger.
En mycket högljudd kampanj
Även om skadlig kod använder sig av viss smyg (till exempel genom att använda Bun), är kampanjen överlag allt annat än tyst. Den publicerar aggressivt komprometterade paket, skapar hundratals eller tusentals nya arkiv, laddar upp autentiseringsuppgifter i bulk och installerar långlivade självhostade runners på utvecklarmaskiner. Inget av detta är beteende med låg profil. Skalan, hastigheten och den operativa "ljudstyrkan" hos denna attack sticker ut jämfört med de flesta komprometteringar i leveranskedjan, som tenderar att prioritera att förbli osynliga så länge som möjligt..
Bred påverkan
Angriparna komprometterade många välkända paket med miljontals månatliga nedladdningar, inklusive:
Zapier, ENS-domäner, Postman, PostHog, AsyncAPI och Voiceflow.
Möjliga attributionssignaler
Attribuering är svårt här, och det finns ingen bekräftad källa bakom kampanjen. Ett stort säkerhetsföretag noterar att operationen liknar den tidigare Shai-Hulud-masken, men skillnaderna i hur nyttolasten är uppbyggd och hur skadlig kod sprids pekar på möjligheten att det finns en annan uppsättning operatörer. Deras bedömning visar att flera miljöer laddade ner de komprometterade paketen innan npm tog bort dem, vilket tyder på verklig exponering snarare än ett kortlivat test.
Med tanke på att taktiken påminner om den första vågen men skiljer sig åt på viktiga punkter, särskilt vad gäller nyttolaststruktur, utbredningslogik och operativ "stil", är ett kopieringsscenario rimligt. Angriparna kan ha lånat idéer från Shai-Hulud men implementerat sina egna verktyg. Detta skulle kunna representera en annan grupp som helt försöker imitera den tidigare kampanjen.
I nuläget finns det inga starka bevis som knyter det till någon känd aktör, ekonomiskt motiverad grupp eller statligt ansluten enhet. Överlappningen med den ursprungliga masken är verklig, men skillnaderna är tillräckligt viktiga för att hålla tillskrivningen i kategorin "obekräftad".
Spridning i Maven
Ett stort säkerhetsföretag bekräftade att de skadliga npm-paketen automatiskt publicerades om till Maven via mvnpm, ett verktyg som konverterar npm-paket till Maven-artefakter utan manuell granskning.
Följande paket skickades till Maven Central: org.mvnpm:posthog-node:4.18.1
Eftersom mvnpm helt enkelt ompaketerar vad npm publicerar, speglades de infekterade versionerna in i Java-ekosystemet innan någon insåg det.
Maven Central tog bort de berörda artefakterna den 25 november 2025 och började skärpa kontrollerna för att förhindra liknande problem mellan register.
Det här innebär att Java-projekt utan direkt koppling till npm fortfarande kunde ha exponerats.
Hur Shai Hulud 2.0-attacken fungerar
Infektionsflöde
- En illvillig förinstallation manus läggs till package.json.
- setup_bun.js installerar Bun på offrets maskin om den saknas.
- bun_miljö.js (mer än 480k rader obfuskerad kod) körs i bakgrunden.
- Skadlig programvara söker efter inloggningsuppgifter med tekniker som liknar TruffleHog. Den letar efter
- AWS-, GCP- och Azure-nycklar
- GitHub-tokens
- npm-tokens
- CI-systemets hemligheter
- AWS-, GCP- och Azure-nycklar
- Stulen data laddas upp till offentliga GitHub-arkiv med beskrivningen ”Sha1-Hulud: Den andra återkomsten”.
- Med hjälp av fångade tokens publicerar den skadliga programvaran komprometterade versioner av paket, infekterar tillgängliga GitHub-arkiv och installerar ihållande självhostade runners för fjärrkörning av kod.
Skadliga GitHub-arbetsflöden
Under den andra vågen av Shai-Hulud NPM Supply Chain Attack skapade den skadliga programvaran två dolda GitHub Actions-arbetsflöden inuti komprometterade databaser. Dessa arbetsflöden ger angripare fjärrkodkörning, långsiktig persistens och fullständig åtkomst till systemhemligheter.
1. Bakdörrsarbetsflöde (diskussion.yaml)
Det farligaste arbetsflödet lyssnar på GitHub-diskussioner händelser. När ett diskussionsmeddelande skapas eller redigeras läser arbetsflödet meddelandets innehåll och kör det som en shell-kommando på offrets maskin.
Nedan följer en förenklad version av det skadliga arbetsflödet, rekonstruerad från observerade exempel:
Den kritiska linjen är:
Det här innebär att angriparen kan posta vilket kommando som helst i en GitHub-diskussion, och den självhostade runnern kör det omedelbart. Eftersom självhostade runners ofta har tillgång till interna nätverk, molnuppgifter och CI-hemligheter, ger denna bakdörr angriparen fullständig fjärrkörning av kod under Shai Hulud NPM Supply Chain Attack.
Utnyttjande av kommandoinjektion
Detta arbetsflöde missbrukar hur GitHub Actions bearbetar uttryck. Istället för att begränsa inmatning till säkra strängar läser det rått diskussionsinnehåll och skickar det direkt till skalet. Som ett resultat behöver angriparen bara posta ett meddelande som:
Eftersom detta beteende upprepade gånger uppstod under Shai Hulud NPM Supply Chain Attack, blev det en av de tydligaste signalerna på att skadlig programvara använde GitHub Actions som en fjärrkommandokanal.
Löpare som är värdar för sig själva förvärrar detta eftersom de:
- köras inom företagets nätverk
- håll molnet eller CI/CD Referenser
- kör med användarens behörigheter
- har inte GitHubs sandboxing eller isolering
Detta ger angripare en beständig kommandokanal in i interna miljöer.
Arbetsflöde för insamling av hemligheter och system
Förutom bakdörren stoppar skadlig programvara ytterligare ett arbetsflöde vars mål är att samla in och lagra känslig data från det infekterade systemet.
Dessa arbetsflöden samlar:
- molnuppgifter
- Miljövariabler
- katalogförteckningar
- Hemliga skanningar i TruffleHog-stil
De lagrar den insamlade informationen i filer som:
- moln.json
- miljö.json
- innehåll.json
- truffleSecrets.json
Dessa filer laddas sedan upp till angriparkontrollerade GitHub-arkiv märkta "Sha1-Hulud: Den andra ankomsten", där hundratals eller tusentals soptippar observerades.
Indikatorer för kompromiss
| Fil | SHA256 |
|---|---|
| setup_bun.js | a3894003ad1d293ba96d77881ccd2071446dc3f65f434669b49b3da92421901a |
| bun_miljö.js | 62ee164b9b306250c1172583f138c9614139264f889fa99614903c12755468d0 |
Andra varningssignaler
- .github/arbetsflöden/diskussion.yaml
- $HOME/.dev-env/ innehåller oväntade löpare
- Offentliga GitHub-repos skapade på ditt konto innehållande "Sha1-Hulud: The Second Coming"
Uppdaterade mätvärden (från och med 26 november 2025)
| metrisk | Att Räkna |
|---|---|
| npm-paket komprometterade | 830+ |
| Infekterade GitHub-arkiv | 28,000+ |
| Hemliga filer uppladdade | 5,000+ |
| Totalt antal insamlade hemligheter | 11,858 |
| Giltiga hemligheter | 2,298 |
Vad man ska göra nu: Svar på Shai Hulud NPM:s leveranskedjeattack
Shai Hulud NPM Supply Chain Attack kräver snabba och strukturerade åtgärder. Eftersom denna andra våg sprider sig över npm, GitHub, utvecklarmaskiner och till och med Maven Central, bör team agera snabbt för att upptäcka, begränsa och fullständigt åtgärda eventuell exponering. Stegen nedan hjälper dig att reagera i rätt ordning och minska risken för ytterligare kompromettering.
Detektering
- Sök på GitHub efter repos med beskrivningen ”Sha1-Hulud: The Second Coming”.
- Leta efter installationsloggar för Bun under paketinstallationer.
- Kontrollera package.json-filer för oväntade livscykelskript, särskilt förinstallation.
- Kontrollera om $HOME/.dev-env/ på utvecklare eller CI-system.
- Granska GitHub- och npm-publiceringsloggar för misstänkta utgåvor.
inneslutning
- Rotera alla inloggningsuppgifter: GitHub, npm, moln, CI-hemligheter, API-nycklar.
- Inaktivera och ta bort okända självhostade löpare.
- Lås tillfälligt ner skapandet av repo.
- Ta bort infekterade versioner från ditt beroendediagram.
sanering
- Rengör berörda system.
- Granska alla GitHub Actions-arbetsflöden för injicerade filer.
- Sök i dina CI-loggar efter ovanliga kommandon eller körningar.
Återuppbygg från kända fungerande paketversioner.
Hur Xygeni hjälper till att stoppa attacker som Shai-Huluds andra ankomst
Efter en så aggressiv kampanj som Shai-Hulud Second Coming behöver team mer än manuella kontroller. De behöver automatiserat skydd som blockerar skadlig kod innan den når utvecklare, CI-användare eller produktionssystem. Det är här Xygeni ger en stor fördel.
Tidig varning om skadlig kod (MEW): Upptäck hot innan de sprids
Xygenis Early Warning-motor skannar nya och uppdaterade paket med öppen källkod i realtid. Den flaggar misstänkt beteende som:
- Obfuskerad JavaScript eller massiv buntad kod
- Livscykelskript som installerar externa körtidsmiljöer som Bun
- Oväntade anslutningar till GitHub, npm eller molnslutpunkter
- Droppare som skriver in
$HOME,.dev-env/eller arbetsflödesmappar
MEW upptäckte mönster som användes i båda Shai-Hulud-vågorna, vilket hjälper team att reagera innan angripare sprider infektionen ytterligare.
Guardrails in CI/CD blockera skadliga paket
Xygeni framtvingar guardrails som automatiskt stoppar osäkra operationer:
- CI pipelines kan inte installera paket med dolda förinstallations- eller efterinstallationsskript
- Byggnader misslyckas när ett paket försöker skapa arbetsflöden som
.github/workflows/discussion.yaml - Pipelineavvisa beroenden publicerade från opålitliga källor eller först sedda konton
Detta minskar attackytan dramatiskt och förhindrar att skadlig kod körs inuti CI-jobb.
Hemlighetsskydd minskar explosionsradien
Eftersom Shai-Hulud stjäl molnnycklar, GitHub-tokens, npm-tokens och CI-hemligheter, måste skyddet också fokusera på inloggningsuppgifter. Xygeni:
- Upptäcker exponerade hemligheter i kod, loggar, arbetsflöden och miljöfiler
- Roterar högriskuppgifter automatiskt
- Framtvingar kortlivade tokens för att begränsa långsiktiga komprometter
Även om en angripare får initial åtkomst blir stulna nycklar snabbt oanvändbara.
Slutkommentarer: Varför Shai Hulud NPM:s leveranskedjeattack fortfarande spelar roll
Ocuco-landskapet Shai-Huluds andra ankomst händelsen visar hur lätt en modern NPM-attack mot leveranskedjan kan röra sig över ekosystem. I det här fallet hoppade skadlig kod från npm till Maven eftersom automatiserade speglingsverktyg som mvnpm publicerade komprometterade paket på nytt utan verifiering. Som ett resultat exponerades Java-team även om de aldrig använde npm direkt. Detta tydliggör att arbetsflöden mellan register behöver omedelbar granskning och starkare skyddsåtgärder.
Dessutom avslöjar kampanjens omfattning och beteende hur angripare agerar idag. Istället för att hålla tyst publicerar de hundratals paket samtidigt, distribuerar dolda GitHub-runners, stjäl hemligheter i bulk och inkluderar till och med en destruktiv rensningsfunktion om något misslyckas. Följaktligen håller manuella granskningar inte jämna steg med denna nivå av automatisering och hastighet. Team behöver kontinuerligt realtidsskydd vid paketet, källan och pipeline skikten.
Varför kontinuerlig Pipeline Security Är nu viktigt
Attacker som Shai-Huluds andra ankomst kommer att fortsätta utvecklas. Därför krävs det kontroller som fungerar automatiskt inuti för att förhindra nästa våg CI/CD, inte efter komprometteringen. Modernt försvar måste kombinera tidig upptäckt av skadlig kod, strikt beroendevalidering, policytillämpning och hemligt skydd så att skadlig kod inte kan passera obemärkt genom utvecklingsmiljöer.
Xygeni stöder detta skifte genom att leverera automatiserade guardrails över hela programvaruleveranskedjan. Den identifierar misstänkta paket före installation, tillämpar säkra beroendeversioner, blockerar osäkra arbetsflöden, upptäcker exponerade hemligheter och varnar om ovanliga pipeline aktivitet. Som ett resultat förblir team skyddade även när attacker i leveranskedjan sprider sig snabbt och korsar ekosystemgränser.
Lista över komprometterade paket
Berörda paket kan också konsulteras med hjälp av #shai-hulud / #shai-hulud-andra-ankomsten tagg inom OpenSourceMalware.com
| Paket | Version |
|---|---|
| 02-eko | 0.0.7 |
| @accordproject/konsertanalys | 3.24.1 |
| @accordproject/concerto-linter | 3.24.1 |
| @accordproject/concerto-linter-standard-regeluppsättning | 3.24.1 |
| @accordproject/concerto-metamodel | 3.12.5 |
| @accordproject/konserttyper | 3.24.1 |
| @accordproject/markdown-it-cicero | 0.16.26 |
| @accordproject/mall-engine | 2.7.2 |
| @actbase/css-to-react-native-transform | 1.0.3 |
| @actbase/native | 0.1.32 |
| @actbase/node-server | 1.1.19 |
| @actbase/react-absolute | 0.8.3 |
| @actbase/react-daum-postnummer | 1.0.5 |
| @actbase/react-kakaosdk | 0.9.27 |
| @actbase/react-native-actionsheet | 1.0.3 |
| @actbase/react-native-devtools | 0.1.3 |
| @actbase/react-native-fast-image | 8.5.13 |
| @actbase/react-native-kakao-channel | 1.0.2 |
| @actbase/react-native-kakao-navi | 2.0.4 |
| @actbase/react-native-less-transformator | 1.0.6 |
| @actbase/react-native-naver-login | 1.0.1 |
| @actbase/react-native-simple-video | 1.0.13 |
| @actbase/react-native-tiktok | 1.1.3 |
| @alexcolls/nuxt-socket.io | 0.0.7, 0.0.8 |
| @alexcolls/nuxt-ux | 0.6.2, 0.6.1 |
| @antstackio/eslint-config-antstack | 0.0.3 |
| @antstackio/express-graphql-proxy | 0.2.8 |
| @antstackio/graphql-body-parser | 0.1.1 |
| @antstackio/json-till-graphql | 1.0.3 |
| @antstackio/shelbysam | 1.1.7 |
| @aryanhussain/mitt-angular-bibliotek | 0.0.23 |
| @asyncapi/dotnet-rabbitmq-mall | 1.0.2, 1.0.1 |
| @asyncapi/edavisualiser | 1.2.2, 1.2.1 |
| @asyncapi/go-watermill-mall | 0.2.76, 0.2.77 |
| @asyncapi/java-mall | 0.3.6, 0.3.5 |
| @asyncapi/keeper | 0.0.3, 0.0.2 |
| @asyncapi/php-mall | 0.1.2, 0.1.1 |
| @asyncapi/python-paho-mall | 0.2.15, 0.2.14 |
| @asyncapi/server-api | 0.16.25, 0.16.24 |
| @asyncapi/studio | 1.0.3, 1.0.2 |
| @asyncapi/webbkomponent | 2.6.7, 2.6.6 |
| @browserbasehq/bb9 | 1.2.21 |
| @browserbasehq/regissör-ai | 1.0.3 |
| @browserbasehq/mcp | 2.1.1 |
| @browserbasehq/mcp-server-browserbase | 2.4.2 |
| @browserbasehq/sdk-funktioner | 0.0.4 |
| @browserbasehq/stagehand | 3.0.4 |
| @browserbasehq/stagehand-docs | 1.0.1 |
| @caretive/caret-cli | 0.0.2 |
| @clausehq/flows-step-httprequest | 0.1.14 |
| @clausehq/flows-step-jsontoxml | 0.1.14 |
| @clausehq/flows-step-mqtt | 0.1.14 |
| @clausehq/flows-step-sendgridemail | 0.1.14 |
| @clausehq/flows-step-taskscreateurl | 0.1.14 |
| @pendling/blomning | 1.0.3 |
| @pendling/marknadsdata | 1.0.2 |
| @pendling/marknadsdata-diagram | 2.3.1 |
| @dev-blinq/ai-qa-logik | 1.0.19 |
| @dev-blinq/gurka-js | 1.0.131 |
| @dev-blinq/gurka_klient | 1.0.738 |
| @dev-blinq/ui-system | 1.0.93 |
| @ensdomains/adresskodare | 1.1.5 |
| @ensdomains/svartlista | 1.0.1 |
| @ensdomains/buffert | 0.1.2 |
| @ensdomains/ccip-read-cf-worker | 0.0.4 |
| @ensdomains/ccip-läs-dns-gateway | 0.1.1 |
| @ensdomains/ccip-läs-router | 0.0.7 |
| @ensdomains/ccip-läs-arbetare-viem | 0.0.4 |
| @ensdomains/innehållshash | 3.0.1 |
| @ensdomains/kurvaritmetik | 1.0.1 |
| @ensdomains/cypress-metamask | 1.2.1 |
| @ensdomains/dnsprovejs | 0.5.3 |
| @ensdomains/dnssec-oracle-anchors | 0.0.2 |
| @ensdomains/dnssecoraclejs | 0.2.9 |
| @ensdomains/durin | 0.1.2 |
| @ensdomains/durin-middleware | 0.0.2 |
| @ensdomains/ens-arkiverade-kontrakt | 0.0.3 |
| @ensdomains/ens-avatar | 1.0.4 |
| @ensdomäner/ens-kontrakt | 1.6.1 |
| @ensdomains/ens-test-env | 1.0.2 |
| @ensdomains/ens-validering | 0.1.1 |
| @ensdomäner/ensjs | 4.0.3 |
| @ensdomains/enjs-react | 0.0.5 |
| @ensdomains/eth-ens-namehash | 2.0.16 |
| @ensdomains/hackathon-registrar | 1.0.5 |
| @ensdomains/hardhat-chai-matchers-viem | 0.1.15 |
| @ensdomains/hardhat-toolbox-viem-extended | 0.0.6 |
| @ensdomains/mock | 2.1.52 |
| @ensdomains/namnomslag | 1.0.1 |
| @ensdomains/offchain-resolver-kontrakt | 0.2.2 |
| @ensdomains/op-resolver-contracts | 0.0.2 |
| @ensdomains/react-ens-adress | 0.0.32 |
| @ensdomains/förnyelse | 0.0.13 |
| @ensdomains/förnyelse-widget | 0.1.10 |
| @ensdomains/omvända-poster | 1.0.1 |
| @ensdomains/serveranalys | 0.0.2 |
| @ensdomains/solsha1 | 0.0.4 |
| @ensdomains/underdomänregistrator | 0.2.4 |
| @ensdomains/test-utils | 1.3.1 |
| @ensdomains/thorin | 0.6.51 |
| @ensdomains/ui | 3.4.6 |
| @ensdomains/unicode-förvirrande | 0.1.1 |
| @ensdomains/unruggable-gateways | 0.0.3 |
| @ensdomains/vite-plugin-i18next-loader | 4.0.4 |
| @ensdomains/web3modal | 1.10.2 |
| @everreal/react-charts | 2.0.1, 2.0.2 |
| @everreal/validate-esmoduleinterop-imports | 1.4.4, 1.4.5 |
| @everreal/webbanalys | 0.0.1, 0.0.2 |
| @faq-komponent/kärna | 0.0.4 |
| @faq-komponent/reagera | 1.0.1 |
| @fishingbooker/webbläsarsynkroniseringsplugin | 1.0.5 |
| @fishingbooker/react-loader | 1.0.7 |
| @fishingbooker/react-pagination | 2.0.6 |
| @fishingbooker/react-raty | 2.0.1 |
| @fishingbooker/react-swiper | 0.1.5 |
| @hapheus/n8n-noder-pgp | 1.5.1 |
| @hover-design/core | 0.0.1 |
| @hover-design/react | 0.2.1 |
| @ifelsedeveloper/protocol-contracts-svm-idl | 0.1.2 |
| @ifings/designsystem | 4.9.2 |
| @ifings/metatron3 | 0.1.5 |
| @kvytech/cli | 0.0.7 |
| @kvytech/komponenter | 0.0.2 |
| @kvytech/habbit-e2e-test | 0.0.2 |
| @kvytech/medusa-plugin-meddelande | 0.0.8 |
| @kvytech/medusa-plugin-hantering | 0.0.5 |
| @kvytech/medusa-plugin-nyhetsbrev | 0.0.5 |
| @kvytech/medusa-plugin-produktrecensioner | 0.0.9 |
| @kvytech/medusa-plugin-promotion | 0.0.2 |
| @kvytech/webb | 0.0.2 |
| @lessondesk/api-klient | 9.12.3, 9.12.2 |
| @lessondesk/babel-förinställning | 1.0.1 |
| @lessondesk/electron-group-api-klient | 1.0.3 |
| @lessondesk/eslint-config | 1.4.2 |
| @lessondesk/materialikoner | 1.0.3 |
| @lessondesk/react-table-context | 2.0.4 |
| @lektionsdisk/skolbuss | 5.2.2, 5.2.3 |
| @livecms/live-redigering | 0.0.32 |
| @livecms/nuxt-live-edit | 1.9.2 |
| @louisle2/kärna | 1.0.1 |
| @louisle2/cortex-js | 0.1.6 |
| @lpdjs/firestore-repo-service | 1.0.1 |
| @markvivanco/app-versionskontroll | 1.0.2, 1.0.1 |
| @ntnx/passport-wso2 | 0.0.3 |
| @ntnx/t | 0.0.101 |
| @orbitgtbelgium/mapbox-gl-draw-cut-polygon-mode | 2.0.5 |
| @orbitgtbelgium/mapbox-gl-draw-scale-rotate-mode | 1.1.1 |
| @orbitgtbelgium/orbit-komponenter | 1.2.9 |
| @orbitgtbelgium/tidsslider | 1.0.187 |
| @osmanekrem/bmad | 1.0.6 |
| @osmanekrem/felhanterare | 1.2.2 |
| @posthog/agent | 1.24.1 |
| @posthog/ai | 7.1.2 |
| @posthog/cli | 0.5.15 |
| @posthog/clickhouse | 1.7.1 |
| @posthog/core | 1.5.6 |
| @posthog/hedgehog-mode | 0.0.42 |
| @posthog/ikoner | 0.36.1 |
| @posthog/citron-ui | 0.0.1 |
| @posthog/nextjs-konfiguration | 1.5.1 |
| @posthog/nuxt | 1.2.9 |
| @posthog/pool | 3.2.1 |
| @posthog/plugin-bidrag | 0.0.6 |
| @posthog/react-rrweb-spelare | 1.1.4 |
| @posthog/rrdom | 0.0.31 |
| @posthog/rrweb | 0.0.31 |
| @posthog/rrweb-spelare | 0.0.31 |
| @posthog/rrweb-post | 0.0.31 |
| @posthog/rrweb-replay | 0.0.19 |
| @posthog/rrweb-snapshot | 0.0.31 |
| @posthog/rrweb-utils | 0.0.31 |
| @posthog/siphash | 1.1.2 |
| @posthog/trollkarl | 1.18.1 |
| @postman/aether-ikoner | 2.23.4, 2.23.3, 2.23.2 |
| @postman/csv-parse | 4.0.5, 4.0.3, 4.0.4 |
| @postman/node-keytar | 7.9.6, 7.9.4, 7.9.5 |
| @brevbärare/tunnelagent | 0.6.7, 0.6.6, 0.6.5 |
| @pradhumngautam/gemensam-app | 1.0.2 |
| @pruthvi21/använd-avhoppning | 1.0.3 |
| @quick-start-soft/snabb-dokumentöversättare | 1.4.2511142126 |
| @quick-start-soft/quick-git-clean-markdown | 1.4.2511142126 |
| @snabbstart-mjuk/snabb-nedsättning | 1.4.2511142126 |
| @quick-start-soft/quick-markdown-compose | 1.4.2506300029 |
| @snabbstart-mjuk/snabb-nedsättningsbild | 1.4.2511142126 |
| @snabbstart-mjuk/snabb-nedskrivning-utskrift | 1.4.2511142126 |
| @quick-start-soft/quick-markdown-translator | 1.4.2509202331 |
| @quick-start-soft/snabb-borttagning-av-bild-bakgrund | 1.4.2511142126 |
| @snabbstart-mjuk/snabb-uppgift-förfina | 1.4.2511142126 |
| @relyt/claude-context-core | 0.1.1 |
| @seezo/sdr-mcp-server | 0.0.5 |
| @seung-ju/nästa | 0.0.2 |
| @seung-ju/openapi-generator | 0.0.4 |
| @seung-ju/reagera-hooks | 0.0.2 |
| @seung-ju/react-native-action-sheet | 0.2.1 |
| @sme-ui/aoma-vevasound-metadata-lib | 0.1.3 |
| @strapbuild/react-native-date-time-picker | 2.0.4 |
| @strapbuild/react-native-perspektiv-bildbeskärare | 0.4.15 |
| @strapbuild/react-native-perspektiv-bildbeskärare-2 | 0.4.7 |
| @strapbuild/react-native-perspektiv-bildbeskärare-poojan31 | 0.4.6 |
| @suraj_h/medium-common | 1.0.5 |
| @thedelta/eslint-konfiguration | 1.0.2 |
| @tiaanduplessis/json | 2.0.3, 2.0.2 |
| @tiaanduplessis/react-progressbar | 1.0.2, 1.0.1 |
| @trefox/sleekshop-js | 0.1.6 |
| @trigo/atrix | 7.0.1 |
| @trigo/atrix-elasticsearch | 2.0.1 |
| @trigo/atrix-postgres | 1.0.3 |
| @trigo/atrix-pubsub | 4.0.3 |
| @trigo/atrix-tvål | 1.0.2 |
| @trigo/atrix-swagger | 3.0.1 |
| @trigo/bool-uttryck | 4.1.3 |
| @trigo/eslint-config-trigo | 3.3.1 |
| @trigo/fsm | 3.4.2 |
| @trigo/hapi-auktoriserings-signerad länk | 1.3.1 |
| @trigo/pathfinder-ui-css | 0.1.1 |
| @trigo/trigo-hapijs | 5.0.1 |
| @trpc-rate-limiter/cloudflare | 0.1.4 |
| @trpc-hastighetsbegränsare/hono | 0.1.4 |
| @varsityvibe/api-klient | 1.3.36, 1.3.37 |
| @varsityvibe/utils | 5.0.6 |
| @varsityvibe/valideringsscheman | 0.6.7, 0.6.8 |
| @vishadtyagi/helårskalender | 0.1.11 |
| @voiceflow/alexa-typer | 2.15.60, 2.15.61 |
| @voiceflow/antropisk | 0.4.4, 0.4.5 |
| @voiceflow/api-sdk | 3.28.58, 3.28.59 |
| @voiceflow/backend-utils | 5.0.2, 5.0.1 |
| @voiceflow/bastyper | 2.136.3, 2.136.2 |
| @voiceflow/body-parser | 1.21.2, 1.21.3 |
| @voiceflow/chatttyper | 2.14.59, 2.14.58 |
| @voiceflow/circleci-config-sdk-orb-import | 0.2.1, 0.2.2 |
| @röstflöde/commitlint-konfiguration | 2.6.2, 2.6.1 |
| @voiceflow/gemensamt | 8.9.1, 8.9.2 |
| @voiceflow/standard-prompt-wrappers | 1.7.4, 1.7.3 |
| @voiceflow/dependency-cruiser-config | 1.8.12, 1.8.11 |
| @voiceflow/dtos-interact | 1.40.2, 1.40.1 |
| @voiceflow/kryptering | 0.3.3, 0.3.2 |
| @voiceflow/eslint-config | 7.16.4, 7.16.5 |
| @voiceflow/eslint-plugin | 1.6.2, 1.6.1 |
| @voiceflow/undantag | 1.10.2, 1.10.1 |
| @voiceflow/hämta | 1.11.1, 1.11.2 |
| @voiceflow/general-types | 3.2.23, 3.2.22 |
| @voiceflow/git-branch-check | 1.4.4, 1.4.3 |
| @voiceflow/google-dfes-typer | 2.17.12, 2.17.13 |
| @voiceflow/google-typer | 2.21.12, 2.21.13 |
| @voiceflow/husky-config | 1.3.1, 1.3.2 |
| @voiceflow/logger | 2.4.3, 2.4.2 |
| @voiceflow/metrics | 1.5.2, 1.5.1 |
| @voiceflow/natural-language-commander | 0.5.2, 0.5.3 |
| @voiceflow/nestjs-gemensam | 2.75.2, 2.75.3 |
| @voiceflow/nestjs-mongodb | 1.3.1, 1.3.2 |
| @voiceflow/nestjs-rate-limit | 1.3.3, 1.3.2 |
| @voiceflow/nestjs-redis | 1.3.1, 1.3.2 |
| @voiceflow/nestjs-timeout | 1.3.1, 1.3.2 |
| @voiceflow/npm-package-json-lint-config | 1.1.1, 1.1.2 |
| @voiceflow/openai | 3.2.2, 3.2.3 |
| @voiceflow/pino | 6.11.4, 6.11.3 |
| @voiceflow/pino-pretty | 4.4.2, 4.4.1 |
| @voiceflow/snyggare-konfiguration | 1.10.2, 1.10.1 |
| @voiceflow/react-chat | 1.65.4, 1.65.3 |
| @voiceflow/körtid | 1.29.1, 1.29.2 |
| @voiceflow/runtime-client-js | 1.17.3, 1.17.2 |
| @voiceflow/sdk-runtime | 1.43.2, 1.43.1 |
| @voiceflow/hemligheter-leverantör | 1.9.3, 1.9.2 |
| @voiceflow/semantisk-release-konfiguration | 1.4.2, 1.4.1 |
| @voiceflow/serverlös-plugin-typescript | 2.1.7, 2.1.8 |
| @voiceflow/slate-serializer | 1.7.4, 1.7.3 |
| @voiceflow/stitches-react | 2.3.3, 2.3.2 |
| @voiceflow/storybook-konfiguration | 1.2.2, 1.2.3 |
| @voiceflow/stylelint-config | 1.1.1, 1.1.2 |
| @voiceflow/test-common | 2.1.1, 2.1.2 |
| @voiceflow/tsconfig | 1.12.2, 1.12.1 |
| @voiceflow/tsconfig-sökvägar | 1.1.5, 1.1.4 |
| @voiceflow/utils-designer | 1.74.19, 1.74.20 |
| @voiceflow/verror | 1.1.5, 1.1.4 |
| @voiceflow/vite-config | 2.6.2, 2.6.3 |
| @voiceflow/vitest-config | 1.10.3, 1.10.2 |
| @voiceflow/rösttyper | 2.10.59, 2.10.58 |
| @voiceflow/voiceflow-typer | 3.32.45, 3.32.46 |
| @voiceflow/widget | 1.7.18, 1.7.19 |
| @zapier/ai-åtgärder | 0.1.20, 0.1.19, 0.1.18 |
| @zapier/babel-förinställning-zapier | 6.4.2, 6.4.1, 6.4.3 |
| @zapier/webbläsarlista-konfiguration-zapier | 1.0.4, 1.0.3, 1.0.5 |
| @zapier/hemlig-skrubber | 1.1.5, 1.1.4, 1.1.3 |
| ai-kråka-sköld | 1.0.7 |
| arc-cli-fc | 1.0.1 |
| asyncapi-förhandsvisning | 1.0.2, 1.0.1 |
| Atrix | 1.0.1 |
| automatiseringsmodell | 1.0.491 |
| axios-byggare | 1.2.1 |
| axios-avbrytbar | 1.0.2, 1.0.1 |
| axios-tidsstyrd | 1.0.2, 1.0.1 |
| barebones-css | 1.1.4, 1.1.3 |
| benmostyn-ramtryck | 1.0.1 |
| bästgpiostyrenhet | 1.0.10 |
| dubbelriktad adapter | 1.2.2, 1.2.4, 1.2.5, 1.2.3 |
| blinqio-executions-cli | 1.0.41 |
| blob-to-base64 | 1.0.3 |
| bun-plugin-httpfile | 0.1.1 |
| bytecode-checker-cli | 1.0.11, 1.0.8, 1.0.9, 1.0.10 |
| byte-till-x | 1.0.1 |
| beräkna-låneränta | 1.0.4 |
| kondensator-plugin-apptrackingios | 0.0.21 |
| kondensator-plugin-köp | 0.1.1 |
| kondensator-plugin-scgssigninwithgoogle | 0.0.5 |
| kondensator-köphistorik | 0.0.10 |
| kondensator-röstinspelare-wav | 6.0.3 |
| nedladdningar av chrome-tillägg | 0.0.3, 0.0.4 |
| claude-token-uppdaterare | 1.0.3 |
| coinmarketcap-api | 3.1.3, 3.1.2 |
| färger-regex | 2.0.1 |
| kommando-irail | 0.5.4 |
| jämför-obj | 1.1.1, 1.1.2 |
| kompositreducerare | 1.0.4, 1.0.3, 1.0.2, 1.0.5 |
| nedräkning | 1.0.2, 1.0.1 |
| CPU-instruktioner | 0.0.14 |
| skapa-regissör-app | 0.1.1 |
| skapa-glee-app | 0.2.3, 0.2.2 |
| create-hardhat3-app | 1.1.4, 1.1.3, 1.1.1, 1.1.2 |
| krypto-addr-codec | 0.1.9 |
| css-dedoupe | 0.1.2 |
| dashboard-tomt-tillstånd | 1.0.3 |
| designstudiouiux | 1.0.1 |
| devstart-cli | 1.0.6 |
| dialogflöde | 1.1.4, 1.1.3, 1.1.1, 1.1.2 |
| discord-bot-server | 0.1.2 |
| docusaurus-plugin-vaniljextrakt | 1.0.3 |
| gå inte | 1.1.2 |
| dotnet-mall | 0.0.3, 0.0.4 |
| drop-events-on-property-plugin | 0.0.2 |
| e-postleveranstestare | 1.1.1 |
| enforce-branch-name | 1.1.3 |
| esbuild-plugin-brotli | 0.2.1 |
| esbuild-plugin-eta | 0.1.1 |
| esbuild-plugin-httpfile | 0.4.1 |
| eslint-config-nitpicky | 4.0.1 |
| eslint-config-trigo | 22.0.2 |
| eslint-config-zeallat-base | 1.0.4 |
| ethereum-ens | 0.8.1 |
| evm-checkcode-cli | 1.0.15, 1.0.12, 1.0.13, 1.0.14 |
| exakt ticker | 0.3.5 |
| expo-ljudsession | 0.2.1 |
| expressos | 1.1.3 |
| tjockfingrig | 1.0.2, 1.0.1 |
| funktionsvändning | 1.0.2, 1.0.1 |
| firestore-sökmotor | 1.2.3 |
| fittxt | 1.0.3, 1.0.2 |
| flapstacks | 1.0.2, 1.0.1 |
| platta till-avplatta | 1.0.2, 1.0.1 |
| formik-fel-fokus | 2.0.1 |
| formik-butik | 1.0.1 |
| fuzzy-finder | 1.0.5, 1.0.6 |
| gate-evm-kontrollkod2 | 2.0.3, 2.0.4, 2.0.5, 2.0.6 |
| gate-evm-verktyg-test | 1.0.7, 1.0.8, 1.0.5, 1.0.6 |
| gatsby-plugin-cname | 1.0.2, 1.0.1 |
| generator-meteor-lager | 0.1.6 |
| generator-ng-itobuz | 0.0.15 |
| få-dem-argument | 1.3.3 |
| github-action-for-generator | 2.1.28, 2.1.27 |
| gitsafe | 1.0.5 |
| go-mall | 0.1.8, 0.1.9 |
| gulp-inject-envs | 1.2.2, 1.2.1 |
| haufe-axera-api-klient | 0.0.1, 0.0.2 |
| hopp-mapboxdraw | 0.1.1 |
| hoppfull | 1.0.3 |
| svävardesignprototyp | 0.0.5 |
| httpness | 1.0.3, 1.0.2 |
| hyperfullfaced | 1.0.3 |
| hyperterm-hipster | 1.0.7 |
| ids-css | 1.5.1 |
| ids-enterprise-mcp-server | 0.0.2 |
| ids-enterprise-ng | 20.1.6 |
| ids-enterprise-typningar | 20.1.6 |
| bild-till-URI | 1.0.2, 1.0.1 |
| sömnlöshet-plugin-slumpmässig-val | 1.0.4 |
| invo | 0.2.2 |
| iron-shield-miniapp | 0.0.2 |
| ito-knapp | 8.0.3 |
| itobuz-vinkel | 0.0.1 |
| itobuz-angular-auth | 8.0.11 |
| itobuz-vinkelknapp | 8.0.11 |
| jacob-zuma | 1.0.2, 1.0.1 |
| jaetut-varit-test | 1.0.2 |
| jan-webbläsare | 0.13.1 |
| jquery-bindningar | 1.1.3, 1.1.2 |
| jsonsurge | 1.0.7 |
| bara rostat | 1.7.1 |
| kill-port | 2.0.3, 2.0.2 |
| korea-administrativt-område-geo-json-util | 1.0.7 |
| komi | 1.5.9, 1.5.10 |
| språkkoder | 1.0.2, 1.0.1 |
| licens-omatic | 1.2.2, 1.2.1 |
| lint-staged-imagemin | 1.3.1, 1.3.2 |
| lite-serper-mcp-server | 0.2.2 |
| luno-api | 1.2.3 |
| manuell-faktureringssystem-miniapp-api | 1.3.1 |
| medusa-plugin-meddelande | 0.0.3 |
| medusa-plugin-loggar | 0.0.17 |
| medusa-plugin-momo | 0.0.68 |
| medusa-plugin-produktrecensioner-kvy | 0.0.4 |
| medusa-plugin-zalopay | 0.0.40 |
| mod10-kontrollsiffra | 1.0.1 |
| mon-package-react-typescript | 1.0.1 |
| mitt-saeed-lib | 0.1.1 |
| n8n-noder-tmdb | 0.5.1 |
| n8n-noder-vercel-ai-sdk | 0.1.7 |
| n8n-noder-viral-app | 0.2.5 |
| nanoåterställning | 7.0.2, 7.0.1 |
| nästa-cirkulära-beroende | 1.0.3, 1.0.2 |
| nästa-enkla-Google-Analys | 1.1.1, 1.1.2 |
| nästa-stil-nprogress | 1.0.4, 1.0.5 |
| ngx-användbar-swiper-prosenjit | 9.0.2 |
| ngx-wooapi | 12.0.1 |
| normal butik | 1.3.1, 1.3.4, 1.3.3, 1.3.2 |
| obj-till-css | 1.0.3, 1.0.2 |
| okta-react-router-6 | 5.0.1 |
| öppet2internet | 0.1.1 |
| orbit-boxikoner | 2.1.3 |
| orbit-nebula-ritverktyg | 1.0.10 |
| orbit-nebula-editor | 1.0.2 |
| orbit-tvål | 0.43.13 |
| orkester | 12.1.2 |
| pakettestare | 1.0.1 |
| paket-plugin-tillgångskopiator | 1.1.3, 1.1.2 |
| pdf-annotering | 0.0.2 |
| piklit | 1.0.1 |
| pico-uid | 1.0.4, 1.0.3 |
| paket-readme | 1.1.1 |
| poper-react-sdk | 0.1.2 |
| posthog-docusaurus | 2.0.6 |
| posthog-js | 1.297.3 |
| posthog-nod | 4.18.1, 5.13.3, 5.11.3 |
| posthog-plugin-hello-world | 1.0.1 |
| posthog-react-native | 4.11.1, 4.12.5 |
| posthog-react-native-session-replay | 1.2.2 |
| prime-one-tabell | 0.0.19 |
| prompt-eng | 1.0.50 |
| ynklig-req | 1.0.3 |
| ra-auth-firebase | 1.0.3 |
| ra-data-firebase | 1.0.8, 1.0.7 |
| react-component-taggare | 0.1.9 |
| react-data-to-export | 1.0.1 |
| react-element-prompt-inspektör | 0.1.18 |
| react-favic | 1.0.2 |
| react-hook-form-persist | 3.0.2, 3.0.1 |
| react-jam-ikoner | 1.0.2, 1.0.1 |
| react-keycloak-kontext | 1.0.8, 1.0.9 |
| react-biblioteksinstallation | 0.0.6 |
| react-linjär-laddare | 1.0.2 |
| react-micromodal.js | 1.0.2, 1.0.1 |
| react-native-datepicker-modal | 1.3.1, 1.3.2 |
| react-native-e-post | 2.1.1, 2.1.2 |
| react-native-fetch | 2.0.1, 2.0.2 |
| react-native-get-pixel-dimensions | 1.0.2, 1.0.1 |
| react-native-google-maps-vägbeskrivningar | 2.1.2 |
| react-native-jam-ikoner | 1.0.2, 1.0.1 |
| react-native-log-level | 1.2.2, 1.2.1 |
| react-native-modest-checkbox | 3.3.1 |
| react-native-modest-storage | 2.1.1 |
| react-native-telefonsamtal | 1.2.2, 1.2.1 |
| react-native-retriable-fetch | 2.0.1, 2.0.2 |
| react-native-use-modal | 1.0.3 |
| react-native-viewfinder | 1.2.2, 1.2.1 |
| react-native-websocket | 1.0.4, 1.0.3 |
| react-native-worklet-functions | 3.3.3 |
| react-qr-bild | 1.1.1 |
| återanvänd | 1.0.5 |
| rediff-visare | 0.0.7 |
| redux-router-kit | 1.2.2, 1.2.4, 1.2.3 |
| rollup-plugin-httpfile | 0.2.1 |
| sa-företags-registreringsnummer-regex | 1.0.2, 1.0.1 |
| sa-id-gen | 1.0.4, 1.0.5 |
| sammasamma | 1.0.3 |
| scgs-kondensator-prenumerera | 1.0.11 |
| scgsffcreator | 1.0.5 |
| set-nested-prop | 2.0.1, 2.0.2 |
| hylla-jwt-sessioner | 0.1.2 |
| shell-exec | 1.1.4, 1.1.3 |
| shinhan-limit-skrot | 1.0.3 |
| färdighetsanvändning | 0.1.2, 0.1.1 |
| solomon-api-berättelser | 1.0.2 |
| solomon-v3-berättelser | 1.15.6 |
| solomon-v3-ui-wrapper | 1.6.1 |
| sortera efter avstånd | 2.0.1 |
| sydafrikansk-id-info | 1.0.2 |
| stat-fns | 1.0.1 |
| störa | 2.3.2 |
| super-commit | 1.0.1 |
| svelte-autocomplete-select | 1.1.1 |
| slank-rostade | 1.1.3, 1.1.2 |
| tanstack-shadcn-bord | 1.1.5 |
| tcsp | 2.0.2 |
| tcsp-dragtest | 1.0.5 |
| tcsp-test-vd | 2.4.4 |
| mall-bibliotek | 1.1.4, 1.1.3 |
| mall-mikrotjänst | 1.0.3, 1.0.2 |
| ihärdig-hämta | 2.3.3, 2.3.2 |
| test-foundry-app | 1.0.4, 1.0.3, 1.0.2, 1.0.1 |
| test-hardhat-app | 1.0.4, 1.0.3, 1.0.2, 1.0.1 |
| test23112222-api | 1.0.1 |
| tiaan | 1.0.2 |
| token.js-gaffel | 0.7.32 |
| trigo-react-app | 4.1.2 |
| typsnitt | 1.2.2, 1.2.3 |
| typeorm-orbit | 0.2.27 |
| undefsafe-typad | 1.0.4, 1.0.3 |
| höglandet | 0.5.4 |
| uppladdning till Play Store | 1.0.2, 1.0.1 |
| url-kodning-avkodning | 1.0.2, 1.0.1 |
| använd-osparade-ändringar | 1.0.9 |
| giltigt sydafrikanskt ID | 1.0.3 |
| vf-oss-mall | 1.0.4, 1.0.3, 1.0.2, 1.0.1 |
| vite-plugin-httpfile | 0.2.1 |
| vue-webbläsaruppdatering-nuxt | 1.0.5 |
| webbskrapa-mcp | 1.1.4 |
| webbtyper-htmlx | 0.1.1 |
| webbtyper-lit | 0.1.1 |
| webpack-loader-httpfile | 0.2.1 |
| wellness-expert-ng-galleri | 5.1.1 |
| jävel | 1.0.9, 1.0.10 |
| zapier-async-lagring | 1.0.3, 1.0.2, 1.0.1 |
| zapier-plattform-cli | 18.0.4, 18.0.3, 18.0.2 |
| zapier-plattformskärna | 18.0.4, 18.0.3, 18.0.2 |
| zapier-plattformsschema | 18.0.4, 18.0.3, 18.0.2 |
| Zapier-skript | 7.8.3, 7.8.4 |
| zuper-cli | 1.0.1 |
| zuper-sdk | 1.0.57 |
| zuper-stream | 2.0.9 |





