Aikido

Mini Shai-Hulud ist zurück: npm-Wurm befällt über 160 Pakete, darunter Mistral und Tanstack

Verfasst von
Raphael Silva

Mini Shai-Hulud ist zurück. Wie ich bereits sagte, hatten wir das volle Ausmaß des Angriffs noch nicht gesehen.

Die npm-Kampagne, über die wir im April berichteten, als sie auf SAP-Pakete abzielte, hat sich nun zu einer wesentlich größeren Kompromittierung entwickelt. Unser Malware-Team entdeckte 373 bösartige Paketversions-Einträge über 169 npm-Paketnamen hinweg.

Das grundlegende Ziel ist immer noch dasselbe: Zugangsdaten von Entwickelnden-Maschinen und CI/CD-Runnern stehlen und diese Zugangsdaten dann nutzen, um weitere Pakete zu erreichen.

Was sich geändert hat, sind das Ausmaß und der Release-Pfad. Diese Welle sieht nicht nur so aus, als würde jemand manuell schlechte Versionen veröffentlichen. Die Malware ist darauf ausgelegt, in Build-Systemen zu laufen, npm- und GitHub-Zugriff zu stehlen und vertrauenswürdige Veröffentlichungspfade zu missbrauchen, um neue kompromittierte Pakete zu verbreiten.

Wenn Sie unseren früheren Beitrag gelesen haben, Mini Shai-Hulud Targets SAP npm Packages With a Bun-Based Secret Stealer, ist dies die Fortsetzung: dieselbe Idee, aber mit einem viel größeren Blast Radius.

Was geschah

TanStack ist immer noch einer der sichtbarsten Cluster, aber das ist nicht mehr die ganze Geschichte. Der betroffene Satz umfasst nun Pakete aus @squawk, @tanstack, @uipath, @tallyui, @beproduct, @mistralai, @draftlab, @draftauth, @taskflow-corp, @tolka, und mehrere unscoped packages.

Die größten Cluster in dieser Kampagne sind:

  • @squawk: 87 Paket-Versions-Einträge
  • @tanstack: 83 Paket-Versions-Einträge
  • @uipath: 66 Paket-Versions-Einträge
  • unscoped packages: 39 Paket-Versions-Einträge
  • @tallyui: 30 Paket-Versions-Einträge
  • @beproduct: 18 Paket-Versions-Einträge

Diese Liste ist noch in Bewegung. Die vollständige Liste der betroffenen Pakete finden Sie am Ende des Blogs. Wichtig ist nicht nur die Anzahl der Pakete, sondern auch, wo sie ausgeführt werden. Diese Pakete werden wahrscheinlich in lokalen Entwicklerumgebungen, CI-Jobs, Release-Workflows und internen Build-Systemen installiert.

Wie die neue Welle funktioniert

In der SAP-Welle fügten die kompromittierten Pakete einen preinstall Hook hinzu, der ausgeführt wurde setup.mjs, der dann Bun nutzte, um eine große, verschleierte Payload namens execution.js.

Diese Welle nutzt einen leicht abweichenden Weg.

In kompromittierten TanStack-Paketen enthält der Paket-Tarball eine neue, verschleierte Datei im Paket-Root:

router_init.js

Das kompromittierte Paket fügt außerdem eine optionale Abhängigkeit hinzu, die auf ein auf GitHub gehostetes Paket verweist

"optionalDependencies": {
  "@tanstack/setup": "github:tanstack/router#79ac49eedf774dd4b0cfa308722bc463cfe5885c"
}

Diese Git-Abhängigkeit enthält eine prepare Skript:

"scripts": {
  "prepare": "bun run tanstack_runner.js && exit 1"
}

Das ist der Trick. npm führt während der Installation Lifecycle-Skripte für Git-Abhängigkeiten aus. Ein Paket, das wie eine normale Abhängigkeit aussieht, kann also unbemerkt auf eine GitHub-gehostete Abhängigkeit zugreifen und deren prepare Hook ausführen und die Payload ausführen.

Der && exit 1 am Ende ist ebenfalls interessant. Da die Abhängigkeit optional ist, kann ein Fehlschlag nach der Ausführung der Payload die Installation weniger verdächtig erscheinen lassen. Der bösartige Code wurde bereits ausgeführt, bevor npm die optionale Abhängigkeit als fehlgeschlagen behandelt wird.

Warum Trusted Publishing hier wichtig ist

Einer der unangenehmeren Aspekte dieser Welle ist die Nutzung von Trusted Publishing.

