Illustration: testmetest npm campaign armed 42 real GitHub repositories, JFrog says
npm / GitHub Pacotes npm da campanha testmetest · Exploitation confirmed

testmetest npm campaign armed 42 real GitHub repositories, JFrog says

· 1 min read

JFrog Security Research reported on Oct 26, 2026 that the testmetest npm campaign armed 42 GitHub repositories belonging to 11 legitimate owners, including one organization. Hidden hooks for Claude, Gemini, Cursor and VS Code run the .github/init.js payload when a developer opens the project, and the decoded payload publishes new malicious npm packages using stolen npm tokens or GitHub OIDC trusted publishing. Rotate GitHub and npm credentials and audit repositories by Git tree enumeration, since 12.9 to 13.7 MB wrappers escaped GitHub code search.

WhatsApp LinkedIn X
HighSupply chainExploitation confirmedFix unconfirmed
In this article
  1. What happened
  2. Why it matters
  3. What to do
  4. For the technical team
  5. Timeline
  6. Sources

What happened

JFrog Security Research reported on Oct 26, 2026 that the testmetest npm campaign armed 42 GitHub repositories belonging to 11 legitimate owners, from students to one organization. The malware runs when a developer opens the project in Claude Code, Gemini CLI, Cursor or VS Code. The payload publishes new malicious npm packages using stolen npm tokens or GitHub OIDC trusted publishing.

Incidents like this, every morning

The ones that need action first, in a 3-minute read.

Free · 1 email a day, in the morning · no spam, unsubscribe in 1 click

Why it matters

Legitimate repositories became an attack vector against developers who trust the code. The payload self-propagates by publishing new malicious packages, widening the software supply chain compromise and potentially tainting builds and customers. The malicious files, 12.9 to 13.7 MB, escaped GitHub code search, so normal search-based detection fails.

What to do

Immediately rotate GitHub and npm credentials and tokens, revoke unused GitHub OIDC trusted publishing, and audit repositories by Git tree enumeration, not code search. Review permissions on accounts with access to published npm packages.

For the technical team

Affected
npm / GitHub Pacotes npm da campanha testmetest; 42 repositórios GitHub de 11 donos legítimos, incluindo uma organização · 42 GitHub repositories belonging to 11 legitimate owners, including established developers and one organization; npm packages from the testmetest campaign.
Exploitation
Exploitation confirmed in JFrog Security Research analysis dated Oct 26, 2026. The 42-repository count comes from JFrog's own analysis. SafeDep's Oct 22, 2026 research covered the npm worm, not the repo total. JFrog links the same hijacked accounts to cPanel CVE-2026-41940 scanning, with no confirmed downstream cPanel compromise.
Fix
No fix published. Mitigation cited by JFrog: rotate GitHub and npm credentials and audit repositories by Git tree enumeration.
Vector
Hidden hooks for Claude Code, Gemini CLI, Cursor and VS Code run the .github/init.js payload when the developer opens the project. Polymorphic wrappers of 12.9 to 13.7 MB escaped GitHub code search and the contents API. Newer packages hide the payload in a native addon (.napi_cache, XOR 0x96) that refuses to run in CI, containers or debuggers.
More details
The decoded payload is a publisher that uses stolen npm tokens or GitHub OIDC trusted publishing to push new malicious npm releases. JFrog does not attribute the campaign to the original Miasma operators.

Indicators (IoCs)

  • .github/init.js

Timeline

  1. JFrog says the 42 repos were rigged to run malware when a developer opens one in Claude Code, Gemini CLI, Cursor or VS Code; the ~13MB payload was too large for GitHub's code search to index.

  2. JFrog research shows the campaign hit 42 real repositories with hidden hooks for AI tools.

Sources 2 sources

Get the next one tomorrow morning

One email a day with what changed, what to fix first and how. After signing up you get the full feed.

Free · 1 email a day, in the morning · no spam, unsubscribe in 1 click

Share it with your team

Whoever handles security with you should get it too.

LinkedIn X

Your colleague gets a confirmation request. Nothing is sent unless they confirm.

See all news

Read also

Before you go: get this every day

The HIFY Radar daily edition lands every morning with the incidents that need action. Free.

Free · 1 email a day, in the morning · no spam, unsubscribe in 1 click