PolinRider

PolinRider is the cluster where nobody is tricked. A legitimate repository has malicious code written into configuration files developers rarely read, such as postcss.config.mjs, tailwind.config.js, eslint.config.mjs and .vscode/tasks.json, and the project builds and runs as before.

OpenSourceMalware reports more than 2,400 affected repositories across over a thousand owners, almost all of them victims of a compromised account, a merged malicious pull request or a tampered dependency. The list is published as a hunting aid and carries that warning on every page.

Named individuals
None profiled on this site yet
Fabricated personas
None reconstructed under this tag
Indicators
151 in the searchable index
Hunts
1 in the hunt library

How it differs from the other clusters here

The payload is the one Contagious Interview delivers, reported by OpenSourceMalware as operationally merged; the difference is delivery.

Removing the lure removes every social signal: no recruiter to check, no interview, no application to correlate.

A developer pulling a tampered dependency is compromised without being contacted.

Command and control is reported to read encrypted instructions from TRON and Aptos wallet addresses, which cannot be seized or sinkholed.

This resembles the EtherHiding tracker and OtterCookie's reported smart-contract reads, but the three are related in approach, not confirmed as one technique.

Compare Lazarus GroupAPT38KimsukyRGB (Reconnaissance General Bureau)Remote Worker Fraud / Contagious InterviewAndarielAPT37KonniMoonstone Sleet

What a defender would see

The observable is a configuration file changing when nothing about the project's configuration did, such as postcss.config.mjs or tailwind.config.js in an unrelated pull request.

.vscode/tasks.json executes on folder open, so it belongs in review scope.

On the dependency side, lockfile discipline and review of transitive updates do more than any endpoint control.

The DPRK Repo Scanner offers a remote GitHub search and a local signature scan of a checkout; treat results as leads.

An affected repository is far more likely a victim than a participant, and nothing on that page accuses its owner.

Hunts for this cluster

Full hunt library

Indicators

The 151 indicators the index holds under this cluster. The complete index is on Remote Workers.

