Feed
HighPublished 6 Jul 2026162 packages · 429 versions

GitHub Advisory malware sweep — ~155 npm packages (logger/tailwind/eslint/bignumber typosquats, polymarket-onchain-* crypto-drainers) taken down 2026-07-06

Summary

On 2026-07-06 GitHub's Advisory Database published ~155 CWE-506 Embedded Malicious Code advisories against npm packages — the largest single-day 2026 GHSA npm-malware sweep to date. The batch clusters into six naming families: chalk/pino/winston/*-logger pretty-print typosquats, tailwindcss/vite typosquats, eslint / *-lint-* helper squats, bignumber.js / crypto-math typosquats, chai *-as-* matcher squats, and two polymarket-onchain-* crypto-drainer slugs continuing the June cluster. npm replaced every name with 0.0.1-security.

typosquatcredential-theftcrypto-wallet-drain
Detected by
GitHub Advisory Database · npm Security
Also known as
2026-07-06 GHSA npm sweep
Ecosystems
npm
Packages tracked
162

What happened

On 2026-07-06 GitHub's Advisory Database published ~155 CWE-506 (Embedded Malicious Code) advisories against npm packages — a single-day volume that dwarfs the individual mid-week sweeps (2026-06-30 — 5 packages, 2026-07-02 — 9 packages, 2026-07-03 — 14 packages) and appears to represent a bulk backlog processing action by GHSA staff. Every record uses the standard "any computer that has this package installed or running should be considered fully compromised — rotate all secrets from a different computer" boilerplate. No payload write-ups accompany any of the GHSA texts.

Six naming clusters

1. Logger / pretty-print typosquats (~34 packages)

A sprawling cluster targeting the Node.js structured-logging vocabulary. pino-utils, pino-formatter, pino-sdk-v2, pino-pretty-logs, pretty-pino-logger, pretty-pino-loggers collide with the pino family. winston-prism, winston-js-express collide with winston. chalki-pretty, chalk-pro-logger, chalks-logger, chalk-logger-prettier, chalk-prettier, chalk-plus-ts collide with chalk + prettier. Add picocolor-logger, custom-log-viewer, color-cli-log, color-logger-console, logger-beauty, awesome-cli-logger, emojiprint-logger, emojiprint-prettier, styled-text-logger, log-format-thread, log-upgrade, elevate-log, sleek-pretty, prettier-logger. Every one of these is a plausible mistype or "prettier fork" that would slip past a lockfile review that only checks for exact-match brand names.

2. Tailwind / Vite / PostCSS typosquats (~11 packages)

Continuation of the 2026-07-02 sweep Tailwind theme. tailwindcss-animatecss-latest@2.1.02.1.1, tailwindcss-fonttypo-inter@2.3.2, tailwindcss-fonttype-inter@2.3.12.3.2, tailwindcss-svg-helper@1.17.91.18.0, tailwindcss-framer-motion@1.1.3, tailwind-typography-plus@2.1.0, tailwind-fonttype-inter@2.3.2, tailwind-scroller@1.0.2. Vite: vite-plugin-svg-paths@1.1.51.1.9, vite-plugin-compress-js@0.5.40.5.7, vite-config-field@1.1.01.1.5.

3. ESLint / lint-helper typosquats (~20 packages)

ts-eslinter, ts-lint-builds, ts-lint-builders, ts-eslint-helper, bjs-lint-builder, bjs-lint-builders, sjs-lint-build1, hjs-lint-builders, es-lint-entry, es-lint-builders, eslint-vite, eslint-helper, lint-null, lint-nule, lint-nuler, lint-builds, lint-builders, linter-entry, npm-eslint-helper, test-prettier. Naming pattern is a rebranding operator cycling through single-letter prefixes (bjs-, sjs-, hjs-, cjs-, mjs-) — same shape as the 2026-07-03 SQL cluster.

4. bignumber.js / crypto-math typosquats (~17 packages)

bigint.os, bigint.fs, bn-eslint.js, bn-math, ether-bn.js, next-bignumber.js, big-numerator, big-numer, big-numerate, big256-ts, and the prefixed set sjs-biginteger, mjs-biginteger, cjs-biginteger, bjs-biginteger, hjs-biginteger, st-biginteger, st-bigintr. Almost all versions cluster around 5.0.5+ — the same starting version as the real bignumber.js, giving the fakes a plausible "current version" if a developer skims npm search results.

