Table of Contents
TL;DR
On May 27, 2026, two npm accounts published 164 malicious packages across five scoped namespaces targeting what appear to be a cloud platform provider and a financial services company. Every package is version 99.99.99 and carries a postinstall payload that downloads a second-stage script, spawns it as a detached process, and sends the victim’s full environment variables to hxxps://oob[.]moika[.]tech/report.
Impact:
- Full
process.envexfiltration on install: API keys, tokens, secrets, and any credentials present in the developer or CI environment - Second-stage payload executes as a detached process and persists after
npm installexits - Targets cloud platform and financial services namespaces — any developer or CI pipeline resolving packages from the public registry is at risk if scopes are not locked to a private registry
Indicators of Compromise:
- npm accounts:
mr.4nd3r50n,pik-libs - C2 report endpoint:
hxxps://oob[.]moika[.]tech/report - Second-stage payload:
hxxps://oob[.]moika[.]tech/payload/{mac|win|linux}.js - Shared secret:
l95HdDaz3kQx1Zsg3WxH6HvKANf51RY1(sent asX-SecretHTTP header) - Temp file created:
._cloudplatform-single-spa_init.jsin OS temp directory - Version
99.99.99in any of the five targeted scopes
The Campaign
SafeDep detected both publish events on May 27, 2026. Account mr.4nd3r50n began at 21:15 UTC, publishing 139 packages across two scopes. Account pik-libs followed 22 minutes later at 21:37 UTC, publishing 25 packages across three scopes. The 22-minute gap, identical payload code, and shared hardcoded secret all point to one actor operating both accounts.
Targeted Scopes
| Account | Scope | Packages | Target profile |
|---|---|---|---|
mr.4nd3r50n | @cloudplatform-single-spa | 122 | Cloud platform micro-frontend modules |
mr.4nd3r50n | @mlspace | 17 | ML platform / AI workspace modules |
pik-libs | @car-loans | 19 | Car loan application micro-frontends |
pik-libs | @fb-deposit | 4 | Banking deposit form modules |
pik-libs | @debit-ib | 2 | Debit and internet banking forms |
The package names are not generic squats. They mirror specific internal service names: @cloudplatform-single-spa/certificate-manager, @cloudplatform-single-spa/vpn, @cloudplatform-single-spa/ml-inference, @mlspace/experiments-monitoring, @car-loans/mobile-car-loans-application, @fb-deposit/form-deposit-auth. The specificity (billing, VPN, Kubernetes, ML inference, IAM, loan flows, deposit forms, debit card applications) indicates the actor profiled each organization’s internal package ecosystem before publishing.
All packages carry the same fabricated description: "Internal configuration loader with env, vault and remote config support".
The Bug Bounty Marker
Two packages from mr.4nd3r50n — @cloudplatform-single-spa/logaas and @mlspace/model-registry — carry no active payload. Their description reads "BugBounty testing by mr4nd3r50n". This pattern, placing inert probe packages alongside active stealers, appears in other campaigns where the actor tests whether internal names resolve to the public registry before deploying the payload. Whatever the intent, the remaining 162 packages executed real credential-stealing code on install.
Payload Analysis
Package Impersonation
The README for each package is crafted to pass casual inspection. Both samples follow an identical template — the package name, scope, and domain are swapped but the structure is verbatim:
Internal package — Platform Engineering TeamDocs: https://docs.car-loans.io/platform/application-affIssues: https://jira.car-loans.io/projects/PLATFORM
Internal configuration loader with env, vault and remote config support
Installation# Make sure .npmrc points to the internal registry:# registry=https://npm.car-loans.ioThe fabricated docs and Jira URLs (docs.car-loans.io, jira.car-loans.io) mirror what real internal tooling at these organizations looks like. The .npmrc comment does the most work: it tells developers to point to a private registry (the correct security practice), making the package read as a legitimate internal artifact already published to the right place.
The README also includes a fake version history showing 2.0.0 and 2.1.0 entries with plausible changelogs. The malicious 99.99.99 is listed simply as “Added ARM64 support / Improved error handling / Updated TypeScript types.”
The Telemetry Cover Story
The most deliberate social engineering in these packages is the “telemetry” framing:
TelemetryOn install, this package sends anonymous telemetry to telemetry.car-loans.iofor environment compatibility monitoring.
Disable: CAR_LOANS_NO_TELEMETRY=1 npm installThe cloud platform scope uses telemetry.cloudplatform-single-spa.io and CLOUDPLATFORM_SINGLE_SPA_NO_TELEMETRY=1. A developer who notices the outbound POST during install reads it as authorized internal telemetry. A security reviewer scanning for red flags finds a disclosure and an opt-out, both hallmarks of legitimate telemetry practice. The actual exfiltration goes to hxxps://oob[.]moika[.]tech/report, not the telemetry domain in the README, but the framing preempts suspicion before anyone looks that closely.
Execution Trigger
All active packages declare the payload through npm’s postinstall lifecycle hook in package.json:
The hook runs scripts/postinstall.js immediately after npm install completes, before control returns to the developer or CI runner.
Postinstall Flow
The payload executes in six steps:
- Delay — pauses for 3 seconds to evade automated sandboxes that time out short-lived processes
- OS detection — identifies the platform as
mac,win, orlinux - Second-stage download — fetches
hxxps://oob[.]moika[.]tech/payload/{mac|win|linux}.jsand writes it to the OS temp directory as._cloudplatform-single-spa_init.js - Detached spawn — launches the downloaded script as a separate Node.js process with
detached: true, so it continues running afternpm installexits - Exfiltration — POSTs to
hxxps://oob[.]moika[.]tech/reportwith the full contents ofprocess.envplus hostname, username, platform, architecture, current working directory, and Node.js version - Fallback beacon — if the second-stage download fails, sends the same system data directly without the second stage
Infrastructure Constants
Three values are hardcoded across all 162 active packages:
CALLBACK_URL = https://oob.moika.tech/reportPAYLOAD_BASE = https://oob.moika.tech/payloadSECRET = l95HdDaz3kQx1Zsg3WxH6HvKANf51RY1The SECRET value is sent as an X-Secret header on every outbound request. Its presence across both mr.4nd3r50n and pik-libs packages, spanning two organizations and two publishing sessions, is the clearest indicator that both campaigns share a single author.
What Gets Exfiltrated
process.env on a developer workstation or CI runner typically holds NPM_TOKEN, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, GITHUB_TOKEN, database URLs, and any other credentials injected as environment variables. The payload sends the raw environment object with no key filtering. On a CI pipeline, this is effectively the full set of deployment secrets.
The 3-second delay and detached spawn mean credential theft and second-stage execution finish whether or not the developer notices the pause.
Scale and Comparison
164 packages across five namespaces in under 25 minutes. The sl4x0 campaign took nine months to publish 92 packages against 20-plus organizations. The Genoma UI campaign used three packages in April 2026.
Two things separate this campaign from most dependency confusion probes.
Most probes send DNS beacons with hostname and username — enough to confirm a hit, not enough to do damage. This payload sends raw process.env. An npm install on a CI runner with active cloud credentials is a full credential compromise.
Fetching a second stage at runtime keeps the initial package small and defers the actual capability. A registry scanner or developer reviewing the tarball sees the first stage only, and misses the real behavior. The Burp Collaborator dependency confusion technique Snyk researchers used in 2025 was single-stage; this campaign separates probe from execution.
Mitigations
- Lock all five targeted scopes (
@cloudplatform-single-spa,@mlspace,@car-loans,@fb-deposit,@debit-ib) to a private registry in.npmrc. Without a scope-locked registry, npm will resolve to the public version when the private one is unavailable. - Rotate any secrets that were present in
process.envon systems that installed99.99.99versions from these scopes. - Search process lists and the OS temp directory for
._cloudplatform-single-spa_init.js. Check network logs for outbound connections tooob.moika.tech. - Run
vetagainst your lockfiles to surface malicious packages before the next install cycle.
Affected Packages
All 164 packages are searchable below. The has_postinstall_payload column identifies the two inert probe packages (no) versus the 162 active stealers (yes).
| ecosystem | name | version | npm_user | has_postinstall_payload | published | |
|---|---|---|---|---|---|---|
| 1 | npm | @cloudplatform-single-spa/logaas | 99.99.99 | mr.4nd3r50n | no | 2026-05-27 |
| 2 | npm | @mlspace/model-registry | 99.99.99 | mr.4nd3r50n | no | 2026-05-27 |
| 3 | npm | @cloudplatform-single-spa/paas-kafka | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 4 | npm | @cloudplatform-single-spa/postgre | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 5 | npm | @cloudplatform-single-spa/search | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 6 | npm | @cloudplatform-single-spa/svp-lbaas | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 7 | npm | @mlspace/shared-storage | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 8 | npm | @mlspace/experiments-monitoring | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 9 | npm | @cloudplatform-single-spa/ml-ai-agents-mcp-server | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 10 | npm | @cloudplatform-single-spa/key-manager | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 11 | npm | @cloudplatform-single-spa/ml-inference-comfy-run | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 12 | npm | @cloudplatform-single-spa/evocs | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 13 | npm | @cloudplatform-single-spa/marketplace-apps | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 14 | npm | @cloudplatform-single-spa/anti-ddos | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 15 | npm | @cloudplatform-single-spa/billing | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 16 | npm | @cloudplatform-single-spa/dataplatform-cloudberry | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 17 | npm | @cloudplatform-single-spa/certificate-manager | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 18 | npm | @cloudplatform-single-spa/cloudia | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 19 | npm | @cloudplatform-single-spa/dataplatform-clusters | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 20 | npm | @cloudplatform-single-spa/installations | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 21 | npm | @cloudplatform-single-spa/ml-ai-agents-ide | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 22 | npm | @cloudplatform-single-spa/magic-router | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 23 | npm | @cloudplatform-single-spa/svp-tasks | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 24 | npm | @mlspace/model-monitoring | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 25 | npm | @mlspace/profile | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 26 | npm | @mlspace/dtransfer | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 27 | npm | @cloudplatform-single-spa/svp-pipeline | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 28 | npm | @cloudplatform-single-spa/audit-log | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 29 | npm | @cloudplatform-single-spa/advanced | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 30 | npm | @cloudplatform-single-spa/container-registry | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 31 | npm | @cloudplatform-single-spa/datagrid | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 32 | npm | @cloudplatform-single-spa/dataplatform | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 33 | npm | @cloudplatform-single-spa/paas-redis | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 34 | npm | @cloudplatform-single-spa/rabbitmq | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 35 | npm | @cloudplatform-single-spa/smk | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 36 | npm | @cloudplatform-single-spa/svp-agent-backup | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 37 | npm | @cloudplatform-single-spa/svp-draas | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 38 | npm | @cloudplatform-single-spa/svp-bare-metal-servers | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 39 | npm | @cloudplatform-single-spa/mlspace-access-request | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 40 | npm | @cloudplatform-single-spa/svp-baas | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 41 | npm | @cloudplatform-single-spa/ml-rag | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 42 | npm | @cloudplatform-single-spa/bare-metal-servers | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 43 | npm | @cloudplatform-single-spa/corax | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 44 | npm | @cloudplatform-single-spa/ml-ai-agents-system-prompt | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 45 | npm | @cloudplatform-single-spa/managed-identities | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 46 | npm | @cloudplatform-single-spa/dataplatform-trino | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 47 | npm | @cloudplatform-single-spa/ml-finetuning | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 48 | npm | @cloudplatform-single-spa/ml-foundation-models | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 49 | npm | @cloudplatform-single-spa/ml-inference | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 50 | npm | @cloudplatform-single-spa/edge-manager | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 51 | npm | @cloudplatform-single-spa/enterprise | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 52 | npm | @cloudplatform-single-spa/event-bus | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 53 | npm | @cloudplatform-single-spa/dataplatform-bi | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 54 | npm | @mlspace/dtransfer-history | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 55 | npm | @mlspace/env-jobs | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 56 | npm | @cloudplatform-single-spa/vpc | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 57 | npm | @cloudplatform-single-spa/vcenter-manager | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 58 | npm | @cloudplatform-single-spa/vcenter-virtual-machines | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 59 | npm | @cloudplatform-single-spa/vdi | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 60 | npm | @cloudplatform-single-spa/timescale-db | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 61 | npm | @cloudplatform-single-spa/vpn | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 62 | npm | @mlspace/env-jupyter-server | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 63 | npm | @mlspace/file-manager | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 64 | npm | @cloudplatform-single-spa/employees | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 65 | npm | @cloudplatform-single-spa/cp-api-gw | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 66 | npm | @cloudplatform-single-spa/evolution | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 67 | npm | @cloudplatform-single-spa/dataplatform-connections | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 68 | npm | @cloudplatform-single-spa/security-groups | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 69 | npm | @cloudplatform-single-spa/self-service | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 70 | npm | @cloudplatform-single-spa/notification-gateway | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 71 | npm | @cloudplatform-single-spa/resource-manager | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 72 | npm | @cloudplatform-single-spa/solutions | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 73 | npm | @cloudplatform-single-spa/static-page | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 74 | npm | @cloudplatform-single-spa/svp-images | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 75 | npm | @cloudplatform-single-spa/svp-managed-kubernetes | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 76 | npm | @cloudplatform-single-spa/svp-s3-storage | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 77 | npm | @cloudplatform-single-spa/monaas-ui | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 78 | npm | @cloudplatform-single-spa/vmmanager | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 79 | npm | @mlspace/inference-deploy | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 80 | npm | @mlspace/docker-registry | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 81 | npm | @cloudplatform-single-spa/agreements | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 82 | npm | @cloudplatform-single-spa/dataplatform-flink | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 83 | npm | @cloudplatform-single-spa/dataplatform-metastore | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 84 | npm | @cloudplatform-single-spa/dataplatform-nessie | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 85 | npm | @cloudplatform-single-spa/dns | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 86 | npm | @cloudplatform-single-spa/document-db | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 87 | npm | @cloudplatform-single-spa/business-solutions | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 88 | npm | @cloudplatform-single-spa/onboarding | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 89 | npm | @cloudplatform-single-spa/redirect | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 90 | npm | @cloudplatform-single-spa/opensearch | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 91 | npm | @cloudplatform-single-spa/marketplace-main | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 92 | npm | @cloudplatform-single-spa/ml-ai-agents-agent-system | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 93 | npm | @cloudplatform-single-spa/ml-ai-agents-marketplace | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 94 | npm | @cloudplatform-single-spa/ml-inference-router | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 95 | npm | @mlspace/env-gitlab | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 96 | npm | @cloudplatform-single-spa/svp-anti-affinity | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 97 | npm | @cloudplatform-single-spa/virtual-machines | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 98 | npm | @cloudplatform-single-spa/vmware-draas | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 99 | npm | @mlspace/connectors | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 100 | npm | @cloudplatform-single-spa/support | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 101 | npm | @cloudplatform-single-spa/svp-vm-migration | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 102 | npm | @cloudplatform-single-spa/svp-gitaas | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 103 | npm | @mlspace/inference-build | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 104 | npm | @mlspace/experiments | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 105 | npm | @cloudplatform-single-spa/clickhouse | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 106 | npm | @cloudplatform-single-spa/cloud-dns | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 107 | npm | @cloudplatform-single-spa/observability | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 108 | npm | @cloudplatform-single-spa/pangolin | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 109 | npm | @cloudplatform-single-spa/dataplatform-spark | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 110 | npm | @cloudplatform-single-spa/disks | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 111 | npm | @cloudplatform-single-spa/ml-ai-agents-trigger | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 112 | npm | @cloudplatform-single-spa/arenadata-db | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 113 | npm | @cloudplatform-single-spa/administration | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 114 | npm | @cloudplatform-single-spa/svp-tags | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 115 | npm | @cloudplatform-single-spa/svp-vdi | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 116 | npm | @cloudplatform-single-spa/serverless-containers | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 117 | npm | @cloudplatform-single-spa/ml-inference-docker-run | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 118 | npm | @cloudplatform-single-spa/ml-inference-model-run | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 119 | npm | @cloudplatform-single-spa/marketplace-gigachat | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 120 | npm | @cloudplatform-single-spa/virtual-ip | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 121 | npm | @mlspace/allocations | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 122 | npm | @cloudplatform-single-spa/monitoring | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 123 | npm | @cloudplatform-single-spa/aifactory-notebooks | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 124 | npm | @cloudplatform-single-spa/airflow | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 125 | npm | @cloudplatform-single-spa/floating-ips | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 126 | npm | @cloudplatform-single-spa/iam | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 127 | npm | @cloudplatform-single-spa/cnapp-ui | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 128 | npm | @cloudplatform-single-spa/ml-ai-agents-evo-claw | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 129 | npm | @cloudplatform-single-spa/base-static-page | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 130 | npm | @cloudplatform-single-spa/magic-bridge | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 131 | npm | @cloudplatform-single-spa/ml-ai-agents-agent | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 132 | npm | @cloudplatform-single-spa/profile | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 133 | npm | @cloudplatform-single-spa/secret-manager | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 134 | npm | @cloudplatform-single-spa/svp-gateways | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 135 | npm | @cloudplatform-single-spa/ssh-keys | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 136 | npm | @cloudplatform-single-spa/svp-interfaces | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 137 | npm | @cloudplatform-single-spa/subnets | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 138 | npm | @cloudplatform-single-spa/ml-inference-marketplace | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 139 | npm | @cloudplatform-single-spa/vpc-endpoint | 99.99.99 | mr.4nd3r50n | yes | 2026-05-27 |
| 140 | npm | @fb-deposit/form-deposit-auth | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 141 | npm | @car-loans/wait-task-props | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 142 | npm | @car-loans/referrer-module | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 143 | npm | @car-loans/restore | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 144 | npm | @car-loans/mobile-car-loans-application | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 145 | npm | @car-loans/desktop-car-loans-application | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 146 | npm | @fb-deposit/form-deposit-calc | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 147 | npm | @car-loans/online-scoring-aff | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 148 | npm | @car-loans/application-aff | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 149 | npm | @car-loans/deal | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 150 | npm | @car-loans/gus | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 151 | npm | @car-loans/save | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 152 | npm | @car-loans/close-flow-module | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 153 | npm | @fb-deposit/form-savings-account | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 154 | npm | @car-loans/deal-aff | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 155 | npm | @debit-ib/mobile-debit-ib-additional-card-form | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 156 | npm | @car-loans/applicaion-aff | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 157 | npm | @car-loans/general-feature-toggles | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 158 | npm | @car-loans/show-car-year-module | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 159 | npm | @debit-ib/desktop-debit-ib-additional-card-form | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 160 | npm | @fb-deposit/form-deposit | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 161 | npm | @car-loans/feature-toggles-module | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 162 | npm | @car-loans/general-analytics | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 163 | npm | @car-loans/online-sign-aff | 99.99.99 | pik-libs | yes | 2026-05-27 |
| 164 | npm | @car-loans/safe-storage-module | 99.99.99 | pik-libs | yes | 2026-05-27 |
| No matching rows | ||||||
- npm
- malware
- supply-chain
- dependency-confusion
Author
SafeDep Team
safedep.io
Share
The Latest from SafeDep blogs
Follow for the latest updates and insights on open source security & engineering

Inside MicrosoftSystem64: A Supply Chain RAT Exfiltrating to HuggingFace
Deep technical analysis of MicrosoftSystem64, an 81 MB Node.js SEA binary deployed via malicious npm packages. This RAT steals browser credentials, 80+ crypto wallet extensions, Telegram sessions,...

forge-jsxy: 22 Versions of an Actively Developed npm RAT
forge-jsxy picked up where the taken-down forge-jsx left off, publishing 22 versions over 22 days. Each release added new capabilities: crypto wallet scanning, Chromium extension theft, WebRTC data...

141 npm Packages Abuse Registry as Adware Hosting
npm account terminal3airport published 141 packages containing a web proxy unblocker disguised as tutoring websites. The packages load popunder ads, external monetization scripts, and Google...

Megalodon: Mass GitHub Repo Backdooring via CI Workflows
Over 5,700 malicious commits were pushed to GitHub repositories on May 18, 2026, replacing GitHub Actions workflows with base64-encoded secret exfiltration payloads. The "megalodon" campaign targeted...

Ship Code.
Not Malware.
Start free with open source tools on your machine. Scale to a unified platform for your organization.
