GitHub Advisory malware sweep, 3 November 2026

HighAdvisory sweepnpmPyPIRubyGems

52 packages from GitHub malware advisories published between 2 and 3 November 2026 (06:00 UTC). Headlines: npm and PyPI wallet stealers sending data to Discord webhooks, four fake MCP servers that probe cloud metadata for credentials, a Pydantic clone that downloads remote code, and a batch of crypto-SDK name squats.

Published 3 Nov 2026 · Updated 6 Nov 2026

At a glancemulti-2026-11-03-ghsa-malware-sweep
52
Packages tracked80 malicious versions

Every version named by the advisory is in the scanner, so a lockfile check finds it directly.

Severity
High
Type
Advisory sweep
Published
3 Nov 2026
Last updated
6 Nov 2026
Ecosystems
npmPyPIRubyGems
Detected by
GitHub Advisory Database, OpenSSF Package Analysis, Amazon Inspector, kam193
Also known as
GHSA 2026-11-03 batch

Advisory sweep. A dated batch of GitHub Advisory Database malware entries collected together. A sweep mixes kinds - typosquats, dependency-confusion probes, boilerplate takedowns with no published analysis, and occasionally real payloads - and its severity reflects the worst confirmed item, not the batch as a whole.

What happened

The full picture

GitHub published malware advisories for 52 packages in this window across npm, PyPI and RubyGems. Severity is high because the batch includes confirmed wallet stealers and credential-probing MCP servers; none of it is a hijack of a package people already depend on.

The probe cluster includes unscoped copies of well-known crypto SDK names (contracts-upgradeable, wallet-adapter-base, sol-wallet-adapter, axelarjs-sdk) that only send host details on install, plus dependency-confusion names lifted from a Meraki Android app bundle and a health-sector client portal.

Indicators named in the advisories

  • 121.199.24.94 and 121.199.24.94.nip.io (fake MCP servers)
  • oomcsn.cc (scdn-jquery remote script)
  • dbhmeq71af5395un3p70tujr84cuwuyg7.oast.me (probe callback)
infostealercrypto-wallet-draincredential-thefttyposquatdependency-confusion
Affected packages

52 packages 80 versions

These are usually pulled in as transitive dependencies rather than installed directly. Check your whole tree at once. It runs in your browser and nothing is uploaded.

Impact

What it does if you installed it

  • Cluster: droppers, RATs and remote-code loaders (malicious-package; advisory analysis published) (2 packages): pyprig, scdn-jquery. pyprig is a copy of Pydantic that downloads and runs extra code from a GitHub repository when models initialise; scdn-jquery 0.1.6 ships a browser script that loads remote code from oomcsn.cc into any site that serves it.
  • Cluster: information and wallet stealers (malicious-package; advisory analysis published) (5 packages): @johnruff215-dev/solana-wallet-tracker, @notrainer/nobtrainer-sdk, litecore-lib-ltc, self-v8, wallet-tracking. Advisories report these collect cryptocurrency wallet data or other sensitive files and send them to attacker-controlled Discord webhooks. litecore-lib-ltc imitates the legitimate litecore-lib.
  • Cluster: fake MCP server packages (malicious-package; advisory analysis published) (4 packages): @ifasn/md-doc-mcp, @ifasn/mdd-doc-mcp, @ifasn/mmd-doc-mcp, @ifasn/mmdd-doc-mcp. Published as Markdown-toolkit MCP servers, but on startup they query cloud instance-metadata services (AWS, GCP, Azure, Alibaba) for role credentials and report the results to 121.199.24.94. Treat any cloud host or CI runner that ran them as having exposed its instance credentials.
  • Cluster: trojanised Baileys WhatsApp library forks (malicious-package; advisory analysis published) (6 packages): @levvicode/baileys, @levvicode/libsignal-node, @maulenv/baileys, @mrlegendbot/baileys, @mrlegendbot/libsignal-node, @nuxzofficial/baileys. Forks of the Baileys WhatsApp Web library republished under new names. Advisories report they silently subscribe the user's WhatsApp account to channels chosen by the publisher, or pull an unpinned libsignal dependency from a third-party source that can change at any time. Use the official @whiskeysockets/baileys only.
  • Cluster: dependency-confusion and pentest probes (dependency-confusion; beacon only) (11 packages): @mobile-platform/magnetic-components, axelarjs-sdk, bigbob22-test, calculator-preinstall-chain-demo, calculator-preinstall-hook-demo, contracts-upgradeable and 5 more. These send only host details (hostname, username, working directory) to a callback host, mostly under internal-looking or squatted names at inflated versions. No payload beyond the beacon was reported, but a hit means your build resolved a public package where you expected a private one.
  • Cluster: CWE-506 takedowns with no published analysis (malicious-package; likely probes or lures) (24 packages): @bigdevin55/calculator-install-demo, @bigdevin55/calculator-install-hook, @levvicode/eslint-config, @utilitycraft/tailwindcss-motion-atelier, atlassian-wallboard-plugin1, aytidaoffc, bfvkjmeikpwhqxc, claims-ac1, dependencykfee-2, intercom-react-native-example-e2e-tests and 14 more. GitHub published only its standard "treat the host as compromised" notice for these, with no payload analysis.
What to do

Clean-up steps

  1. Check your lockfiles - search package-lock.json, yarn.lock, pnpm-lock.yaml, requirements*.txt, poetry.lock, uv.lock and Gemfile.lock for every package and version listed below, or upload them to the DependencyWatch scanner
  2. Stealers, loaders and RATs - on any hit, isolate the host, rebuild it from a clean image, and rotate every credential it could reach from a different machine
  3. Probes and spam - remove the package, rebuild, and check whether your registry configuration lets public packages shadow internal or scoped names
  4. Cloud credentials - if any @ifasn/*-doc-mcp package ran on a cloud VM or CI runner, rotate that host's instance role credentials and review their recent use
  5. Web front ends - if a site served files from scdn-jquery, remove it and check for injected iframes
  6. Block - 121.199.24.94, 121.199.24.94.nip.io and oomcsn.cc
References

Sources

multi-2026-11-03-ghsa-malware-sweepBack to incidentsSubmit a correction
Am I affected?

Check your lockfile against this and every other incident.

Paste a lockfile and it is matched on your own device against every compromised version we track. Nothing is uploaded and there is no account.