
ChainVeil and ViteVenom are DPRK’s PolinRider Campaign
OpenSourceMalware analyzes Checkmarx Zero's ChainVeil (nine malicious npm packages using a 77KB RAT and a TRON/Aptos/BSC blockchain C2 channel) and ViteVenom (seven Vite-ecosystem typosquats) reports, and shows five values -- two TRON wallets, one Aptos address, and two XOR decryption keys -- are byte-for-byte identical to infrastructure they published in March for the DPRK/Lazarus Group campaign PolinRider, predating Checkmarx's report by over 70 days. They conclude ChainVeil/ViteVenom (maintainer "successkeyteck"/SuccessKey) are PolinRider running directly against npm and Vite, and list the full chronological table of typosquatted packages, versions, and maintainers.
What it is
OpenSourceMalware's attribution analysis arguing that Checkmarx Zero's ChainVeil (nine malicious npm packages, published under maintainer successkeyteck; Checkmarx named the operator "SuccessKey") and its sequel ViteVenom (seven Vite-ecosystem typosquats) are not a new actor but the DPRK/Lazarus PolinRider campaign running against npm and Vite. The practical payload of the page is a concrete IOC set and package list you can feed into detection.
How it works
The malicious packages use a four-tier blockchain C2 spanning TRON, Aptos, and Binance Smart Chain, delivering a 77KB RAT. Attribution rests on five values that OpenSourceMalware published in its March 8, 2026 PolinRider dossier — 100 days before Checkmarx's report and 71 days before ChainVeil's first npm package — and which reappear byte-for-byte in ChainVeil:
- XOR key
2[gWfGj;<:-93Z^C - XOR key
m6:tTh^D)cBz?NM] - TRON wallet
TMfKQEd7TJJa5xNZJZ2Lep838vrzrs7mAP - TRON wallet
TXfxHUet9pJVU1BgVkBAbrES4YUc1nGzcG - Aptos address
0xbe037400670fbf1c32364f762975908dc43eeb38759263e7dfcdabc76380811e
The primary TRON wallet had been rotated 17 times (17 payload updates traced to June 2025); the same wallets/keys also anchor the author's March 31 TasksJacker report. A persistent A6- marker convention is treated as an operator signature: ChainVeil markers A6-519-81, A6-420, A6-317, A6-318, plus a6-shadow-15 (tailwind-color-shades) and a6-orion-271 (secure-box).
What to do
- Merge any separate ChainVeil / ViteVenom / PolinRider tracking entries into one.
- Treat all versions of the listed packages as malicious — the author states these are DPRK-owned and some remain live on npm, some pulled or replaced with
0.0.1-securityplaceholders.
Named packages (maintainer successkeyteck unless noted):
| Package | Malicious versions | Campaign |
|---|---|---|
| tailwindcss-animatics | 1.0.1 | ChainVeil |
| tailwindcss-animates-kit | 1.0.1 | ChainVeil |
| tailwindcss-merge | 1.0.1–1.0.4 | ChainVeil |
| sass-formats | 1.0.2–1.0.5 | ChainVeil |
| clsx-tailwind | 1.0.1 | ChainVeil |
| typeorm-encrypt | 1.0.1 | ChainVeil |
| rate-limit-flexible | 1.0.1, 1.0.2 | ChainVeil |
| sass-format | 1.0.1 | ChainVeil |
| rate-limits-flexible | 1.0.1 | ChainVeil |
| @vite-mcp/vite-type | 6.44.1 (maint. vite-mcp) | ViteVenom |
| @vite-pro/vite-ui | 2.5.10 (maint. vite-pro) | ViteVenom |
The fetched text is truncated mid-table (@vitets/vi), so the ViteVenom list is incomplete — consult the source for the remaining entries. Also flagged as PolinRider: tailwind-mainanimation (npm user allavin).
Caveats
Attribution is blockchain-infrastructure-based. Checkmarx itself rated shared-operator only "high confidence" and explicitly noted "blockchain attribution carries inherent limitations" and that a "shared-infrastructure-as-a-service model cannot be ruled out" — i.e. shared wallets/keys don't strictly prove a single operator. The typosquat-namespace overlap is described as a pattern, not a shared IOC.
Technologies named here
- tailwindcss-animatics
- Checkmarx Zero
- tailwindcss-animates-kit
- OpenSourceMalware
- tailwindcss-merge
- sass-formats
- clsx-tailwind
- typeorm-encrypt
- rate-limit-flexible
- sass-format
- rate-limits-flexible
- @vite-mcp/vite-type
- @vite-pro/vite-ui
- @vitets/vite-ts
- @vite-ts/vite-ui
- @vite-tab/tab
- @vite-ln/build-ts
- @uw010010/vite-tree
- tailwind-mainanimation
- tailwind-color-shades
- secure-box
- npm ecosystem
- Vite ecosystem
- GitHub
- Go
- Packagist
- PyPI
- VS Code
- npm
- Checkmarx
- Vite
Techniques named here
- npm supply chain / typosquatting attack
- Blockchain-based command and control
- Remote access trojan deployment
- XOR-based decryption
- Credential harvesting via VS Code tasks
- Wallet/infrastructure rotation
- IOC marker naming scheme
Threat actors named here
- PolinRider
- ChainVeil
- ViteVenom
- Lazarus Group
- TasksJacker
- Contagious Interview
- SuccessKey
- DPRK
Related in Threat Intel
Reverse Engineering the Six Stages of MacSync Stealer and RAT
AI-Coded Malware | Analyzing Vibe-Coded AD Enumeration | Huntress