Trusted Publishing soll langlebige npm-Tokens aus Release-Workflows entfernen. Ein GitHub Actions Workflow kann OIDC verwenden, um ein kurzlebiges npm Publish Token anzufordern, das Paket zu veröffentlichen und die Provenienz an den Release anzuhängen.

Das ist gut, wenn der Workflow sauber ist.

Es ist viel schlimmer, wenn von Angreifern kontrollierter Code innerhalb des Workflows ausgeführt wird. An diesem Punkt muss der Angreifer möglicherweise überhaupt kein langlebiges npm-Token stehlen. Er kann die OIDC-Berechtigungen des Workflows nutzen, um während des Builds ein Publish Token zu prägen und von dort aus zu veröffentlichen.

Das bedeutet auch, dass Provenienz kein vollständiges Sicherheitssignal ist. Ein bösartiges Paket kann immer noch aus dem erwarteten GitHub Actions Workflow stammen, wenn dieser während des Releases missbraucht wurde.

Einfach ausgedrückt: Provenienz kann Ihnen sagen, wo das Paket gebaut wurde. Sie beweist jedoch nicht, dass der Build sicher war.

Was die Payload zu stehlen versucht

Die Payload ist für CI/CD- und Entwickelnde-Umgebungen konzipiert.

Sie sucht nach:

  • GitHub-Tokens
  • npm-Tokens
  • GitHub Actions OIDC-Tokens
  • AWS-Anmeldeinformationen und Instanz-Metadaten
  • Kubernetes Service-Account-Dateien
  • HashiCorp Vault-Tokens und lokale Vault-Endpunkte
  • Umgebungsvariablen
  • lokale Dateisystem-Secrets

Die Payload enthält auch eine Propagationslogik. Nach dem Diebstahl von Tokens versucht sie, diese zu nutzen, um Pakete zu finden, die das Opfer veröffentlichen kann, Paketarchive zu modifizieren, die bösartige Abhängigkeit zu injizieren, Versionen zu erhöhen und neue kompromittierte Releases zu veröffentlichen.

Das macht dies zu mehr als einem normalen Infostealer. Die Malware versucht nicht nur, vom aktuellen Opfer zu stehlen, sondern auch, dessen Release-Zugriff in den nächsten Infektionspfad umzuwandeln.

Was sich seit dem SAP-Angriff geändert hat

Die SAP-Welle war zwar kleiner in der Paketanzahl, hatte aber dennoch erhebliche Auswirkungen, da sie Enterprise-Build-Tools betraf.

Diese Welle ist breiter. TanStack-Pakete sind in modernen JavaScript-Anwendungen weit verbreitet, insbesondere im Bereich Routing und Full-Stack-React-Tools. Ein kompromittiertes Paket in diesem Teil des Abhängigkeitsbaums kann sich schnell an vielen Stellen ausbreiten.

Es gibt auch einige technische Änderungen:

  • die verwendeten SAP-Pakete setup.mjs und execution.js
  • die neuere TanStack-Welle verwendet router_init.js und eine GitHub-gehostete @tanstack/setup Abhängigkeit
  • die neuere Welle setzt stärker auf GitHub Actions, OIDC, npm publishing und package repacking
  • die Payload ist immer noch Bun-basiert und weiterhin auf das Stehlen von Secrets ausgerichtet

Das Muster ist jedoch dasselbe: Code-Ausführung während der Installation erlangen, Anmeldeinformationen stehlen und diese Anmeldeinformationen nutzen, um weitere Malware zu veröffentlichen.

Erkennung und Mitigation

Beginnen Sie mit Lockfiles und Paket-Caches.

Suchen Sie nach betroffenen Namespaces und Paketen:

  • @squawk/
  • @tanstack/
  • @uipath/
  • @tallyui/
  • @beproduct/nestjs-auth
  • @mistralai/
  • @draftauth/
  • @draftlab/
  • @taskflow-corp/cli
  • @tolka/cli
  • @ml-toolkit-ts/
  • @mesadev/
  • @dirigible-ai/sdk
  • @supersurkhet/
  • oben aufgeführte nicht-gescopte Pakete, einschließlich safe-action, ts-dna, cross-stitch, cmux-agent-mcp, agentwork-cli, git-branch-selector, wot-api, git-git-git, nextmove-mcp, und ml-toolkit-ts

Suchen Sie nach den neuen Payload-Dateien und Abhängigkeitsmarkern:

  • router_init.js
  • router_runtime.js
  • tanstack_runner.js
  • @tanstack/setup
  • github:tanstack/router#79ac49eedf774dd4b0cfa308722bc463cfe5885c
  • bun run tanstack_runner.js