5. Chai *-as-* matcher squats (5 packages)

chai-guard, chai-dec, chai-as-init, chai-as-polished, chai-as-decrypted. All plausibly typo chai-as-promised, the canonical async-assertion adapter. Same batch also includes test-prettier (fake Jest/Mocha helper).

6. Polymarket crypto-drainer continuation (2 packages)

polymarket-onchain-sdk@1.0.21.0.4 and polymarket-onchain-plugin@2.1.32.1.5 continue the Polymarket brand-collision campaign tracked from 2026-06-27's polymarket-clob-math package. Same brand, different slugs — indicative of a persistent operator working the Polymarket wallet-drainer angle across weeks.

7. Miscellaneous (~65 packages)

The remainder is a long tail of individual typosquats and throwaway names: argonflux, modulyn, syncora, stacknova, graphpilot, bytecore, peptideenv, fastnodemailer, bubblestr, subsearch, windrule-utils, typedecode, twcompose-utils, txs-data, theta-connector, theta-kit, tailstyle-core, rma-utils, sol-sdk, secure-box, set-proto-chain, router-kit, request-js-validator, react-svg-render, react-check-error, react-native-template-my-starter, react-next-dom, rollup-plugin-polyfill-handler, webpack-patch, webpack-cache-clean, motion-lib, df-vision, debug-glitzs, mongoose-json-format, mongoose-lean-hooks, metrica-node, metrica-chain, js-unimode, jsontoken-extend, jsonupper, js-crypto-promise, older_morgan, chain-await-test, bootstrap-utils, competion, btd-smart, cookie-ease, safe-validate, renderctx, classbreeze-utils, grid-settings-align, env-axios, environment-gate, express-guardrail, express-session-js, express-initial, express-dotenv, dotenv-express, db-query-log, devkit-scripts, eth-tick, eth-logger, node-env-detector, nodepathbalance54, normalize-path-seq, ts-webplug, ts-build-optimize, ts-bigtn, ts-relayer-pub, tsliverhome, npm-doc-dev, @jaime9008/math-service, xnder-sdk-js, web-pool, wime-zle, unique-id-64, random-string-64. Some carry unusually long publish histories (js-unimode 10 versions, jsontoken-extend 14 versions, df-vision 12 versions, cookie-ease 10 versions, router-kit 30+ versions) — signals of long-running operator persistence that GHSA has now cleaned up in one shot.

Registry state

Every package now resolves to a 0.0.1-security holding tarball owned by npm Security. Historical version tarballs may remain fetchable from the CDN as of 2026-07-07 and should be treated as live malware in any lockfile hit — the CDN retention window for withdrawn npm versions typically runs 24–72 hours after the security replacement lands.

