<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/attackers-compromised-42-github-repositories-by-using-files-too-large-to-be-searched-sycq0kihl" -->

---
title: Attackers compromised 42 GitHub repositories by using...
description: Attackers compromised 42 third-party GitHub repositories using payload files too large for GitHub's code search and API to index, JFrog Security Research...
canonical: https://daily.dev/posts/attackers-compromised-42-github-repositories-by-using-files-too-large-to-be-searched-sycq0kihl
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Attackers compromised 42 GitHub repositories by using files too large to be searched | daily.dev
og:description: Attackers compromised 42 third-party GitHub repositories using payload files too large for GitHub's code search and API to index, JFrog Security Research...
og:url: https://daily.dev/posts/attackers-compromised-42-github-repositories-by-using-files-too-large-to-be-searched-sycq0kihl
og:image: https://api.daily.dev/og/posts/SyCq0KIHl.png
og:image:alt: Attackers compromised 42 GitHub repositories by using files too large to be searched
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Attackers compromised 42 GitHub repositories by using files too large to be searched

**[InfoWorld](https://daily.dev/sources/infoworld)** · 6 min read · 0 upvotes · 0 comments

## Summary

Attackers compromised 42 third-party GitHub repositories using payload files too large for GitHub's code search and API to index, JFrog Security Research reports. Polymorphic wrappers as large as 13.7MB decoded to a hidden CI-publisher payload, and a native addon decrypted a hidden .napi_cache file at runtime instead of carrying its own payload. The campaign planted execution hooks for Claude Code, Gemini, Cursor and VS Code, so opening a repository in these tools could trigger the payload. JFrog found account hijacks, forged commit timelines, exposed npm credentials, and links to an npm worm that stole GitHub and npm credentials via malicious 'testmetest' packages. JFrog recommends rotating all GitHub, GitLab, npm, cloud, SSH and AI-provider credentials and auditing repos directly rather than relying on GitHub's search or contents API.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.infoworld.com/article/4241474/attackers-compromised-42-github-repositories-by-using-files-too-large-to-be-searched.html>

## Questions this post answers

### How did attackers hide malware in GitHub repositories from GitHub's own code search?

Attackers used polymorphic wrapper files as large as 13.7MB, exceeding what GitHub's code search indexes and what the contents API returns. All these oversized wrappers decoded to the same hidden CI-publisher payload. Early analysis using GitHub search or the contents API concluded the hook files were empty because the payload exceeded those tools' size limits.

_Teams auditing repos for hidden payloads can track emerging GitHub supply chain exploits on daily.dev._

### Can AI coding tool configuration files like .claude/settings.json or .cursor/mcp.json be used to run malware automatically?

Yes, a campaign planted execution hooks in Claude Code SessionStart hooks, Gemini settings, Cursor MCP configuration and rules, and VS Code folder-open tasks, so the payload ran when a developer simply opened the repository in a supported tool. One analyst called it the new 'autorun.inf', since the trigger shifted from running code to just opening a folder.

_Developers securing AI assistant workflows can follow supply chain threats like this on daily.dev._

### What is the testmetest npm supply chain attack and what credentials does it steal?

Testmetest is an npm worm campaign, first documented by SafeDep on October 22, that used malicious packages like event-bus-lite-testmetest@0.0.1 with a binding.gyp command expansion to execute code during installation without a conventional install script. It decrypted an AES-128-GCM stage, used Bun 1.2.18, and stole GitHub and npm credentials, poisoning repositories and CI configuration.

_Engineers rotating npm and GitHub tokens after an incident can monitor worm campaigns like this on daily.dev._

## Similar posts on daily.dev

- [Mini Shai-Hulud Strikes Again: 317 npm Packages Compromised](https://daily.dev/posts/mini-shai-hulud-strikes-again-317-npm-packages-compromised-u2ptexbxr) · Hacker News · 2 upvotes · 0 comments
- [North Korea-linked npm packages impersonate Rollup polyfill tools to steal developer secrets](https://daily.dev/posts/north-korea-linked-npm-packages-impersonate-rollup-polyfill-tools-to-steal-developer-secrets-mvjcouuhx) · The Next Web · 2 upvotes · 1 comments
- [Attackers turn GitHub issues into supply chain campaign against 61 public repos in less than an hour](https://daily.dev/posts/attackers-turn-github-issues-into-supply-chain-campaign-against-61-public-repos-in-less-than-an-hour-qwkbo76ob) · The Register · 0 upvotes · 0 comments

---

Tags: [#cyber](https://daily.dev/tags/cyber), [#ai-agents](https://daily.dev/tags/ai-agents), [#github](https://daily.dev/tags/github), [#malware](https://daily.dev/tags/malware), [#npm](https://daily.dev/tags/npm)

[View this post on daily.dev](https://daily.dev/posts/attackers-compromised-42-github-repositories-by-using-files-too-large-to-be-searched-sycq0kihl)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Attackers compromised 42 GitHub repositories by using files too large to be searched","url":"https://daily.dev/posts/attackers-compromised-42-github-repositories-by-using-files-too-large-to-be-searched-sycq0kihl","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/attackers-compromised-42-github-repositories-by-using-files-too-large-to-be-searched-sycq0kihl"},"datePublished":"2026-10-28T02:55:34.436Z","dateModified":"2026-10-30T07:47:30.490Z","description":"Attackers compromised 42 third-party GitHub repositories using payload files too large for GitHub's code search and API to index, JFrog Security Research...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b2fbe583341f2c23c6957cf16ba62bb0?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b2fbe583341f2c23c6957cf16ba62bb0?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"InfoWorld","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"InfoWorld","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/bf6d68a999064029b0bb09aa6268f1f3","url":"https://daily.dev/sources/infoworld"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/attackers-compromised-42-github-repositories-by-using-files-too-large-to-be-searched-sycq0kihl","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"cyber,ai-agents,github,malware,npm","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"InfoWorld","item":"https://daily.dev/sources/infoworld"},{"@type":"ListItem","position":3,"name":"Attackers compromised 42 GitHub repositories by using files too large to be searched"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/attackers-compromised-42-github-repositories-by-using-files-too-large-to-be-searched-sycq0kihl#faq","mainEntity":[{"@type":"Question","name":"How did attackers hide malware in GitHub repositories from GitHub's own code search?","acceptedAnswer":{"@type":"Answer","text":"Attackers used polymorphic wrapper files as large as 13.7MB, exceeding what GitHub's code search indexes and what the contents API returns. All these oversized wrappers decoded to the same hidden CI-publisher payload. Early analysis using GitHub search or the contents API concluded the hook files were empty because the payload exceeded those tools' size limits. Teams auditing repos for hidden payloads can track emerging GitHub supply chain exploits on daily.dev."}},{"@type":"Question","name":"Can AI coding tool configuration files like .claude/settings.json or .cursor/mcp.json be used to run malware automatically?","acceptedAnswer":{"@type":"Answer","text":"Yes, a campaign planted execution hooks in Claude Code SessionStart hooks, Gemini settings, Cursor MCP configuration and rules, and VS Code folder-open tasks, so the payload ran when a developer simply opened the repository in a supported tool. One analyst called it the new 'autorun.inf', since the trigger shifted from running code to just opening a folder. Developers securing AI assistant workflows can follow supply chain threats like this on daily.dev."}},{"@type":"Question","name":"What is the testmetest npm supply chain attack and what credentials does it steal?","acceptedAnswer":{"@type":"Answer","text":"Testmetest is an npm worm campaign, first documented by SafeDep on October 22, that used malicious packages like event-bus-lite-testmetest@0.0.1 with a binding.gyp command expansion to execute code during installation without a conventional install script. It decrypted an AES-128-GCM stage, used Bun 1.2.18, and stole GitHub and npm credentials, poisoning repositories and CI configuration. Engineers rotating npm and GitHub tokens after an incident can monitor worm campaigns like this on daily.dev."}}]}
```

