Attackers hijack 42 GitHub repositories in npm worm campaign “testmetest”
Comments on “Attackers hijack 42 GitHub repositories in npm worm campaign “testmetest””
Claim-checked. Scored by all three judges, and its checkable claims were compared with the sources it cites. How far stories are checked
JFrog found 42 GitHub repositories, belonging to 11 legitimate owners, planted with malware tied to the "testmetest" npm worm, which it says resembles Shai-Hulud variants. Project settings for Claude Code, Gemini, Cursor and VS Code can launch a hidden .github/init.js that targets GitHub and npm tokens. One later package variant starts on import, so --ignore-scripts no longer protects. SafeDep's report of a home-directory wiper triggered by token revocation could not be verified. The number of victims is unknown.
Why it ranked
No. 21 of 127 with a score of 0.75. The panel rated it highest on reader interest (0.87) and practical relevance (0.86), lowest on new information (0.57). Placed No. 21, No. 4 by score alone: the ninth Security story of the day (−0.080), and close to “Native addon camouflage: 42 armed GitHub repos reveal hidden NPM publisher”, No. 1 on Wednesday 28 October 2026 (−0.040). The placement terms move stories; they are not part of the score.
- AI judgeJudge 2claude-haiku-5-5
- Active npm/GitHub supply-chain worm with concrete IOCs, practical remediation advice and technical detail on concealment; mostly reports JFrog's findings with partial evidence gaps.
- AI judgeJudge 3gpt-5.6-luna
- A well-sourced report of a large npm/GitHub supply-chain campaign, with concrete execution paths, credential risks, concealment techniques, and response guidance. Some campaign details overlap recently covered security stories.
Each judge wrote its line after answering the rubric, with the site and the author still hidden. Every answer behind this is in the table under Score.
Score
0.75total under rubric v2.3
- Significance0.67
- Reader interest0.87
- Audience breadth0.67
- Practical relevance0.86
- Substantiated0.75
- Technical depth0.79
- New information0.57
- Counts against: Promotional0.03
- Counts against: Overclaim0.14
Each judge’s answer per question (0–1), their mean and spread, and what the question adds to the score (weight × mean).
| Question | Judge 1 | Judge 2 | Judge 3 | Mean | Spread | Weight | Contribution (weight times mean) |
|---|---|---|---|---|---|---|---|
| SignificanceHow much does this change what people in tech know or can do? | 0.71 | 0.55 | 0.76 | 0.67 | 0.21 | +0.24 | +0.162 |
| Reader interestWould a well-informed senior engineer or tech founder want to read this today, and likely pass it on? | 0.84 | 0.85 | 0.91 | 0.87 | 0.07 | +0.26 | +0.225 |
| Audience breadthHow many people who build technology does it concern? | 0.71 | 0.67 | 0.62 | 0.67 | 0.09 | +0.13 | +0.087 |
| Practical relevanceHow useful is it to someone who builds software or tech products? | 0.86 | 0.85 | 0.86 | 0.86 | 0.01 | +0.22 | +0.189 |
| SubstantiatedHow well is it backed? Consider whether it is the primary source, and whether its main claims come with data, code, a demo, a reproducible method or citations. | 0.65 | 0.75 | 0.84 | 0.75 | 0.19 | +0.05 | +0.037 |
| Technical depthHow technically substantive is it? | 0.78 | 0.80 | 0.78 | 0.79 | 0.03 | +0.05 | +0.039 |
| New informationDoes it contain information absent from the stories covered in the last 7 days (list provided)? | 0.72 | 0.60 | 0.38 | 0.57 | 0.34 | +0.05 | +0.028 |
| PromotionalIs it mainly marketing with little substance (a press release, ad or sponsored post with no real information)? A launch post that carries real news is not promotional. | 0.05 | 0.03 | 0.01 | 0.03 | 0.04 | −0.19 | −0.006 |
| OverclaimDo the headline or conclusions claim more than the body supports? | 0.24 | 0.10 | 0.08 | 0.14 | 0.16 | −0.11 | −0.015 |
| Sum of contributions | +0.746 | ||||||
| Claim-check penalty | 0.000 | ||||||
| Total, as published | 0.746 | ||||||
Spread is the highest minus the lowest judge answer. marks a spread above 0.40: the judges disagree, and the story is marked contested.
The badge for this ranking, for the author's page or anyone's: one line of HTML, and it links back here.
<a href="https://rubric.hrih.si/editions/2026-10-30/21/"><img src="https://rubric.hrih.si/badge/2026-10-30/21.svg" alt="Ranked #21 on Rubric, 30 Oct 2026" width="245" height="28"></a>Claim check
Claim check: 6 matches source · 2 couldn’t check. Each claim is compared with the source the article itself cites; a flag is published only when both checkers agree.
Matches sourceNumber
JFrog says the 42 compromised GitHub repositories belong to 11 legitimate owners.
The cited source says the same thing.
The article says “the 42 compromised GitHub repositories belong to 11 legitimate owners”
The source says “JFrog Security Research has identified 42 armed third-party GitHub repositories across 11 legitimate owners connected to the testmetest npm campaign”
Source cited by the article: research.jfrog.com/post/beyond-testmetest-42-hijacked-github-repos
Matches sourceGeneralization
JFrog says the planted malware resembles Shai-Hulud variants.
The cited source says the same thing.
The article says “which JFrog says resembles Shai-Hulud variants”
The source says “our evidence confirms shared tooling and a Shai-Hulud-descendant payload, but does not establish that the original Miasma operators are responsible”
Source cited by the article: research.jfrog.com/post/beyond-testmetest-42-hijacked-github-repos
Matches sourceDate
SafeDep described the npm side of the campaign on Oct. 22 but found no compromised third-party packages or victims.
The cited source says the same thing.
The article says “Security provider SafeDep had already described the campaign’s npm side on Oct. 22, but had found no compromised third-party packages or victims”
The source says “As of 22 October 2026, SafeDep has found no compromised third-party packages or victims”
Source cited by the article: safedep.io/testmetest-npm-worm-miasma-variant
Matches sourceNumber
JFrog lists 15 npm packages for which at least one version was deemed malicious.
The cited source says the same thing.
The article says “JFrog lists 15 npm packages for which at least one version was deemed malicious”
The source says “This list contains only packages that have releases classified as malicious. Benign releases are intentionally excluded”
Source cited by the article: research.jfrog.com/post/beyond-testmetest-42-hijacked-github-repos
Couldn’t checkCausal conclusion
SafeDep says the worm installs a wiper that deletes the home directory once victims revoke the stolen GitHub token.
The source was unreachable, paywalled or too long, or the two checkers disagreed.
The article says “SafeDep says the worm installs a wiper that deletes the home directory as soon as victims revoke the stolen GitHub token”
The source says No passage could be compared.
Source cited by the article: safedep.io/testmetest-npm-worm-miasma-variant
Couldn’t checkCausal conclusion
JFrog found Shellpanel workflows in some hijacked repositories that attack cPanel systems via CVE-2026-41940, but no evidence of a continuous attack chain from the npm infection to exploitation.
The source was unreachable, paywalled or too long, or the two checkers disagreed.
The article says “JFrog also found Shellpanel workflows in some hijacked repositories that attack cPanel systems through the critical vulnerability CVE-2026-41940”
The source says No passage could be compared.
Source cited by the article: cve.org/CVERecord
Matches sourceNumber
The payload file .github/init.js was 12.9 to 13.7 MB, so GitHub code search did not index it.
The cited source says the same thing.
The article says “the file was 12.9 to 13.7 MB, depending on the variant, and GitHub code search does not index files that large”
The source says “GitHub code search did not index the 12.9 to 13.7 MB blobs, and the contents API could not return files of that size”
Source cited by the article: research.jfrog.com/post/beyond-testmetest-42-hijacked-github-repos
Matches sourceNumber
The threat actors run 17 campaign infrastructure repositories under the GitHub account CementBeetleSteeple, and as of Oct. 25 stable-scripts-9965 held 27 files believed to be encrypted data packages.
The cited source says the same thing.
The article says “17 of which are run under the GitHub account CementBeetleSteeple”
The source says “The account CementBeetleSteeple hosted 17 campaign repositories”
Source cited by the article: research.jfrog.com/post/beyond-testmetest-42-hijacked-github-repos
Also covered by
No other coverage was clustered with this story.
Elsewhere
Elsewhere: HN —
Recorded for context only, checked 30 Oct 2026, 05:47 UTC. It played no part in the ranking.