PolinRider Campaign Injected Malware into 675 Public GitHub Repositories, Researchers Say

· Original article ↗

Summary

OpenSourceMalware reports 675 public repositories across 352 owners contained PolinRider payloads. The malware can execute code retrieved from blockchain transactions; researchers attribute the campaign to DPRK-linked actors, while the initial infection vector remains未

Key points

  • OpenSourceMalware says it found malicious JavaScript in 675 public GitHub repositories belonging to 352 owners as of March 8, 2026.
  • The payload is appended to JavaScript project configuration files and runs when build tools import them.
  • Researchers describe the initial infection vector as uncertain; they cite a compromised npm package and a malicious VS Code extension as possible routes.
  • The malware retrieves XOR-encrypted JavaScript from TRON, Aptos, or Binance Smart Chain transactions, then decrypts and executes it.
  • A Windows batch file can amend the latest Git commit while preserving its timestamp and force-push the rewritten history, according to the analysis.
  • The researchers attribute the campaign to DPRK and associate PolinRider with Lazarus Group-related activity; these are their assessments.
  • Recommended steps include auditing JavaScript config files and dependencies, rotating exposed secrets, and checking systems with the researchers’ detection guidance.

Article Details

Attack Vectors
  • A suspected compromised npm package executes during installation or build and appends obfuscated JavaScript to project configuration files. The exact initial dropper remains unknown; the researchers also identify malicious VS Code extensions as a possible entry vector.
  • Injected configuration modules execute automatically when imported by build tools, extending exposure to downstream users and contributors.
  • The actor published malicious npm packages named tailwind-mainanimation and tailwind-autoanimation. The latter appends the payload to src/index.js.
  • A Windows batch script amends the latest Git commit, preserves its apparent author, message, and timestamp, bypasses Git hooks, and force-pushes infected content.
  • Blockchain transaction data supplies encrypted JavaScript payloads, which are decrypted and executed at runtime. Detached child processes allow execution to survive parent termination.
Defensive Notes
  • Audit JavaScript configuration files for unexpected content after export default or module.exports, particularly whitespace-padded appended code.
  • Search for the signatures rmcej%otb%, the seed 2857687, and global['!']='8-270-2';var _$_1e42=.
  • Review recently added or updated dependencies and postinstall scripts, especially scripts that modify project-root configuration files.
  • Rotate secrets, tokens, and credentials that were present in affected build environments.
  • Remove injected payloads, delete temp_auto_push.bat and config.bat when present, and remove config.bat entries from .gitignore.
  • Inspect globally installed npm packages and VS Code extensions for the initial dropper, then force-push clean repository contents and consider signing commits.
  • The supplied scanner flags Git reflog anomalies only alongside other compromise findings.

Indicators of compromise

TypeIndicatorContext
URLhxxps[:]//api[.]trongrid[.]io/v1/accounts/TMfKQEd7TJJa5xNZJZ2Lep838vrzrs7mAP/transactionsSpecific TRON account transaction resource queried by the malware to retrieve encrypted JavaScript payloads for its primary blockchain-based C2 mechanism.

MITRE ATT&CK

Threat Actors

Malware

Products

Tools

Countries

Related Articles