Affected packages (162)

  • npm@jaime9008/math-service
    1.0.01.0.11.0.2
  • npmargonflux
    2.0.1
  • npmawesome-cli-logger
    1.0.01.2.0
  • npmbig-numer
    5.0.5
  • npmbig-numerate
    5.0.3
  • npmbig-numerator
    5.0.35.0.6
  • npmbig256-ts
    5.0.35.0.4
  • npmbigint.fs
    5.0.55.0.6
  • npmbigint.os
    5.0.55.0.65.0.75.0.8
  • npmbjs-biginteger
    5.0.55.0.6
  • npmbjs-lint-builder
    1.0.5
  • npmbjs-lint-builders
    1.0.41.0.51.1.0
  • npmbn-eslint.js
    8.0.5
  • npmbn-math
    1.0.01.0.1
  • npmbootstrap-utils
    4.5.05.1.1
  • npmbtd-smart
    1.0.21.0.3
  • npmbubblestr
    1.1.4
  • npmbytecore
    5.3.1
  • npmchai-as-decrypted
    4.2.8
  • npmchai-as-init
    1.4.51.4.61.4.77.0.6
  • npmchai-as-polished
    7.0.8
  • npmchai-dec
    2.3.5
  • npmchai-guard
    1.0.01.2.3
  • npmchain-await-test
    1.3.5
  • npmchalk-logger-prettier
    1.0.11.0.21.0.31.0.41.0.51.0.71.0.8
  • npmchalk-plus-ts
    1.0.31.0.4
  • npmchalk-prettier
    1.0.81.0.9
  • npmchalk-pro-logger
    1.1.11.1.2
  • npmchalki-pretty
    1.0.0
  • npmchalks-logger
    1.0.91.1.01.1.11.1.21.1.3
  • npmcjs-biginteger
    5.0.35.0.55.0.6
  • npmclassbreeze-utils
    0.7.70.7.80.7.90.7.10
  • npmcolor-cli-log
    2.0.02.1.0
  • npmcolor-logger-console
    3.1.83.1.9
  • npmcompetion
    1.8.11.8.21.8.31.8.4
  • npmcookie-ease
    1.0.01.0.51.0.61.0.71.0.81.0.91.1.11.1.21.1.31.1.5
  • npmcustom-log-viewer
    1.0.0
  • npmdb-query-log
    1.0.11.0.2
  • npmdebug-glitzs
    1.0.01.0.11.0.21.0.31.0.4
  • npmdevkit-scripts
    1.0.01.0.3
  • npmdf-vision
    0.0.11.1.701.1.711.1.721.1.731.1.741.1.751.1.761.1.771.1.781.1.79
  • npmdotenv-express
    2.5.517.4.217.4.317.4.417.4.517.4.6
  • npmelevate-log
    2.0.5
  • npmemojiprint-logger
    1.1.05.6.2
  • npmemojiprint-prettier
    1.0.9
  • npmenv-axios
    1.3.6
  • npmenvironment-gate
    7.3.57.3.6
  • npmes-lint-builders
    1.0.01.0.31.0.41.0.5
  • npmes-lint-entry
    1.0.0
  • npmeslint-helper
    4.0.14.0.2
  • npmeslint-vite
    1.0.01.0.11.0.2
  • npmeth-logger
    4.3.204.3.21
  • npmeth-tick
    7.4.177.4.18
  • npmether-bn.js
    1.0.01.0.31.1.11.2.11.3.11.3.31.3.41.4.01.4.1
  • npmexpress-dotenv
    1.3.5
  • npmexpress-guardrail
    1.3.51.4.1
  • npmexpress-initial
    12.1.712.1.812.1.912.1.10
  • npmexpress-session-js
    1.0.01.19.0
  • npmfastnodemailer
    8.0.28.0.38.0.4
  • npmgraphpilot
    0.1.00.1.10.1.20.1.30.1.41.0.0
  • npmgrid-settings-align
    14.1.114.1.2
  • npmhjs-biginteger
    5.0.5
  • npmhjs-lint-builders
    1.0.4
  • npmjs-crypto-promise
    1.0.1
  • npmjs-unimode
    1.1.11.1.21.1.31.1.41.1.51.1.61.1.71.1.81.1.91.1.10
  • npmjsontoken-extend
    1.0.01.0.11.0.21.0.31.0.41.0.51.0.61.0.71.0.81.0.91.0.101.0.111.0.121.0.13
  • npmjsonupper
    1.0.05.1.0
  • npmlint-builders
    1.0.0
  • npmlint-builds
    1.0.01.0.5
  • npmlint-nule
    1.0.4
  • npmlint-nuler
    1.0.4
  • npmlint-null
    1.0.4
  • npmlinter-entry
    1.0.0
  • npmlog-format-thread
    1.0.01.0.1
  • npmlog-upgrade
    7.1.0
  • npmlogger-beauty
    1.0.11.0.21.0.31.1.02.1.1
  • npmmetrica-chain
    2.4.5
  • npmmetrica-node
    2.4.5
  • npmmjs-biginteger
    5.0.55.0.6
  • npmmodulyn
    1.0.1
  • npmmongoose-json-format
    3.0.03.0.1
  • npmmongoose-lean-hooks
    0.5.20.5.30.5.40.5.50.5.60.5.7
  • npmmotion-lib
    2.3.5
  • npmnext-bignumber.js
    1.0.0
  • npmnode-env-detector
    1.0.01.0.1
  • npmnodepathbalance54
    1.1.0
  • npmnormalize-path-seq
    3.8.9
  • npmnpm-doc-dev
    1.0.41.0.51.0.61.0.71.0.81.0.91.1.01.1.1
  • npmnpm-eslint-helper
    1.0.1
  • npmolder_morgan
    1.0.11.0.2
  • npmpeptideenv
    16.6.116.6.216.6.316.6.416.6.516.6.6
  • npmpicocolor-logger
    1.0.01.0.11.0.2
  • npmpino-formatter
    1.1.121.1.13
  • npmpino-pretty-logs
    1.0.71.0.81.1.02.0.0
  • npmpino-sdk-v2
    9.9.0
  • npmpino-utils
    1.3.61.4.0
  • npmpolymarket-onchain-plugin
    2.1.32.1.42.1.5
  • npmpolymarket-onchain-sdk
    1.0.21.0.31.0.4
  • npmprettier-logger
    0.1.40.1.50.1.6
  • npmpretty-pino-logger
    1.0.01.0.11.0.21.0.31.0.42.0.12.0.2
  • npmpretty-pino-loggers
    1.0.1
  • npmrandom-string-64
    1.0.01.0.1
  • npmreact-check-error
    2.1.62.1.7
  • npmreact-native-template-my-starter
    1.0.0
  • npmreact-next-dom
    1.0.01.1.717.2.717.2.8
  • npmreact-svg-render
    1.0.2
  • npmrenderctx
    1.1.1
  • npmrequest-js-validator
    1.0.21.0.31.0.4
  • npmrma-utils
    1.0.1
  • npmrollup-plugin-polyfill-handler
    1.0.01.0.1
  • npmrouter-kit
    0.1.10.1.20.1.30.1.40.1.50.1.60.1.70.2.00.2.10.2.20.2.30.2.51.0.01.0.11.0.21.0.31.2.01.2.11.2.21.2.31.2.41.2.51.2.61.3.01.3.11.3.21.3.31.3.42.0.02.0.12.1.0
  • npmsafe-validate
    1.0.11.0.21.0.31.0.4
  • npmsecure-box
    1.0.11.0.2
  • npmset-proto-chain
    1.0.3
  • npmsjs-biginteger
    5.0.55.0.6
  • npmsjs-builder
    1.0.41.0.5
  • npmsjs-builders
    1.0.4
  • npmsjs-lint-build1
    1.0.4
  • npmsleek-pretty
    1.0.0
  • npmsol-sdk
    2.3.18
  • npmst-biginteger
    5.0.5
  • npmst-bigintr
    5.0.55.0.6
  • npmstacknova
    1.0.0
  • npmstyled-text-logger
    1.3.1
  • npmsubsearch
    1.0.21.0.3
  • npmsyncora
    0.2.03.5.7
  • npmtailstyle-core
    0.0.1
  • npmtailwind-fonttype-inter
    2.3.2
  • npmtailwind-scroller
    1.0.2
  • npmtailwind-typography-plus
    2.1.0
  • npmtailwindcss-animatecss-latest
    2.1.02.1.1
  • npmtailwindcss-fonttype-inter
    2.3.12.3.2
  • npmtailwindcss-fonttypo-inter
    2.3.2
  • npmtailwindcss-framer-motion
    1.1.3
  • npmtailwindcss-svg-helper
    1.17.91.18.0
  • npmtest-prettier
    1.0.9
  • npmtheta-connector
    1.0.0
  • npmtheta-kit
    1.0.01.0.11.0.21.0.3
  • npmts-bigtn
    1.3.11.3.2
  • npmts-build-optimize
    1.1.51.1.61.2.01.2.11.2.2
  • npmts-eslint-helper
    4.0.14.0.24.0.34.0.44.0.5
  • npmts-eslinter
    1.0.0
  • npmts-lint-builders
    1.0.5
  • npmts-lint-builds
    1.0.5
  • npmts-relayer-pub
    1.0.0
  • npmts-webplug
    3.0.53.0.63.0.73.0.8
  • npmtsliverhome
    1.0.01.1.11.1.21.1.31.1.41.1.5
  • npmtwcompose-utils
    0.7.60.7.7
  • npmtxs-data
    1.0.1
  • npmtypedecode
    1.0.11.0.21.0.3
  • npmunique-id-64
    1.0.0
  • npmvite-config-field
    1.1.01.1.11.1.21.1.31.1.41.1.5
  • npmvite-plugin-compress-js
    0.5.40.5.50.5.60.5.7
  • npmvite-plugin-svg-paths
    1.1.51.1.61.1.71.1.81.1.9
  • npmweb-pool
    2.3.5
  • npmwebpack-cache-clean
    0.1.4
  • npmwebpack-patch
    1.1.71.1.81.1.91.2.0
  • npmwime-zle
    1.1.4
  • npmwindrule-utils
    0.0.1
  • npmwinston-js-express
    1.0.01.0.31.0.41.0.51.0.61.0.71.1.11.1.2
  • npmwinston-prism
    1.0.1
  • npmxnder-sdk-js
    0.1.0