Indicator Type Persona and cluster Report date Sources
260120.vercel.app domain CURATED PolinRider Contagious Interview 2026-04-12 2
default-configuration.vercel.app domain CURATED PolinRider Contagious Interview 2026-04-12 2
0x1eef0849eda15d87f64e51c73c8442cf3c8bcef3 wallet address MATCHED IN SOURCE PolinRider 2026-11-04 1
103.179.143.219 fixed line ip address MATCHED IN SOURCE PolinRider 2026-11-04 1
95.135.181.151 fixed line ip address MATCHED IN SOURCE PolinRider 2026-11-04 2
85.239.60.213 data centre ip address MATCHED IN SOURCE Lazarus Group Contagious Interview PolinRider 2025-11-13 2
85.239.62.36 data centre ip address MATCHED IN SOURCE Lazarus Group Contagious Interview PolinRider 2025-11-13 3
c9dab995cf61a066db149c8d5d4ce171fb9d20d246994a1fa4f27a5885088bbb file hash MATCHED IN SOURCE PolinRider 2026-10-30 1
136.0.9.8 data centre ip address MATCHED IN SOURCE PolinRider Contagious Interview Lazarus Group 2025-10-27 6
166.88.4.2 data centre ip address MATCHED IN SOURCE PolinRider Contagious Interview Lazarus Group 2025-10-27 6
188.43.33.249 fixed line ip address MATCHED IN SOURCE IT Worker Fraud PolinRider Contagious Interview 2025-04-23 5
23.27.202.27 data centre ip address MATCHED IN SOURCE Contagious Interview PolinRider Lazarus Group 2025-10-27 11
02b7e072c51ac6f7037c2fd4727fcdb06bee6f74cc1af182f7180d8b5e904d63 file hash MATCHED IN SOURCE PolinRider 2026-09-30 1
181.214.149.147 data centre ip address MATCHED IN SOURCE NullReceiver PolinRider 2026-09-25 2
181.214.149.148 data centre ip address MATCHED IN SOURCE NullReceiver PolinRider 2026-09-25 2
198.105.127.210 data centre ip address MATCHED IN SOURCE Contagious Interview PolinRider 2025-12-08 9
23.27.20.187 data centre ip address MATCHED IN SOURCE NullReceiver PolinRider 2026-09-25 2
3be09f8c0a95f993a0ee99e08dca08eb15e1c0abeaf90b190a76e842028e552b file hash MATCHED IN SOURCE PolinRider 2026-09-30 1
45.137.198.133 data centre ip address MATCHED IN SOURCE PolinRider 2026-09-30 1
5cbcb8e11f6152c80cf88f752bcf9cb1077a88eac5e4eb02471f093248db01ac file hash MATCHED IN SOURCE PolinRider 2026-09-30 1
84a3f1bd81ae4780776c93f9a5ec1cb0d7d6fb613f4a104cceaa93568bdbd0ab file hash MATCHED IN SOURCE PolinRider 2026-09-30 1
f6d9f2fbf8091f431a802c4a0b8a5661278ee3f0854fb9040a0702e894b2309e file hash MATCHED IN SOURCE PolinRider 2026-09-30 1
1a21bad1df69b51efebfd2fae849ac27722b0dfac7b1cb459cf81d38b36f9705 file hash MATCHED IN SOURCE PolinRider 2026-09-26 1
3b572a613f5013a64e1877dfed3873f2bcbd52e5259b199d41e02c33840abbcb file hash MATCHED IN SOURCE PolinRider 2026-09-26 1
6200054e0ea8575c3af37e4da10e23249bf0a17d1d6843ecc81ee35af2f7d1f2 file hash MATCHED IN SOURCE PolinRider 2026-09-26 1
90a3875ff84a53473107a03cec6ad19636da0cc0eccb02c036d03b8f2a5dff28 file hash MATCHED IN SOURCE PolinRider 2026-09-26 1
91e334655d31f84963e6b9369d41698f51b00d7a203cf314ceba01780e6f337c file hash MATCHED IN SOURCE PolinRider 2026-09-26 1
fbf0e36dd7eb1e70fc4868a8d0d0cd8f6c80753241cd88a3518f40e9a67d232e file hash MATCHED IN SOURCE PolinRider 2026-09-26 1
515a53291d25d229e1f9fa72e66407e1cfd7e77c91478400b24d5185af68531a file hash MATCHED IN SOURCE PolinRider 2026-09-21 1
@vite-ln/build-ts@5.15.10 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
@vite-mcp/vite-type@6.44.1 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
@vite-pro/vite-ui@2.5.10 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
@vite-tab/tab@3.15.10 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
@vite-ts/vite-ui@6.44.1 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
@vitets/vite-ts@1.5.10 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
clsx-tailwind@1.0.1 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
rate-limit-flexible@1.0.1 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
rate-limit-flexible@1.0.2 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
rate-limits-flexible@1.0.1 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
sass-format@1.0.1 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
sass-formats@1.0.2 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
sass-formats@1.0.3 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
sass-formats@1.0.4 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
sass-formats@1.0.5 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
tailwindcss-animates-kit@1.0.1 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
tailwindcss-animatics@1.0.1 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
tailwindcss-merge@1.0.1 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
tailwindcss-merge@1.0.2 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
tailwindcss-merge@1.0.3 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1
tailwindcss-merge@1.0.4 Taken down checked 2026-10-01 npm package BULK DATASET PolinRider Contagious Interview 2026-07-17 1

Where the evidence comes from