Durchsuchen Sie CI-Logs nach:

  • unerwarteter Bun-Ausführung während npm install
  • Fehlern bei optionalen Abhängigkeiten im Zusammenhang mit @tanstack/setup
  • ausgehenden Verbindungen während der Abhängigkeitsinstallation
  • npm-Publish-Aktivität aus Workflows, die nicht hätten publizieren sollen
  • GitHub Actions OIDC-Token-Anfragen während unerwarteter Schritte

Wenn eine kompromittierte Paketversion auf einer Entwickelnden-Maschine oder einem CI-Runner ausgeführt wurde, rotieren Sie Secrets aus dieser Umgebung. Beschränken Sie sich nicht nur auf npm-Tokens.

Rotieren oder überprüfen Sie:

  • npm-Tokens und Zugriff auf die Paketveröffentlichung
  • GitHub PATs und GitHub Actions Secrets
  • Cloud-Zugangsdaten
  • Kubernetes Service-Account-Tokens
  • Vault-Tokens
  • Deployment-Secrets

Überprüfen Sie auch aktuelle npm-Veröffentlichungen, GitHub Actions-Läufe und Provenance Records. Ein gültiger Provenance Record sollte nicht als Beweis dafür angesehen werden, dass das Paket sauber ist.

Indikatoren für Kompromittierung

Dateien und Payloads:

  • router_init.js
  • router_runtime.js
  • tanstack_runner.js
  • router_init.js SHA-256: ab4fcadaec49c03278063dd269ea5eef82d24f2124a8e15d7b90f2fa8601266c
  • tanstack_runner.js SHA-256: 2ec78d556d696e208927cc503d48e4b5eb56b31abc2870c2ed2e98d6be27fc96

Paket-Marker:

  • @tanstack/setup
  • github:tanstack/router#79ac49eedf774dd4b0cfa308722bc463cfe5885c
  • prepare Skriptausführung bun run tanstack_runner.js
  • Payload-Datei auf Root-Ebene, die außerhalb des normalen Paketinhalts enthalten ist

Netzwerk- und Dienstindikatoren:

  • hxxp://filev2[.]getsession[.]org/file/
  • hxxp://169[.]254[.]169[.]254/latest/meta-data/iam/security-credentials/
  • hxxp://169[.]254[.]170[.]2
  • hxxps://registry[.]npmjs[.]org/-/npm/v1/tokens
  • vault[.]svc[.]cluster[.]local:8200

Kampagnen-Marker:

  • Ein Mini Shai-Hulud ist aufgetaucht
  • Repository-Namen im Dune-Stil, verwendet für Wurm-Output und Staging

Fazit

Mini Shai-Hulud hat sich von einem kleineren, SAP-fokussierten Vorfall zu einem breiteren npm Supply-Chain-Angriff entwickelt.

Die wichtige Lehre ist nicht nur, dass mehr Pakete kompromittiert wurden. Es ist vielmehr, dass die Malware so konzipiert ist, wie moderne Release-Systeme funktionieren. Sie läuft während der Installation, sucht nach CI/CD-Zugangsdaten, missbraucht GitHub- und npm-Veröffentlichungspfade und versucht, sich selbst in das nächste Paket zu schleusen.

Wenn eines der betroffenen Pakete in Ihrer Umgebung ausgeführt wurde, behandeln Sie die Maschine oder den Runner als kompromittiert, bis Secrets rotiert und die jüngste Veröffentlichungsaktivität überprüft wurde.

Wie Aikido dies erkennt

Wenn Sie ein Aikido-Benutzer sind, überprüfen Sie Ihren zentralen Feed und filtern Sie nach Malware-Problemen. Dies wird als kritisches Problem mit 100/100 angezeigt. Aikido führt nächtliche Rescans durch, aber wir empfehlen, jetzt einen manuellen Rescan auszulösen.

Wenn Sie noch kein Aikido-Benutzer sind, können Sie ein Konto erstellen und Ihre Repos verbinden. Unsere Malware-Abdeckung ist im kostenlosen Plan enthalten, keine Kreditkarte erforderlich.

Für eine umfassendere Abdeckung Ihres gesamten Teams bietet Aikidos Endpoint Protection Ihnen Transparenz und Kontrolle über die Softwarepakete, die auf den Geräten Ihres Teams installiert sind. Es deckt Browser-Erweiterungen, Code-Bibliotheken, IDE-Plugins und Build-Abhängigkeiten ab, alles an einem Ort. Stoppen Sie Malware, bevor sie installiert wird.

