GitHub Advisory malware sweep - 2026-08-26 batch (PyPI `envprovision` Snow Stealer + PyPI `minecraft-ytreceiver` Telegram-C2 webcam/keylogger + PyPI `python-walletlibr-v` Windows install-time dropper + npm `twork-data-services-*` internal-scope dep-confusion + npm `wm-*` dep-confusion + npm Vue/Svelte/Vite lookalike cluster (15) + npm CWE-506 boilerplate (5))
28 new GHSA CWE-506 advisories in the 48h window ending 2026-08-26. Highlights: PyPI envprovision drops "Snow Stealer" browser/wallet infostealer with sandbox evasion; PyPI minecraft-ytreceiver runs webcam/screenshot/keylogger over Telegram C2; PyPI python-walletlibr-v fires a Windows batch dropper at pip install; npm twork-data-services-* and wm-* clusters look like internal-namespace dep-confusion probes; a 15-package Vue/Svelte/Vite lookalike cluster and 5 CWE-506 boilerplate names round out the batch.
- Detected by
- GitHub Advisory Database · OpenSSF malicious-packages · OpenSSF Package Analysis
- Also known as
- 2026-08-26 GHSA sweep · 2026-08-envprovision campaign · 2026-08-minecraft-ytreceiver campaign · Snow Stealer PyPI · twork-data-services dep-confusion · wm-* internal-namespace dep-confusion
- Ecosystems
- npmPyPI
- Packages tracked
- 28
What happened
The 48-hour window ending 2026-08-26 06:00 UTC published 28 new GHSA CWE-506 advisories: 3 on PyPI (all with substantive infostealer/spyware payloads), 25 on npm (20 dated 2026-08-25 that landed after the previous sweep window closed, 5 dated 2026-08-26). The three PyPI entries are all defender-actionable with source hashes and payload detail; the npm entries include two coherent internal-namespace dep-confusion clusters (twork-data-services-* and wm-*), a 15-package Vue/Svelte/Vite ecosystem lookalike burst, and 5 CWE-506 boilerplate names published today.
Cluster A - PyPI envprovision Snow Stealer (3 versions)
| Package | Versions | GHSA | Source hash | Campaign | |---|---|---|---|---| | envprovision | 1.2.0, 1.3.0, 1.4.0 | GHSA-xr9j-7gjp-x8fg | cf3a48b4…d869 | 2026-08-envprovision |
Exported functions hide the harmful activity from casual inspection. On Windows the package fetches a remote executable disguised as a legitimate system tool; the binary self-identifies as Snow Stealer, an infostealer with sandbox-evasion routines and heavy obfuscation that harvests browser data (saved credentials, cookies, autofill, session tokens) and targets cryptocurrency wallet applications. Post-execution the payload wipes logs and deletes temp files to erase forensic breadcrumbs - so "we did not find IOCs on disk" is not a clean signal on an installing host.
Cluster B - PyPI minecraft-ytreceiver Telegram-C2 surveillance (5 versions)
| Package | Versions | GHSA | Source hash | Campaign | |---|---|---|---|---| | minecraft-ytreceiver | 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0 | GHSA-cj4w-748x-8w4q | af6c2393…175e | 2026-08-minecraft-ytreceiver |
Full surveillance kit: webcam capture, periodic screenshots, arbitrary-file exfiltration, continuous keystroke logging, all beaconed and controlled via a Telegram bot channel. The minecraft-yt* name targets Minecraft server hobbyists / YouTube-tutorial followers rather than enterprise developers - a Telegram-controlled RAT deployed against home users. Webcam-capable devices in shared spaces should be assumed to have captured footage during the exposure window.
Cluster C - PyPI python-walletlibr-v Windows batch dropper (1 version)
| Package | Versions | GHSA | Source hash | |---|---|---|---| | python-walletlibr-v | 0.7.9 | GHSA-pfrw-v3ch-6m8x | 6783cffe…220c |
Masquerades as wallet software with stub-only user-facing code. On Windows install, writes a batch file to %TEMP%, spawns a new command console, and runs arbitrary system commands (published PoC spawns calc.exe as a harmless indicator; the same channel can execute anything). Name matches the python-wallet*-v pattern used by prior 2026 wallet-theft typosquats.
Cluster D - npm twork-data-services-* internal-scope dep-confusion (2 packages)
| Package | Version | GHSA | |---|---|---| | twork-data-services-proxy-prime-api-v1-account-overdraft-info | = 20.7.4 | GHSA-crw8-m6mj-q6qp | | twork-data-services-sme-operations-authorizations | <= 20.8.9 | GHSA-c4f8-h585-2c73 |
The name pattern (twork-data-services-<internal-service>-<domain>-<endpoint>), the SME / overdraft banking domain vocabulary, and the specific 20.x version numbers that mimic a mature internal-registry version line are the classic dep-confusion sentinel triple: guess an internal name, cover the exact version an internal resolver would look up, publish to public npm and wait for a mis-scoped install.
Cluster E - npm wm-* internal-namespace dep-confusion (3 packages)
| Package | GHSA | |---|---| | wm-eslint-fe | GHSA-59qg-7f2g-4p3c | | wm-idp-sdk | GHSA-hq9q-4jgc-997v | | wm-lib-env-provider | GHSA-54m9-xjx6-pf8x |
wm-<function>-<scope> naming (frontend eslint config, IDP SDK, env-provider library) reads like a private company's internal-package prefix. All >= 0, all CWE-506 boilerplate. No per-package hashes.
Cluster F - npm Vue/Svelte/Vite plugin lookalike burst (15 packages)
| Package | GHSA | Note | |---|---|---| | vue-template-compiler-plugin | GHSA-gvmg-cf54-7769 | Vue toolchain lookalike | | vue-compiler-sfc-plugin | GHSA-v29w-qjvw-fm35 | @vue/compiler-sfc namespace confusion | | svelte-ui-cls | GHSA-q88r-gcjf-c3jc | Svelte CLS/UI namespace | | svelte-cls-ui | GHSA-f6cw-gvwj-gw7f | Svelte CLS/UI namespace | | dim-svelte-ui | GHSA-w5m9-548m-c928 | Svelte CLS/UI namespace | | hydration-ui-cls | GHSA-596w-j9vp-pr5x | hydration/CLS lookalike | | dim-hydration-ui | GHSA-6797-g855-4767 | hydration/CLS lookalike | | hydration-cls-ui | GHSA-q635-2q7j-grxm | hydration/CLS lookalike | | vite-plugin-model | GHSA-p58m-2wrh-74xr | vite-plugin-* namespace | | vite-plugin-logo | GHSA-cw37-h4jm-63xh | vite-plugin-* namespace | | vite-plugin-cleaner | GHSA-rx9h-69c4-qhq5 | vite-plugin-* namespace | | hexdrift | GHSA-4p5f-gmxw-44x3 | Short generic name, same burst | | vortnode | GHSA-c3fw-fh7f-9h58 | Short generic name, same burst | | foldmap | GHSA-q4hh-v9hg-92w7 | Short generic name, same burst | | snapbuf | GHSA-82xg-f5h2-7xf8 | Short generic name, same burst |
All >= 0, all CWE-506 boilerplate ("considered fully compromised"). The cluster shape (Vue + Svelte + Vite hydration ecosystem in one batch, plus 4 generic short names) points to one operator publishing a plausibly-searchable frontend-tooling name burst. vue-template-compiler-plugin and vue-compiler-sfc-plugin read as legitimate build-tool add-ons and are the highest-risk of the 15.
Cluster G - npm CWE-506 boilerplate (2026-08-26, 5 packages)
| Package | GHSA | Note | |---|---|---| | renovate-config-doctolib | GHSA-8327-2h3c-rm8g | Renovate preset lookalike (highest priority in this cluster) | | express-security-policy | GHSA-3hxc-wppf-m25r | Express CSP-middleware lookalike | | array-shuffler-utils-99 | GHSA-22jp-536p-wwgr | 99 trailing token matches sentinel-version dep-confusion pattern | | fivem-tool-helper | GHSA-7jgv-5jq7-38g6 | FiveM (GTA mod) tooling lookalike | | fivem-tool-helper-v2 | GHSA-qgxc-chq8-gvrg | Twin publish, same target |
All >= 0, all CWE-506 boilerplate. renovate-config-doctolib is the highest-priority because Renovate extends: chains routinely pull shared presets from public npm - a mis-scoped resolve puts malicious config into every repo consuming the preset.
Registry state
All 28 packages yanked from their respective registries during the 2026-08-25 / 2026-08-26 takedown windows. Private mirrors that cached tarballs before takedown will keep serving them.
Related tracked activity
99.x.xand trailing-99sentinel-version dep-confusion pattern (Cluster Garray-shuffler-utils-99): continues the pattern frommsrcpoc@99.1.92026-08-25,stillm4ddpocs-*2026-08-23,lumen-pages-community@9.9.92026-08-22, andfund-list-filter/fund-portfolio@999.9.122026-08-24.- PyPI infostealer with sandbox evasion + log wiping (Cluster A
envprovisionSnow Stealer): the "hide inside exported functions + evasion + log cleanup" combo repeats a pattern seen across the 2026-08 PyPI batches; audit any PyPI package added in the last 30 days for the same shape. - *Wallet-theft `python-wallet-v
PyPI typosquat pattern** (Cluster C): the trailing-vand misspelled-libr-are recurring wallet-theft typosquat tells; verify anypython-wallet*` import against the exact expected package name before use. - Telegram-bot C2 for Python malware (Cluster B
minecraft-ytreceiver): Telegram Bot API is a recurring easy C2 channel because outboundapi.telegram.orgtraffic passes most home / small-office egress filters unnoticed. Any host with unexplainedapi.telegram.orgoutbound after a PyPI install deserves a look. - Discovery credits:
GitHub Advisory Database,OpenSSF malicious-packages(kam193),OpenSSF Package Analysis. No named threat actor.
Affected packages (28)
- npmarray-shuffler-utils-99
- npmdim-hydration-ui
- npmdim-svelte-ui
- PyPIenvprovision1.2.01.3.01.4.0
- npmexpress-security-policy
- npmfivem-tool-helper
- npmfivem-tool-helper-v2
- npmfoldmap
- npmhexdrift
- npmhydration-cls-ui
- npmhydration-ui-cls
- PyPIminecraft-ytreceiver0.1.00.2.00.3.00.4.00.5.0
- PyPIpython-walletlibr-v0.7.9
- npmrenovate-config-doctolib
- npmsnapbuf
- npmsvelte-cls-ui
- npmsvelte-ui-cls
- npmtwork-data-services-proxy-prime-api-v1-account-overdraft-info20.7.4
- npmtwork-data-services-sme-operations-authorizations20.8.9
- npmvite-plugin-cleaner
- npmvite-plugin-logo
- npmvite-plugin-model
- npmvortnode
- npmvue-compiler-sfc-plugin
- npmvue-template-compiler-plugin
- npmwm-eslint-fe
- npmwm-idp-sdk
- npmwm-lib-env-provider
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
- Cluster A - PyPI
envprovisionSnow Stealer infostealer (2026-08-24 -> published 2026-08-25, 1 package, 3 versions):envprovision@1.2.0, 1.3.0, 1.4.0(GHSA-xr9j-7gjp-x8fg, source hashcf3a48b407852ec03ead22bb8c16c03f252ba5fafa5c86ed1a739427e7d7d869, campaign2026-08-envprovision). Attack chain: exported functions hide the harmful activity from casual inspection; on Windows the package downloads and executes a remote binary disguised as a legitimate system tool; the binary self-identifies as Snow Stealer, an infostealer with sandbox-evasion routines and heavy obfuscation that harvests browser data (saved credentials, cookies, autofill, session tokens) and targets cryptocurrency wallet applications; post-execution the payload wipes logs and deletes temp files to erase forensic breadcrumbs. Any Windows host that ranpip install envprovisionshould be treated as compromised at infostealer level: rotate every browser-saved credential, transfer any hot-wallet funds off from a clean host, and hunt for the remote-executable filename in Windows Defender / EDR history even though the on-disk artifact is likely gone by the time you look - Cluster B - PyPI
minecraft-ytreceiverTelegram-C2 webcam + keylogger + file-stealer (2026-08-25, 1 package, 5 versions):minecraft-ytreceiver@0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.5.0(GHSA-cj4w-748x-8w4q, source hashaf6c2393210af3735a9353f40789859af7f87c96bcbd00178df62edb2ff7175e, campaign2026-08-minecraft-ytreceiver). The payload is a full surveillance kit: webcam capture, periodic screenshots, arbitrary-file exfiltration, and continuous keystroke logging, all beaconed and controlled via a Telegram bot channel used for command-and-control and data exfil. Theminecraft-yt*name suggests the operator targeted Minecraft server hobbyists / YouTube-tutorial followers rather than enterprise developers, but exposure is the same: any host that installed one of these five versions is a live keylogger with a webcam. Priority-1 remediation - webcam-capable devices in shared spaces (household desktop, streamer rig, shared studio) should be assumed to have footage of everything in front of the camera during the exposure window - Cluster C - PyPI
python-walletlibr-vWindows batch dropper at install time (2026-08-25, 1 package, 1 version):python-walletlibr-v@0.7.9(GHSA-pfrw-v3ch-6m8x, source hash6783cffec9c8f9377babacd1cb4490a278bace564b34861bf49b35258be7220c). The package masquerades as wallet software with stub-only user-facing code; during install on Windows it writes a batch file to%TEMP%, spawns a new command console, and runs arbitrary system commands (the published PoC harmlessly spawnscalc.exeas a proof but the same channel can execute anything). The name matches the "python-wallet*-v" pattern used by prior 2026 wallet-theft typosquats. Windows hosts that ranpip install python-walletlibr-vshould be treated as running an unknown attacker-chosen command with the installing user's privileges - *Cluster D - npm `twork-data-services-
internal-namespace dep-confusion cluster (2026-08-25, 2 packages, 2 versions)**:twork-data-services-proxy-prime-api-v1-account-overdraft-info@20.7.4(GHSA-crw8-m6mj-q6qp) andtwork-data-services-sme-operations-authorizations<=20.8.9(GHSA-c4f8-h585-2c73). The name pattern (twork-data-services-<internal-service>-<domain>-<endpoint>), the SME / overdraft banking domain vocabulary, and the specific20.xversion numbers (20.7.4 and 20.8.9) that mimic a mature internal-registry version line are the classic dep-confusion sentinel triple: guess an internal name, cover the exact version an internal resolver would look up, publish to public npm and wait for a mis-scoped install. Any org with an internal npm package namedtwork-*should audit their private registry for accidental hits from public-registry lookups during this window, and auditnpm install --loglevel silly` traces for the specific full names - *Cluster E - npm `wm-
internal-namespace dep-confusion cluster (2026-08-25, 3 packages)**:wm-eslint-fe(GHSA-59qg-7f2g-4p3c),wm-idp-sdk(GHSA-hq9q-4jgc-997v),wm-lib-env-provider(GHSA-54m9-xjx6-pf8x), all>= 0. Thewm-<function>-<scope>naming (frontend eslint config, IDP SDK, env-provider library) reads like a private company's internal-package prefix. No per-package hashes published beyond the CWE-506 boilerplate. Orgs whose internal npm registry uses awm-*` prefix should audit for any accidental public resolution during the exposure window - Cluster F - npm Vue / Svelte / Vite plugin lookalike cluster (2026-08-25, 15 packages):
vue-template-compiler-plugin(GHSA-gvmg-cf54-7769),vue-compiler-sfc-plugin(GHSA-v29w-qjvw-fm35) - lookalikes ofvue-template-compilerand@vue/compiler-sfc;svelte-ui-cls(GHSA-q88r-gcjf-c3jc),svelte-cls-ui(GHSA-f6cw-gvwj-gw7f),dim-svelte-ui(GHSA-w5m9-548m-c928),hydration-ui-cls(GHSA-596w-j9vp-pr5x),dim-hydration-ui(GHSA-6797-g855-4767),hydration-cls-ui(GHSA-q635-2q7j-grxm) - CLS/UI namespace lookalikes riding on the Svelte / hydration ecosystem;vite-plugin-model(GHSA-p58m-2wrh-74xr),vite-plugin-logo(GHSA-cw37-h4jm-63xh),vite-plugin-cleaner(GHSA-rx9h-69c4-qhq5) -vite-plugin-*namespace squatting;hexdrift(GHSA-4p5f-gmxw-44x3),vortnode(GHSA-c3fw-fh7f-9h58),foldmap(GHSA-q4hh-v9hg-92w7),snapbuf(GHSA-82xg-f5h2-7xf8) - short generic-sounding names that fit the same publishing burst. All>= 0, all CWE-506 boilerplate ("considered fully compromised"), no per-package IOCs published. The cluster shape (Vue + Svelte + Vite hydration ecosystem in one batch, plus 4 generic short names) suggests one operator publishing a burst of plausibly-searchable frontend-tooling names hoping a developer typo-installs one instead of the real@vue/*/svelte-*/vite-plugin-*package. Treat as any other CWE-506 pull - Cluster G - npm boilerplate CWE-506 (2026-08-26, 5 packages):
renovate-config-doctolib(GHSA-8327-2h3c-rm8g) - Renovate shared-config lookalike that could ride into any repo consuming shared Renovate presets;express-security-policy(GHSA-3hxc-wppf-m25r) - Express middleware lookalike, name reads like a legitimate CSP middleware;array-shuffler-utils-99(GHSA-22jp-536p-wwgr) - trailing99matches the99.x.xsentinel-version dep-confusion pattern seen in prior sweeps;fivem-tool-helper(GHSA-7jgv-5jq7-38g6) andfivem-tool-helper-v2(GHSA-qgxc-chq8-gvrg) - twin publications targeting the FiveM (GTA multiplayer mod) tooling ecosystem, matching the same pattern as prior game-mod supply-chain lures. All>= 0, no per-package hashes published beyond the standard GHSA boilerplate.renovate-config-doctolibis the highest-priority of the five - any org that consumes Renovate presets from adoctolibscope internally could accidentally resolve the public malicious variant
What to do
- 1Grep every lockfile (
requirements.txt,Pipfile.lock,poetry.lock,uv.lock,package-lock.json,yarn.lock,pnpm-lock.yaml) for:envprovision,minecraft-ytreceiver,python-walletlibr-v,twork-data-services-proxy-prime-api-v1-account-overdraft-info,twork-data-services-sme-operations-authorizations,wm-eslint-fe,wm-idp-sdk,wm-lib-env-provider,vue-template-compiler-plugin,vue-compiler-sfc-plugin,svelte-ui-cls,svelte-cls-ui,dim-svelte-ui,hydration-ui-cls,dim-hydration-ui,hydration-cls-ui,vite-plugin-model,vite-plugin-logo,vite-plugin-cleaner,hexdrift,vortnode,foldmap,snapbuf,renovate-config-doctolib,express-security-policy,array-shuffler-utils-99,fivem-tool-helper,fivem-tool-helper-v2 - 2For Cluster A (
envprovisionSnow Stealer): any Windows host that installed one of1.2.0/1.3.0/1.4.0should be treated as compromised at infostealer level. Rotate all browser saved credentials, cookies, session tokens, and MFA seeds on every profile on that host. Rotate cryptocurrency wallet keys if any wallet application ran on that host. Because the payload wipes logs and deletes temp artifacts, do NOT rely on "we did not find IOCs on disk" as a clean signal - the malware's design is specifically to make that check useless. Push source hashcf3a48b4…d869to endpoint scanning; hunt for the "Snow Stealer" family in EDR retrospective queries - 3For Cluster B (
minecraft-ytreceiver): any host that installed 0.1.0-0.5.0 is a live keylogger with a webcam feed. Webcam-capable devices in shared spaces are the priority-1 concern - a household desktop, streamer rig, or shared studio machine should be assumed to have footage of everything in front of the camera during the install-to-detection window. Rotate credentials for every service accessed from the compromised host (keylogger has captured them). Wipe the host and reinstall from clean media; the Telegram-C2 channel means the operator has arbitrary follow-on execution and simple removal is inadequate. Push source hashaf6c2393…175eto endpoint scanning - 4For Cluster C (
python-walletlibr-v): any Windows host that ranpip install python-walletlibr-v==0.7.9should be treated as having run an unknown attacker-chosen command with the installing user's privileges. Rotate any Windows-user-scoped credentials, check%TEMP%history for the batch dropper artifact (likely deleted by now), and hunt for the source hash6783cffe…220cin EDR retrospective queries. Any wallet software the user installed and unlocked during the same session should have its keys rotated / funds moved from a clean host - 5*For Clusters D and E (`twork-data-services-
,wm-` internal-namespace guesses): orgs whose internal npm registry uses a `twork-orwm-prefix should audit private-registry logs for accidental public-registry resolution during the exposure window. The specific20.7.4and20.8.9versions ontwork-data-services-suggest the operator knows or guessed the target's internal versioning line - treat as targeted dep-confusion. Configure npm to resolve internal names via--registry=<internal>` only, or use scoped names to make dep-confusion impossible in the first place - 6For Cluster F (Vue/Svelte/Vite lookalikes): uninstall any that landed and rotate credentials on the installing host. When adding
vue-*/svelte-*/vite-plugin-*packages, verify the exact publisher against the real@vue,svelte, or vite-plugin ecosystem publisher before install; small typos and namespace confusion are exactly the failure mode this cluster exploits.vue-template-compiler-pluginandvue-compiler-sfc-pluginin particular read as legitimate build-tool packages - 7For Cluster G (2026-08-26 boilerplate):
renovate-config-doctolibis the highest-risk of the batch because Renovate preset resolution can pull the malicious variant into every repo consuming the preset. Any org whose Renovate shared config lives under adoctolibGitHub org or npm scope should auditrenovate.jsonextends:chains for public-registry resolution.express-security-policyreads as a legitimate CSP middleware - developers hand-searching for CSP helpers may install it by mistake; verify againsthelmetand similar established middleware - 8For all
pip installruns in CI, prefer--only-binary=:all:- Clusters A, B, C all execute at install time (either viasetup.py/wheel side-effects or through overridden setup commands) and a wheels-only install with hash-pinning to a known-good hash is the reliable block - 9For all
npm installruns in CI, run with--ignore-scriptswhere possible; Cluster F entries publish no per-package IOCs so the specific execution path is unknown and--ignore-scriptsalone may not stop a payload that fires onrequire()/import - 10Verify none of these packages still resolves via your private mirror - internal caches routinely keep serving yanked tarballs after the public takedown
References
- GitHubGHSA-xr9j-7gjp-x8fg - envprovision (PyPI Snow Stealer Windows infostealer, browser + wallet)github.com
- GitHubGHSA-cj4w-748x-8w4q - minecraft-ytreceiver (PyPI webcam + screenshot + keylogger + file steal via Telegram C2)github.com
- GitHubGHSA-pfrw-v3ch-6m8x - python-walletlibr-v (PyPI Windows batch dropper, install-time arbitrary command execution)github.com
- GitHubGHSA-crw8-m6mj-q6qp - twork-data-services-proxy-prime-api-v1-account-overdraft-info@20.7.4 (npm internal-scope dep-confusion probe)github.com
- GitHubGHSA-c4f8-h585-2c73 - twork-data-services-sme-operations-authorizations (npm internal-scope dep-confusion probe)github.com
- GitHubGHSA-59qg-7f2g-4p3c - wm-eslint-fe (npm wm-* internal-namespace dep-confusion)github.com
- GitHubGHSA-hq9q-4jgc-997v - wm-idp-sdk (npm wm-* internal-namespace dep-confusion)github.com
- GitHubGHSA-54m9-xjx6-pf8x - wm-lib-env-provider (npm wm-* internal-namespace dep-confusion)github.com
- GitHubGHSA-gvmg-cf54-7769 - vue-template-compiler-plugin (npm Vue lookalike)github.com
- GitHubGHSA-v29w-qjvw-fm35 - vue-compiler-sfc-plugin (npm @vue/compiler-sfc lookalike)github.com
- GitHubGHSA-q88r-gcjf-c3jc - svelte-ui-cls (npm Svelte CLS/UI cluster)github.com
- GitHubGHSA-f6cw-gvwj-gw7f - svelte-cls-ui (npm Svelte CLS/UI cluster)github.com
- GitHubGHSA-w5m9-548m-c928 - dim-svelte-ui (npm Svelte CLS/UI cluster)github.com
- GitHubGHSA-596w-j9vp-pr5x - hydration-ui-cls (npm hydration/CLS cluster)github.com
- GitHubGHSA-6797-g855-4767 - dim-hydration-ui (npm hydration/CLS cluster)github.com
- GitHubGHSA-q635-2q7j-grxm - hydration-cls-ui (npm hydration/CLS cluster)github.com
- GitHubGHSA-p58m-2wrh-74xr - vite-plugin-model (npm vite-plugin-* namespace squatting)github.com
- GitHubGHSA-cw37-h4jm-63xh - vite-plugin-logo (npm vite-plugin-* namespace squatting)github.com
- GitHubGHSA-rx9h-69c4-qhq5 - vite-plugin-cleaner (npm vite-plugin-* namespace squatting)github.com
- GitHubGHSA-4p5f-gmxw-44x3 - hexdrift (npm generic-name burst)github.com
- GitHubGHSA-c3fw-fh7f-9h58 - vortnode (npm generic-name burst)github.com
- GitHubGHSA-q4hh-v9hg-92w7 - foldmap (npm generic-name burst)github.com
- GitHubGHSA-82xg-f5h2-7xf8 - snapbuf (npm generic-name burst)github.com
- GitHubGHSA-8327-2h3c-rm8g - renovate-config-doctolib (npm Renovate preset lookalike)github.com
- GitHubGHSA-3hxc-wppf-m25r - express-security-policy (npm Express CSP-middleware lookalike)github.com
- GitHubGHSA-22jp-536p-wwgr - array-shuffler-utils-99 (npm sentinel-99 dep-confusion probe)github.com
- GitHubGHSA-7jgv-5jq7-38g6 - fivem-tool-helper (npm FiveM/GTA mod tooling lookalike)github.com
- GitHubGHSA-qgxc-chq8-gvrg - fivem-tool-helper-v2 (npm FiveM/GTA mod tooling lookalike, twin publish)github.com
- GitHubGitHub Advisory Database - recent npm malware advisoriesgithub.com
- GitHubGitHub Advisory Database - recent pip malware advisoriesgithub.com