GitHub Advisory malware sweep, 3 November 2026
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
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
- Source
- github.com
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.
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.94and121.199.24.94.nip.io(fake MCP servers)oomcsn.cc(scdn-jqueryremote script)dbhmeq71af5395un3p70tujr84cuwuyg7.oast.me(probe callback)
52 packages 80 versions
- npm@bigdevin55/calculator-install-demo*→
- npm@bigdevin55/calculator-install-hook*→
- npm@ifasn/md-doc-mcp1.0.31.0.41.0.5→
- npm@ifasn/mdd-doc-mcp1.0.71.0.82.0.6→
- npm@ifasn/mmd-doc-mcp1.0.01.0.2→
- npm@ifasn/mmdd-doc-mcp1.0.11.0.31.0.41.0.4-21.0.51.0.61.1.01.1.11.1.21.1.31.1.51.1.61.1.71.1.81.1.9-22.0.12.0.42.1.1→
- npm@johnruff215-dev/solana-wallet-tracker*→
- npm@levvicode/baileys*→
- npm@levvicode/eslint-config*→
- npm@levvicode/libsignal-node*→
- npm@maulenv/baileys*→
- npm@mobile-platform/magnetic-components0.0.10.0.20.0.3→
- npm@mrlegendbot/baileys*→
- npm@mrlegendbot/libsignal-node*→
- npm@notrainer/nobtrainer-sdk*→
- npm@nuxzofficial/baileys*→
- npm@utilitycraft/tailwindcss-motion-atelier*→
- npmatlassian-wallboard-plugin1*→
- npmaxelarjs-sdk*→
- npmaytidaoffc*→
- npmbfvkjmeikpwhqxc0.0.0-stage1.0.01.0.1→
- npmbigbob22-test1.0.0→
- npmcalculator-preinstall-chain-demo*→
- npmcalculator-preinstall-hook-demo*→
- npmclaims-ac1*→
- npmcontracts-upgradeable*→
- npmcutekitten-test1.0.1→
- npmdependencykfee-21.0.0→
- RubyGemsintercom-react-native-example-e2e-tests1.0.1→
- npminternal-renderers*→
- npmjustinofficial*→
- npmlevvleys*→
- npmlitecore-lib-ltc*→
- npmms-client-portal*→
- npmnachles*→
- npmnuxzofficial*→
- npmpandafortunerush*→
- npmpersona-ai-sdk1.0.0→
- PyPIpyprig1.2.01.2.11.2.2→
- npmscdn-jquery*→
- npmself-v8*→
- RubyGemsshoaib-unity1.0.1→
- npmsol-wallet-adapter*→
- npmtailwind-animate-engine*→
- npmtailwind-animate-final*→
- npmtailwind-animate-test*→
- npmtailwind-animatrix*→
- npmtailwindcss-animate-bridge*→
- npmunjailed*→
- npmwallet-adapter-base*→
- PyPIwallet-tracking*→
- npmzystcdemo1.0.0→
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.
What it does if you installed it
- Cluster: droppers, RATs and remote-code loaders (malicious-package; advisory analysis published) (2 packages):
pyprig,scdn-jquery.pyprigis a copy of Pydantic that downloads and runs extra code from a GitHub repository when models initialise;scdn-jquery0.1.6 ships a browser script that loads remote code fromoomcsn.ccinto 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-ltcimitates the legitimatelitecore-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 to121.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 unpinnedlibsignaldependency from a third-party source that can change at any time. Use the official@whiskeysockets/baileysonly. - 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-upgradeableand 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-testsand 14 more. GitHub published only its standard "treat the host as compromised" notice for these, with no payload analysis.
Clean-up steps
- Check your lockfiles - search
package-lock.json,yarn.lock,pnpm-lock.yaml,requirements*.txt,poetry.lock,uv.lockandGemfile.lockfor every package and version listed below, or upload them to the DependencyWatch scanner - 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
- Probes and spam - remove the package, rebuild, and check whether your registry configuration lets public packages shadow internal or scoped names
- Cloud credentials - if any
@ifasn/*-doc-mcppackage ran on a cloud VM or CI runner, rotate that host's instance role credentials and review their recent use - Web front ends - if a site served files from
scdn-jquery, remove it and check for injected iframes - Block -
121.199.24.94,121.199.24.94.nip.ioandoomcsn.cc
Sources
- GitHub Advisory Database, malware advisoriesgithub.com
- OpenSSF malicious-packages repositorygithub.com
- GHSA-8wmf-9cp5-g5hq - PyPI wallet-tracking wallet stealergithub.com
- GHSA-9jxw-2pvm-5q9f - npm litecore-lib-ltc typosquatgithub.com
- GHSA-rvw8-22w3-342v - npm @ifasn/md-doc-mcpgithub.com
- GHSA-25jm-3g7h-jgf6 - PyPI pypriggithub.com
- GHSA-543q-wq5f-hmgh - npm scdn-jquerygithub.com
- GHSA-v7f8-27g9-qx88 - npm contracts-upgradeable name squatgithub.com
- DependencyWatch: previous day's sweepdependencywatch.io
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.