Record Publisher Published Supports Indicators
DPRK Contagious Interview Malware Weaponizes Microsoft VSCode Tasks | OpenSourceMalware OpenSourceMalware 2025-11-29 Indicators 47
ChainVeil and ViteVenom: malicious npm releases OpenSourceMalware 2026-07-17 Indicators 22
PolinRider Caused Dozens of npm, Go, PHP Compromises | OpenSourceMalware OpenSourceMalware 2026-07-31 Indicators 16
PolinRider: DPRK Threat Actor Implants Malware in Hundreds of GitHub Repos PolinRider: Config-File Injection and Git History Rewrite OpenSourceMalware 2026-04-11 HuntIndicators 15
A Developer's Guide to Getting Rid of PolinRider PolinRider: Config-File Injection and Git History Rewrite OpenSourceMalware 2026-08-13 HuntIndicators 10
PolinRider Switches to Ethereum C2 in 30+ Repositories SafeDep 2026-09-30 Indicators 10
PolinRider: malicious npm releases OpenSourceMalware 2026-08-25 Indicators 10
Contagious Interview: Tracking the VS Code Tasks Infection Vector Abstract Security 2026-01-20 Indicators 9
Cross-Chain TxDataHiding Crypto Heist: A Very (Very) Chainful Process (Part 4) Ransom-ISAC 2025-12-08 Indicators 8
Cross-Chain TxDataHiding Crypto Heist: A Very Chainful Process (Part 1) Ransom-ISAC 2025-11-13 Indicators 7
Joyfill npm Packages Compromised with Blockchain C2 Loader - Real-time Open Source Software Supply Chain Security SafeDep 2026-07-29 Indicators 6
Lazarus Group is Using the Solana Blockchain as a Dead-Drop C2 Channel -- and Nobody Noticed for 4 Months Break Glass Intelligence 2026-03-16 Indicators 6
PolinRider is A/B Testing its Way Past Your Detections | OpenSourceMalware OpenSourceMalware 2026-09-26 Indicators 6
The Polinrider and Glassworm Supply Chain Offensive: A Forensic Post-Mortem - Nocturnalknight's Lair Nocturnal Knight 2026-04-03 Indicators 6
Two Joyfill npm Beta Releases Compromised to Deliver DEV#POPPER Remote Access Trojan | Socket Socket 2026-07-28 Indicators 6
Void Dokkaebi Uses Fake Job Interview Lure to Spread Malware via Code Repositories Trend Micro 2026-04-21 Indicators 6
astro.config.mjs Supply Chain Attack via Blockchain C2 - Real-time Open Source Software Supply Chain Security SafeDep 2026-06-12 Indicators 3
Cross-Chain TxDataHiding Crypto Heist: A Very Chainful Process (Part 2) Ransom-ISAC 2025-10-27 Indicators 3
Earliest Known PolinRider Malware Found in 2025 npm Packages | OpenSourceMalware OpenSourceMalware 2026-10-30 Indicators 3
EtherHiding: The trojan in your toolchain Cyber Centre 2026-03-31 Indicators 3
Inside DPRK’s npm Malware Factory: 108 Packages & 261 Versions Panther Labs 2026-04-24 Indicators 3
PolinRider DPRK Attack Expands Across GitHub | OpenSourceMalware OpenSourceMalware 2026-04-12 Indicators 3
PolinRider Returns: Hijacked npm Packages Use Ethereum Blockchain to Conceal Malware Infrastructure | OX Security OxSecurity 2026-11-04 Indicators 3
XCTDH Adopts Hash Hiding Ransom-ISAC 2026-09-25 Indicators 3
DPRK IT Workers tayvano (lazarus-bluenoroff-research) 2025-06-19 Indicators 1
GitLab Threat Intelligence Team reveals North Korean tradecraft GitLab Threat Intelligence 2026-02-19 Indicators 1
How to Get Scammed (by DPRK Hackers) OZ 2026-01-13 Indicators 1
How we proved North Korea's blockchain malware campaign Crystal Intelligence 2025-12-17 Indicators 1
PolinRider Jumps the Fence to Go, Packagist, npm, PyPI | OpenSourceMalware OpenSourceMalware 2026-07-08 Indicators 1
PolinRider Loader Reappears in Hijacked npm Packages Sonatype 2026-11-04 Indicators 1
PolinRider Poisons Nova, Using On-Chain Transactions as a C2 Manager SlowMist 2026-09-21 Indicators 1
PolinRider: North Korea-Linked Supply Chain Campaign Expands Across Open Source Ecosystems | Socket Socket 2026-07-01 Indicators 1
Russian Infrastructure Plays Crucial Role in North Korean Cybercrime Operations Trend Micro 2025-04-23 Indicators 1
StegaBin: 26 Malicious npm Packages Use Pastebin Steganography to Deploy Multi-Stage Credential Stealer | Socket Socket 2026-02-27 Indicators 1

Further reading

Published research on this cluster. None of it is this site’s work.

  • PolinRider OpenSourceMalware · 2026-07-10

    The primary source for the campaign and the origin of the compromised-repository list this site republishes. Read it first: it carries the injection signatures, the config files targeted, and the per-snapshot repository counts.

  • North Korea's Contagious Interview Campaign Escalates: 338 Malicious npm Packages, 50,000 Downloads Socket.dev · 2025-10-10

    The registry side of the same problem. Useful here because the npm packages in this site's ruleset for this campaign impersonate Tailwind and PostCSS utilities, which is what makes a tampered config file look unremarkable.

  • Lazarus-Linked npm Malware Masquerades as Rollup Polyfills JFrog Security Research · 2026-06-30

    A worked example of build tooling used as the hiding place rather than the target. Read it for what a malicious package pretending to be part of the toolchain actually looks like in a project tree.

Disclaimer Cluster names are labels applied by researchers and agencies, not units North Korea publishes. Vendors draw boundaries differently, so a tag records how the cited sources characterise the activity, not a finding of this site. See the sourcing methodology.