Impact

  • Any host that installed any of the ~155 packages listed below should be treated as fully compromised — every GHSA record uses the boilerplate "rotate all secrets from a different computer" language; no patched version exists for any of them
  • The polymarket-onchain-sdk@1.0.21.0.4 and polymarket-onchain-plugin@2.1.32.1.5 names continue the crypto-wallet-drainer campaign already tracked under polymarket-clob-math — same brand collision, different slugs, likely same operator
  • The logger / pretty-print family (pino-*, winston-*, chalk-*, picocolor-logger, chalki-pretty, prettier-logger, styled-text-logger, sleek-pretty, emojiprint-*, logger-beauty, color-cli-log, color-logger-console, awesome-cli-logger, elevate-log, custom-log-viewer) squats the entire Node.js structured-logging naming space — 30+ distinct package names targeting the exact vocabulary a developer types when adding logging to a service
  • The bignumber.js / crypto-math cluster (bigint.os, bigint.fs, bn-eslint.js, bn-math, ether-bn.js, next-bignumber.js, big-numerator, big-numer, big-numerate, big256-ts, sjs-biginteger, mjs-biginteger, cjs-biginteger, bjs-biginteger, hjs-biginteger, st-biginteger, st-bigintr) targets developers who typo the ubiquitous bignumber.js slug used across Ethereum/Solana tooling — many hit 5.0.5+ versions to blend with bignumber.js's own version range
  • The tailwindcss / vite typosquat cluster (tailwindcss-animatecss-latest, tailwindcss-fonttypo-inter, tailwindcss-fonttype-inter, tailwindcss-svg-helper, tailwindcss-framer-motion, tailwind-typography-plus, tailwind-fonttype-inter, tailwind-scroller, vite-plugin-svg-paths, vite-plugin-compress-js, vite-config-field) continues the Tailwind/Animate.css / Vite plugin theme from the 2026-07-02 sweep — the same operator or a copycat is still working the same aesthetic naming space
  • The chai *-as-* matcher cluster (chai-guard, chai-dec, chai-as-init, chai-as-polished, chai-as-decrypted) plausibly squats chai-as-promised, the canonical assertion adapter for async Chai tests — anyone adding an async matcher to a test suite between publish and 2026-07-06 could have grabbed one of these

