GitHub Advisory malware sweep, 15 October 2026
GHSA 2026-10-14/15 batch (~9 advisories). Headliner: npm conx3993 pushed 5 dep-confusion packages (@mntv-analysis/*, @user-interface-common/*, monkey-tags-ip) with per-package tokens beaconing realwbx.com. Carve-outs: npm babel-polyfill-plugin-corejs2 + eth-react-provider tarball typosquats; PyPI saeka credit-card checker calling uncoder.eu.org.
Published 15 Oct 2026
Every version named by the advisory is in the scanner, so a lockfile check finds it directly.
- Severity
- High
- Type
- Advisory sweep
- Published
- 15 Oct 2026
- Ecosystems
- npmPyPI
- Detected by
- GitHub Advisory Database, OpenSSF malicious-packages, Amazon Inspector, ESTsecurity, kam193/bad-packages, npm security, PyPI security
- Also known as
- 2026-10-15 GHSA sweep, conx3993 realwbx.com dep-confusion operator, @mntv-analysis @user-interface-common monkey-tags-ip dep-confusion cluster
- 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
Between 2026-10-14 14:00 UTC (yesterdays sweep cutoff) and 2026-10-15 06:00 UTC (todays ingest-window start), the GitHub Advisory Database and OpenSSF malicious-packages published 9 fresh malware advisories across npm and PyPI. Five form a single operator dep-confusion cluster, two are an Amazon Inspector GHSA-import backfill of August-published tarball-payload typosquats, one is a long-running PyPI credit-card checker fraud tool, and one is a low-info boilerplate takedown.
Headline
*npm operator conx3993 pushed FIVE dep-confusion packages targeting `@mntv-analysis/, @user-interface-common/, and monkey-tags-ip` internal names in a single-day burst (Cluster A). Every one of them ships a preinstall hook that runs an "IP geolocation helper" index.js (or ip.js for monkey-tags-ip), sending an HTTPS GET to realwbx.com with a hard-coded per-package Authorization token. Unlike typical CWE-506 dep-confusion probes that emit a DNS beacon, this one makes an actual outbound HTTPS write and carries a developing operator-side identification scheme - each of the 5 packages has a unique token so the operator can tell which internal name squatted. The non-standard sentinel-version pattern (50.1.1, 65.11.3, 66.1.6, 99.1.1 - just high enough to beat an internal 0.x.y or 1.x.y but not the standard `99.99.) is the operators signature.
Confirmed-payload carve-outs within the sweep
- Cluster B
babel-polyfill-plugin-corejs2@1.0.1(typosquat ofbabel-plugin-polyfill-corejs2) andeth-react-provider@1.0.0(plausible React Ethereum provider lure) - Amazon Inspector GHSA-import backfill. Both carry 110KB obfuscatedFunction()-exec payloads at import time. Originally published to npm on 2026-08-24 and 2026-08-19 respectively; detected by Amazon Inspector; sat on the Amazon Inspector feed for ~7 weeks before GHSA imported them yesterday. The cleansrc/index.jsin each repo lacks the payload - the published tarball was tampered with before upload. OSV MAL-2026-14426 and MAL-2026-14300. - Cluster C
saeka(PyPI, 26 versions1.0.0-15.0) - credit-card checker fraud tool callinghttps://uncoder.eu.org/cc-checker/api.php. OSV reasonabusing-3rd-api, campaign tag2026-10-saeka. ESTsecurity credited as finder;kam193(Kamil Mańkowski) reported it. Unusually long version-list indicates sustained open development on PyPI before takedown.
Probes
Cluster D @xxxfnbs21/hello-demo (8 versions) is OSSF-noted "hello-" / "-demo" test-pattern naming - either an operator iterating a payload before a real campaign publish, or a dropped bug-bounty automation probe. CWE-506 boilerplate takedown with no published analysis.
Classification
sweep. Severity high taken as a whole, driven by Cluster B (confirmed Function()-exec payload at import time, albeit boilerplate CWE-506 advisory) and Cluster C (confirmed functional fraud tool with a specific named C2). Cluster A would be medium on its own (dep-confusion probe tier, HTTPS beacon not credential-stealing payload) and Cluster D is medium boilerplate; neither reduces overall sweep severity.
Discovery
GitHub Advisory Database, OpenSSF malicious-packages, Amazon Inspector (IN-MAL feed for Cluster B), ESTsecurity (Cluster C finder), kam193/bad-packages (Cluster C reporter), npm security, PyPI security.
9 packages 46 versions
- npm@mntv-analysis/ui99.1.10.0.0-stage→
- npm@mntv-analysis/ui-components50.1.10.0.0-stage→
- npm@mntv-analysis/workspaces-components65.11.30.0.0-stage→
- npm@user-interface-common/common-styles66.1.60.0.0-stage→
- npm@xxxfnbs21/hello-demo0.0.0-stage0.1.00.1.10.1.20.1.30.1.50.1.60.1.8→
- npmbabel-polyfill-plugin-corejs21.0.1→
- npmeth-react-provider1.0.0→
- npmmonkey-tags-ip53.4.10.0.0-stage→
- PyPIsaeka1.0.01.2.01.2.11.2.21.2.31.3.01.4.01.5.01.6.01.7.01.8.01.8.11.8.22.04.05.06.07.08.09.09.510.011.111.211.915.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 A - npm
conx3993operator 5-package dep-confusion withrealwbx.comHTTPS beacon and per-package authorization tokens (dependency-confusion, confirmed HTTPS egress beyond CWE-506 boilerplate):@mntv-analysis/ui(99.1.1, 0.0.0-stage; GHSA-xrv8-6w5h-xhhf, OSV MAL-2026-17869),@mntv-analysis/ui-components(50.1.1, 0.0.0-stage; GHSA-82g4-6666-2x5v, OSV MAL-2026-17870),@mntv-analysis/workspaces-components(65.11.3, 0.0.0-stage; GHSA-8qv9-76f6-8h3c, OSV MAL-2026-17871),@user-interface-common/common-styles(66.1.6, 0.0.0-stage; GHSA-h9q3-2w8j-vhfr, OSV MAL-2026-17874),monkey-tags-ip(53.4.1, 0.0.0-stage; GHSA-88vx-pphm-qg2x, OSV MAL-2026-17875). Operatorconx3993published every one of them on 2026-10-14. Each package ships apreinstallhook that runsindex.js(orip.jsformonkey-tags-ip), presenting itself as an "IP geolocation helper" and sending an HTTPS GET torealwbx.comwith a hard-coded per-packageAuthorizationtoken:ba95f7810845c0347d6a88d157933c81(ui-components),920ff204acf77aa813059be4f3141900(workspaces-components),2b6e9d1f4a7c0e3b8d5f2a9c6e1b4d7f(ui),bddd640d75c36bd562755a0044764366(common-styles),Bearer xHlT6gllTfGbKgdivAKTzWKxrILWlNlv(monkey-tags-ip). The paths vary (/ip.php?ip=8.8.8.8on four of them,/ip?f=jsononmonkey-tags-ip) and the response is discarded - the point of the request is that the operator learns the egress IP of the installing host AND which internal package name resolved against the public registry (the unique token identifies the squatted name). Unlike typical CWE-506 dep-confusion boilerplate that merely emits a DNS beacon, these do an actual outbound HTTPS write and carry a developing operator-side identification scheme. Severitymediumfor the cluster alone (dep-confusion probe tier - no further payload beyond the beacon; still catalogued because the unique-token scheme means every match reveals an internal package name) - Cluster B - npm Amazon Inspector tarball-payload typosquat GHSA backfill (malicious-package, confirmed obfuscated
Function()-exec payload at import time but with boilerplate CWE-506 advisory text):babel-polyfill-plugin-corejs2(1.0.1; GHSA-9g6r-83hw-6cq2, OSV MAL-2026-14426, originally published 2026-08-24, GHSA-imported 2026-10-14) andeth-react-provider(1.0.0; GHSA-rr86-r66c-qc54, OSV MAL-2026-14300, originally published 2026-08-19, GHSA-imported 2026-10-14). Both are tarball-payload typosquats originally flagged by Amazon Inspector (IN-MAL-2026-018647 for the first) that sat on the Amazon Inspector feed for ~7 weeks before GHSA imported them yesterday.babel-polyfill-plugin-corejs2typosquats the realbabel-plugin-polyfill-corejs2package (Babel/polyfill ecosystem);eth-react-provideris a plausible-sounding React Ethereum provider lure claiming to exportuseProvideranduseSignerhooks. In both,lib/index.jscontains unrelated boilerplate followed by roughly 110KB of obfuscated JavaScript that is executed viaFunction()on modulerequire(). Forbabel-polyfill-plugin-corejs2@1.0.1the artifact hashes are:lib/index.jsSHA-256e128537a49012ee255e98827ece385ecabeb4827ba8ce8dc2eaca045102666dc, tarball SHA-1076c925c9d1cf6a577096db7b79ab1ef3879459c. Foreth-react-provider@1.0.0thelib/index.jsSHA-256 isfaaf7c7168b80ef8148c54ed779926fed0edd38bb391f980f5e12981bcbb9683. The cleansrc/index.jsin each repo lacks the payload - the published artifact was tampered with before upload. Severityhighfor this cluster (confirmed malicious Function()-exec payload at import time; the long GHSA-import delay means these two have been installable from the npm registry for ~7 weeks without a GHSA entry warning developers) - Cluster C - PyPI
saeka26-version credit-card checker fraud tool callinguncoder.eu.org/cc-checker/api.php(malicious-package, confirmed functional fraud tool with named C2 endpoint):saeka(1.0.0, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.3.0, 1.4.0, 1.5.0, 1.6.0, 1.7.0, 1.8.0, 1.8.1, 1.8.2, 2.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 9.5, 10.0, 11.1, 11.2, 11.9, 15.0; GHSA-mg63-mhjw-2w9m, OSV MAL-2026-17877, campaign2026-10-saeka, OSSF reasonabusing-3rd-api). The package describes itself as a "mass credit card checker" that verifies card validity by abusing live retail services, callinghttps://uncoder.eu.org/cc-checker/api.php. ESTsecurity is credited as finder;kam193(Kamil Mańkowski) reported it to OSSF. Unusually long version-list for a fresh advisory (26 versions over1.0.0through15.0) indicates the package has been developed openly on PyPI for some time before takedown. Severityhighfor this package alone (confirmed functional malicious tool with a specific named C2; the end-victim is a third-party retail service, not the developer installing the package, but any environment runningpip install saekais participating in card-abuse traffic touncoder.eu.organd should be treated as needing offline forensic review for stored card data or fraud-ring membership) - Cluster D - npm
@xxxfnbs21/hello-demo8-version test-pattern probe (malicious-package, CWE-506 boilerplate takedown with no published analysis):@xxxfnbs21/hello-demo(0.0.0-stage, 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.1.5, 0.1.6, 0.1.8; GHSA-hf57-6wg3-343x, OSV MAL-2026-17876). Package name uses the OSSF-noted "hello-" / "-demo" test-pattern naming that is the signature of an operator iterating a payload before a real campaign publish, OR a dropped bug-bounty automation probe. 8 versions pushed in short succession is consistent with payload iteration. All CWE-506 "fully compromised" boilerplate advisories with no shipped IOC body. Severitymedium(install-time code execution risk per OSSF typosquat/boilerplate pattern, no vendor runtime analysis published yet) - Operator continuity: today
s material is largely a new wave rather than a continuation of this weeks operators. No new activity from:priyashareekAccenture+@newspage dep-confusion operator (yesterday - sibling@newspagepackages continued their GHSA registration today under GHSA-49j3-qrv4-xgwv and GHSA-5m6v-q7rf-gh3x but no new scopes),dumtbanorderly-plugin GitHub Actions CI-token-abuse operator (yesterday),kingsize+limbomail.com+lunexindonesia/node-net-pooldiscord-mfa Windows-RAT campaign (quiet sincepasswordcracker/passwordcrackv2yesterday), Baileys/libsignal lure operator wave 3 (quiet since@chatest/baileysextension yesterday),kam193continues as top PyPI malware reporter (saekaandfontcase/sysdiagd/pyyiyesterday all attributed),s4yhiioperator (quiet since 2026-10-13 wave),185.158.107.175operator,64.181.165.115operator,hardhat-optionoperator,agentaixoperator,wgkitRubyGems operator (quiet since 2026-10-12 wave 2),xwise8887,sharpnescrates.io,@tunstock/remact-dom, Wix dep-confusion,nfjbill,@bitwardne/*,reaperhackbot256f,ig-gox. New operators today:conx3993(5-package npm dep-confusion withrealwbx.comand per-package tokens - novel operator-side identification scheme). New standing C2 host:realwbx.com(apex +/ip.php+/ippaths). New fraud-service C2 host:uncoder.eu.org/cc-checker/api.php(not a developer-threat sink but worth adding to CI/build-host egress blocks for the fraud-flow visibility it would provide if a workstation ever installed it). TensorLake AI maintainer compromise (2026-10-08 carve-out) remains quiet attensorlake@0.5.145with no wave-2 republish
Clean-up steps
- For Cluster A (
conx3993operatorrealwbx.comdep-confusion): grep everypackage.json,package-lock.json,yarn.lock,pnpm-lock.yamlfor@mntv-analysis/ui,@mntv-analysis/ui-components,@mntv-analysis/workspaces-components,@user-interface-common/common-styles,monkey-tags-ip. Any match (including the0.0.0-stageplaceholder) indicates the operators dep-confusion resolved against the public registry at least once. Any team using@mntv-analysis/,@user-interface-common/, ormonkey-tags-ipinternally should **immediately scope-lock the internal registry** (npm config set @mntv-analysis:registry https://internal-registryand similar for the other scope; namespace-protectmonkey-tags-ipon the public registry) and hold both scopes with placeholder packages at a safe version. Blockrealwbx.comat egress on all CI/build hosts; the hard-codedAuthorizationtokens in the install hooks (ba95f78108...,920ff204ac...,2b6e9d1f4a...,bddd640d75...,Bearer xHlT6gllTfGbKgdiv...) are unique per package and signal which internal name the operator was able to squat. Audit CI/build logs for outbound requests torealwbx.com/ip.phpandrealwbx.com/ip. The sentinel-version-high pattern (50.1.1, 65.11.3, 66.1.6, 99.1.1 - just high enough to beat an internal0.x.yor1.x.y) is a non-standard dep-confusion signature; teach contributors that any npm scoped package suddenly jumping to a>= 50.x.x` first version with no prior history is suspect by construction - For Cluster B (Amazon Inspector tarball-payload typosquats): grep every
package.json,package-lock.json,yarn.lock,pnpm-lock.yamlforbabel-polyfill-plugin-corejs2(version 1.0.1) andeth-react-provider(version 1.0.0). The real packages a developer would have wanted arebabel-plugin-polyfill-corejs2(lowercase, hyphen-ordered) and - for React Ethereum provider needs -@reown/appkit,wagmi,@rainbow-me/rainbowkit, orconnectkitdepending on the stack. On any hit, treat the installing host as having run a 110KB obfuscated payload viaFunction()and rotate every secret the host had access to in the exposure window (environment vars at build time, npm/CI tokens, cloud-provider SDK credentials, SSH/GPG keys that were unlocked while a dev-shell ranrequire('babel-polyfill-plugin-corejs2')or an app at runtime ranrequire('eth-react-provider')). Image the host if it was a build runner or shared VM. The ~7-week delay between Amazon Inspector detection (2026-08-19 and 2026-08-24) and GHSA import (2026-10-14) means these packages were installable from npm with no GHSA warning for a long time - audit lockfile history as far back as September 2026 for anyone who may have added these before yesterday`s advisories landed - For Cluster C (PyPI
saekacredit-card checker fraud tool): grep everyrequirements.txt,pyproject.toml,Pipfile.lock,poetry.lock,uv.lock,pdm.lock,conda envforsaeka(any of the 26 affected versions). On ANY corporate dev-host or CI runner hit: this is a fraud tool used by card-abuse operators, NOT a typical developer dependency - its presence on a corporate host is itself a strong indicator the host or its account has been co-opted for card-abuse workflows. Preserve the host for forensic review (do NOT justpip uninstall), scope the investigation to credit card data, retail-abuse traffic, and operator persistence, and loop in internal fraud/anti-money-laundering teams in addition to IR. Blockuncoder.eu.orgapex at egress on all workstations and CI/build hosts; the/cc-checker/api.phppath is the fraud-flow sink. Note that the end-victim of this package is the retail service being abused, not the developer - but the developer`s host has processed card-validation traffic that may itself have attracted stored card data, so a forensic review for stored card data is warranted - For Cluster D (
@xxxfnbs21/hello-demoboilerplate probe): grep for@xxxfnbs21/hello-demo(any of the 8 affected versions). On hit, remove, invalidate any Docker layer or build cache that rannpm install, and audit CI logs for environment-variable leakage. CWE-506 boilerplate advisory means the specific payload is undocumented in this GHSA; treat the install as credential-compromised until Socket or a vendor publishes a runtime analysis. The 8-version short-succession publish pattern is characteristic of an operator iterating payload - watch for a wave-2@xxxfnbs21/*scope expansion - NEW outbound denylist entries for CI/build-host egress proxies today:
realwbx.comapex +/ip.php+/ippaths (Cluster Aconx3993operator dep-confusion C2 host, 5 packages across 3 internal-scope targets);uncoder.eu.orgapex +/cc-checker/api.phppath (Cluster Csaekafraud-tool C2 host, 26 versions). Keep prior egress blocks in place:accenture-npm.azurewebsites.net+/test+/async+/mfe,limbomail.comapex +github.com/lunexindonesia/node-net-pool+github.com/trktgq0wbre1/node-net-pool,github.com/unicodeces/font-atlas,space-z.aiapex +preview-chat-960504a9-b4e0-4b69-bc80-6ac3d4fa4ae0.space-z.ai+b196q82k8891-d.space-z.aisubdomains,collector.oob.s4yhii.com+*.oob.s4yhii.com+s4yhii.comapex,64.181.165.115/dc,167.88.172.33:8087+jsonspack.com,goxtools.shopapex,minhdong.siteapex + GitHub userVangBanLaNhat,45.138.12.177:8089,185.158.107.175:8787,ltidi.storage.googleapis.com/depenconf/,oob.s4yhii.com:9999/native,*.oast.pro/*.oast.me/*.oast.fun/*.oast.site/*.oastify.com,frjmzbjbhwvtdnsuodmu.supabase.co,api.npoint.ioapex,googleforum.pythonanywhere.com,tele.metry.orgin.net,morroncr0w.io,api.telegram.orgon untrusted CI/build hosts,appsecc.com,webhook.site/*,dxpoc.gt.tc,nfjbill.ren,storage.googleapis.com/depenconf/,10.0.19.0/24+10.0.49.0/24,api.nm-streetwear.space, Discord webhook URL pattern,ipify.org+ifconfig.me,gitflic.ru,api.wagmiwallet.org,backend-cybersecuritydashboard.onrender.com, Monero mining pools, Ethereum/Sepolia/Arbitrum/Polygon RPC endpoints,chinazhangsan.ccwu.cc,fabric-npm.gm-service.xyz,jsonkeeper.com,npm-canary.aveliscare.com,meta.brs.cx,s3://pkusinski-external/, AWS account631484165566, Slack bot-token exfil patterns,s85r5k14qk.execute-api.us-east-1.amazonaws.com/prod/hook,tuamaeaquelaursa.com,45.138.0.0/16RubyGems wgkit CIDRs
Sources
- GitHub Advisory Database - recent malware advisoriesgithub.com
- GHSA-xrv8-6w5h-xhhf - npm @mntv-analysis/ui (Cluster A - conx3993 operator, realwbx.com beacon, token 2b6e9d1f..., 99.1.1 sentinel, MAL-2026-17869)github.com
- GHSA-82g4-6666-2x5v - npm @mntv-analysis/ui-components (Cluster A - conx3993 operator, token ba95f781..., 50.1.1 sentinel, MAL-2026-17870)github.com
- GHSA-8qv9-76f6-8h3c - npm @mntv-analysis/workspaces-components (Cluster A - conx3993 operator, token 920ff204..., 65.11.3 sentinel, MAL-2026-17871)github.com
- GHSA-h9q3-2w8j-vhfr - npm @user-interface-common/common-styles (Cluster A - conx3993 operator, token bddd640d..., 66.1.6 sentinel, MAL-2026-17874)github.com
- GHSA-88vx-pphm-qg2x - npm monkey-tags-ip (Cluster A - conx3993 operator, Bearer xHlT6gllTfGbKgdiv... token, 53.4.1 sentinel, uses ip.js variant and /ip?f=json path, MAL-2026-17875)github.com
- GHSA-9g6r-83hw-6cq2 - npm babel-polyfill-plugin-corejs2 (Cluster B - typosquat of babel-plugin-polyfill-corejs2, 110KB obfuscated Function() payload, originally pub 2026-08-24, GHSA-imported 2026-10-14, Amazon Inspector IN-MAL-2026-018647, MAL-2026-14426)github.com
- OSSF malicious-packages MAL-2026-14426 raw record (babel-polyfill-plugin-corejs2 IOCs: lib/index.js SHA-256 e128537a..., tarball SHA-1 076c925c..., package.json SHA-256 0a2baad7..., finder Amazon Inspector)raw.githubusercontent.com
- GHSA-rr86-r66c-qc54 - npm eth-react-provider (Cluster B - plausible React Ethereum provider lure, 110KB obfuscated Function() payload, originally pub 2026-08-19, GHSA-imported 2026-10-14, MAL-2026-14300)github.com
- OSSF malicious-packages MAL-2026-14300 raw record (eth-react-provider IOCs: lib/index.js SHA-256 faaf7c71..., finder Amazon Inspector, web3.js Subscriptions boilerplate+obfuscated payload)raw.githubusercontent.com
- GHSA-mg63-mhjw-2w9m - pypi saeka (Cluster C - 26-version credit-card checker fraud tool calling uncoder.eu.org/cc-checker/api.php, campaign 2026-10-saeka, OSSF reason abusing-3rd-api, MAL-2026-17877)github.com
- OSSF malicious-packages MAL-2026-17877 raw record (saeka IOCs: uncoder.eu.org host, /cc-checker/api.php path, 26 affected versions, finder ESTsecurity, reporter kam193)raw.githubusercontent.com
- kam193 bad-packages entry for saeka (reporter`s own detail page for the PyPI advisory)bad-packages.kam193.eu
- GHSA-hf57-6wg3-343x - npm @xxxfnbs21/hello-demo (Cluster D - 8-version test-pattern probe, CWE-506 boilerplate, MAL-2026-17876)github.com
- DependencyWatch: multi-2026-10-14-ghsa-malware-sweep (prior-day context: dumtban orderly-plugin GITHUB_TOKEN write-back, Accenture dep-confusion + @newspage siblings, fontcase/sysdiagd/pyyi carve-outs, passwordcracker Windows-RAT continuation, opencode2 typosquat family, @chatest/baileys lure wave 3 extension)dependencywatch.io
- DependencyWatch: multi-2026-10-13-ghsa-malware-sweep (Baileys lure wave 3 60+ packages, npp-ml AD-recon, minecraftaccfinder infostealer+RAT, wallet-balance-scanner reverse-shell, s4yhii wave 3)dependencywatch.io
- DependencyWatch: npm-2026-10-08-tensorlake-maintainer-compromise (recent maintainer-compromise carve-out, standing watch)dependencywatch.io
- DependencyWatch: npm-2026-10-12-hridoy-ultimate-fb-credential-stealer (recent FB credential-sink carve-out)dependencywatch.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.