Für zukünftigen Schutz sollten Sie Aikido Safe Chain (Open Source) in Betracht ziehen. Safe Chain integriert sich in Ihren bestehenden Workflow, indem es npm-, npx-, yarn-, pnpm- und pnpx-Befehle abfängt und Pakete vor der Installation gegen Aikido Intel prüft.

Anhang: Betroffene Pakete und Versionen

Aktuelle Liste der von unserem Team identifizierten Pakete und Versionen:

  • @tanstack/history: 1.161.9, 1.161.12
  • @tanstack/react-router: 1.169.5, 1.169.8
  • @tanstack/router-core: 1.169.5, 1.169.8
  • @tanstack/router-utils: 1.161.11, 1.161.14
  • @tanstack/router-plugin: 1.167.38, 1.167.41
  • @tanstack/virtual-file-routes: 1.161.10, 1.161.13
  • @tanstack/router-generator: 1.166.45, 1.166.48
  • @tanstack/start-server-core: 1.167.33, 1.167.36
  • @tanstack/start-client-core: 1.168.5, 1.168.8
  • @tanstack/start-storage-context: 1.166.38, 1.166.41
  • @tanstack/start-plugin-core: 1.169.23, 1.169.26
  • @tanstack/react-start-server: 1.166.55, 1.166.58
  • @tanstack/react-start-client: 1.166.51, 1.166.54
  • @tanstack/start-fn-stubs: 1.161.9, 1.161.12
  • @tanstack/react-start: 1.167.68, 1.167.71
  • @tanstack/react-start-rsc: 0.0.47, 0.0.50
  • @mistralai/mistralai: 2.2.2, 2.2.3, 2.2.4
  • @tanstack/react-router-devtools: 1.166.16, 1.166.19
  • @tanstack/router-devtools-core: 1.167.6, 1.167.9
  • @tanstack/router-devtools: 1.166.16, 1.166.19
  • @tanstack/router-ssr-query-core: 1.168.3, 1.168.6
  • @tanstack/react-router-ssr-query: 1.166.15, 1.166.18
  • @tanstack/router-cli: 1.166.46, 1.166.49
  • @tanstack/zod-adapter: 1.166.12, 1.166.15
  • @tanstack/eslint-plugin-router: 1.161.9
  • @tanstack/router-vite-plugin: 1.166.53, 1.166.56
  • @tanstack/nitro-v2-vite-plugin: 1.154.12, 1.154.15
  • @mistralai/mistralai-gcp: 1.7.1, 1.7.2, 1.7.3
  • @tanstack/solid-router: 1.169.5, 1.169.8
  • @tanstack/solid-start: 1.167.65, 1.167.68
  • @tanstack/solid-start-client: 1.166.50, 1.166.53
  • @tanstack/solid-start-server: 1.166.54, 1.166.57
  • @tanstack/solid-router-devtools: 1.166.16, 1.166.19
  • @tanstack/start-static-server-functions: 1.166.44, 1.166.47
  • @tanstack/vue-router: 1.169.5, 1.169.8
  • @uipath/apollo-react: 4.24.5
  • @tanstack/solid-router-ssr-query: 1.166.15, 1.166.18
  • safe-action: 0.8.3, 0.8.4
  • @tanstack/valibot-adapter: 1.166.12, 1.166.15
  • @tanstack/vue-start: 1.167.61, 1.167.64
  • @uipath/apollo-wind: 2.16.2
  • @uipath/cli: 1.0.1
  • @tanstack/vue-start-server: 1.166.50, 1.166.53
  • @squawk/types: 0.8.2, 0.8.3, 0.8.4
  • @uipath/rpa-tool: 0.9.5
  • @squawk/mcp: 0.9.1, 0.9.2, 0.9.3, 0.9.4
  • @tanstack/vue-start-client: 1.166.46, 1.166.49
  • @squawk/weather: 0.5.6, 0.5.7, 0.5.8, 0.5.9
  • @squawk/airspace: 0.8.1, 0.8.2, 0.8.3, 0.8.4
  • @squawk/icao-registry-data: 0.8.4, 0.8.5, 0.8.6, 0.8.7
  • @tanstack/arktype-adapter: 1.166.12, 1.166.15
  • @squawk/flightplan: 0.5.2, 0.5.3, 0.5.4, 0.5.5
  • @squawk/airports: 0.6.2, 0.6.3, 0.6.4, 0.6.5
  • @mesadev/sdk: 0.28.3
  • @squawk/geo: 0.4.4, 0.4.5, 0.4.6, 0.4.7
  • @mesadev/rest: 0.28.3
  • @squawk/procedure-data: 0.7.3, 0.7.4, 0.7.5, 0.7.6
  • @squawk/navaid-data: 0.6.4, 0.6.5, 0.6.6, 0.6.7
  • @squawk/fix-data: 0.6.4, 0.6.5, 0.6.6, 0.6.7
  • @squawk/navaids: 0.4.2, 0.4.3, 0.4.4, 0.4.5
  • @squawk/fixes: 0.3.2, 0.3.3, 0.3.4, 0.3.5
  • @squawk/airport-data: 0.7.4, 0.7.5, 0.7.6, 0.7.7
  • @squawk/airway-data: 0.5.4, 0.5.5, 0.5.6, 0.5.7
  • @squawk/units: 0.4.3, 0.4.4, 0.4.5, 0.4.6
  • @squawk/procedures: 0.5.2, 0.5.3, 0.5.4, 0.5.5
  • @squawk/airways: 0.4.2, 0.4.3, 0.4.4, 0.4.5
  • @squawk/icao-registry: 0.5.2, 0.5.3, 0.5.4, 0.5.5
  • @uipath/apollo-core: 5.9.2
  • @squawk/notams: 0.3.6, 0.3.7, 0.3.8, 0.3.9
  • @uipath/filesystem: 1.0.1
  • @uipath/solutionpackager-tool-core: 0.0.34
  • @squawk/flight-math: 0.5.4, 0.5.5, 0.5.6, 0.5.7
  • @squawk/airspace-data: 0.5.3, 0.5.4, 0.5.5, 0.5.6
  • @mistralai/mistralai-azure: 1.7.1, 1.7.2, 1.7.3
  • @uipath/solution-tool: 1.0.1
  • @tanstack/eslint-plugin-start: 0.0.4, 0.0.7
  • @uipath/maestro-tool: 1.0.1
  • @uipath/codedapp-tool: 1.0.1
  • @uipath/agent-tool: 1.0.1
  • @draftlab/auth: 0.24.1, 0.24.2
  • @uipath/orchestrator-tool: 1.0.1
  • @uipath/integrationservice-tool: 1.0.2
  • @taskflow-corp/cli: 0.1.24, 0.1.25, 0.1.26, 0.1.27, 0.1.28, 0.1.29
  • @tanstack/vue-router-ssr-query: 1.166.15, 1.166.18
  • @uipath/rpa-legacy-tool: 1.0.1
  • @uipath/vertical-solutions-tool: 1.0.1
  • @uipath/flow-tool: 1.0.2
  • @uipath/codedagent-tool: 1.0.1
  • @uipath/common: 1.0.1
  • @uipath/resource-tool: 1.0.1
  • @uipath/auth: 1.0.1
  • @uipath/docsai-tool: 1.0.1
  • @uipath/case-tool: 1.0.1
  • @uipath/api-workflow-tool: 1.0.1
  • @tanstack/vue-router-devtools: 1.166.16, 1.166.19
  • @uipath/test-manager-tool: 1.0.2
  • @uipath/robot: 1.3.4
  • @uipath/traces-tool: 1.0.1
  • @uipath/agent-sdk: 1.0.2
  • @uipath/integrationservice-sdk: 1.0.2
  • @uipath/maestro-sdk: 1.0.1
  • @uipath/data-fabric-tool: 1.0.2
  • @mesadev/saguaro: 0.4.22
  • @uipath/tasks-tool: 1.0.1
  • @uipath/insights-tool: 1.0.1
  • @uipath/insights-sdk: 1.0.1
  • @uipath/uipath-python-bridge: 1.0.1
  • @draftlab/db: 0.16.1
  • @uipath/ap-chat: 1.5.7
  • @uipath/project-packager: 1.1.16
  • @uipath/packager-tool-case: 0.0.9
  • @uipath/packager-tool-workflowcompiler-browser: 0.0.34
  • @uipath/packager-tool-connector: 0.0.19
  • @uipath/packager-tool-workflowcompiler: 0.0.16
  • @uipath/packager-tool-webapp: 1.0.6
  • @uipath/packager-tool-apiworkflow: 0.0.19
  • @uipath/packager-tool-functions: 0.1.1
  • ts-dna: 3.0.1, 3.0.2, 3.0.3, 3.0.4
  • @uipath/widget.sdk: 1.2.3
  • @uipath/resources-tool: 0.1.11
  • @uipath/agent.sdk: 0.0.18
  • cross-stitch: 1.1.3, 1.1.4, 1.1.5, 1.1.6
  • @uipath/codedagents-tool: 0.1.12
  • @uipath/aops-policy-tool: 0.3.1
  • @uipath/solution-packager: 0.0.35
  • @draftlab/auth-router: 0.5.1, 0.5.2
  • cmux-agent-mcp: 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8
  • agentwork-cli: 0.1.4, 0.1.5
  • @uipath/packager-tool-bpmn: 0.0.9
  • @draftauth/core: 0.13.1, 0.13.2
  • @dirigible-ai/sdk: 0.6.2, 0.6.3
  • @uipath/packager-tool-flow: 0.0.19
  • git-branch-selector: 1.3.3, 1.3.4, 1.3.5, 1.3.6, 1.3.7
  • wot-api: 0.8.1, 0.8.2, 0.8.3, 0.8.4
  • git-git-git: 1.0.8, 1.0.9, 1.0.10, 1.0.11, 1.0.12
  • @beproduct/nestjs-auth: 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8, 0.1.9, 0.1.10, 0.1.11, 0.1.12, 0.1.13, 0.1.14, 0.1.15, 0.1.16, 0.1.17, 0.1.18, 0.1.19
  • @ml-toolkit-ts/xgboost: 1.0.3, 1.0.4
  • nextmove-mcp: 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7
  • ml-toolkit-ts: 1.0.4, 1.0.5
  • @uipath/telemetry: 0.0.7
  • @draftauth/client: 0.2.1, 0.2.2
  • @ml-toolkit-ts/preprocessing: 1.0.2, 1.0.3
  • @tallyui/connector-medusa: 1.0.1, 1.0.2, 1.0.3
  • @uipath/tool-workflowcompiler: 0.0.12
  • @uipath/vss: 0.1.6
  • @tallyui/theme: 0.2.1, 0.2.2, 0.2.3
  • @tallyui/storage-sqlite: 0.2.1, 0.2.2, 0.2.3
  • @uipath/solutionpackager-sdk: 1.0.11
  • @tallyui/connector-vendure: 1.0.1, 1.0.2, 1.0.3
  • @tallyui/core: 0.2.1, 0.2.2, 0.2.3
  • @tallyui/connector-woocommerce: 1.0.1, 1.0.2, 1.0.3
  • @tallyui/components: 1.0.1, 1.0.2, 1.0.3
  • @uipath/ui-widgets-multi-file-upload: 1.0.1
  • @tallyui/pos: 0.1.1, 0.1.2, 0.1.3
  • @tallyui/database: 1.0.1, 1.0.2, 1.0.3
  • @supersurkhet/cli: 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.6, 0.0.7
  • @tallyui/connector-shopify: 1.0.1, 1.0.2, 1.0.3
  • @tolka/cli: 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6
  • @supersurkhet/sdk: 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.6, 0.0.7
  • @uipath/access-policy-tool: 0.3.1
  • @uipath/context-grounding-tool: 0.1.1
  • @uipath/gov-tool: 0.3.1
  • @uipath/admin-tool: 0.1.1
  • @uipath/identity-tool: 0.1.1
  • @uipath/llmgw-tool: 1.0.1
  • @uipath/resourcecatalog-tool: 0.1.1
  • @uipath/functions-tool: 1.0.1
  • @uipath/access-policy-sdk: 0.3.1
  • @uipath/platform-tool: 1.0.1

Teilen:

https://www.aikido.dev/blog/mini-shai-hulud-is-back-tanstack-compromised

4.7/5
Falschpositive Ergebnisse leid?

Probieren Sie Aikido, wie 100.000 andere.
Jetzt starten
Erhalten Sie eine personalisierte Führung

Von über 100.000 Teams vertraut

Jetzt buchen
Scannen Sie Ihre App nach IDORs und realen Angriffspfaden

Von über 100.000 Teams vertraut

Scan starten
Erfahren Sie, wie KI-Penetrationstests Ihre App testen

Von über 100.000 Teams vertraut

Testen starten

Sicherheit jetzt implementieren

Sichern Sie Ihren Code, Ihre Cloud und Ihre Laufzeit in einem zentralen System.
Finden und beheben Sie Schwachstellen schnell und automatisch.

Keine Kreditkarte erforderlich | Scan-Ergebnisse in 32 Sek.