What to do

  1. 1Grep your lockfiles (package-lock.json, yarn.lock, pnpm-lock.yaml) for every name in the packages map below — 155+ names is too many to eyeball. Any match is a supply-chain incident: rotate every credential the build runner could reach and re-image the build host
  2. 2If you resolved polymarket-onchain-sdk or polymarket-onchain-plugin at any point: treat this as a crypto-wallet compromise. Any wallet key, seed phrase, or exchange API key that touched that machine should be rotated immediately and funds moved
  3. 3Add the pino-, winston-, chalk-, tailwindcss-, vite-plugin-, bignumber.js / big-* / bigint.*, eslint-, lint-, and chai-as-* name prefixes to a review gate on any package addition — the malware operators have been farming these exact naming spaces for three consecutive months
  4. 4Verify none of the 155+ listed packages still resolves via your private mirror — internal Artifactory / Nexus / Verdaccio instances routinely cache tarballs and will keep serving the malicious versions after the public yank
  5. 5For the ESLint / TypeScript-lint family (ts-lint-builds, ts-lint-builders, ts-eslinter, ts-eslint-helper, bjs-lint-*, hjs-lint-*, sjs-lint-*, es-lint-*, lint-builds, lint-builders, lint-null, lint-nule, lint-nuler, linter-entry): none of these are legitimate ESLint or TypeScript packages. The canonical slugs are eslint, @typescript-eslint/eslint-plugin, typescript-eslint
  6. 6If your build ever resolved a *jsonupper / js-crypto-promise / js-unimode / jsontoken-extend name: these are placeholder utility slugs common to malware operators; the mainstream JSON/JWT/promise-utility names (json5, jsonwebtoken, p-map, etc.) do not use these suffixes

References

npm-2026-07-06-ghsa-malware-sweep