GitHub Confirms Internal Repos Stolen via Poisoned VS Code

The cybersecurity community woke up to a stark reality check on May 20 when GitHub disclosed a breach that cut straight to the heart of software development trust. A poisoned Visual Studio Code extension, installed on a single employee’s machine, handed attackers the keys to roughly 3,800 internal repositories. The incident did not happen in a vacuum. It landed in the middle of a coordinated supply chain assault that has been quietly escalating for months, and it raises urgent questions about how any organization can protect its most sensitive code.

github internal repos stolen

The Moment the Breach Broke: What GitHub Confirmed

GitHub posted a five-message thread on X on May 20, laying out the basics. The company stated plainly: “Yesterday we detected and contained a compromise of an employee device involving a poisoned VS Code extension.” The malicious extension version was removed. The affected endpoint was isolated. Incident response kicked off immediately. GitHub’s current assessment indicates that the attacker’s claim of roughly 3,800 repositories is “directionally consistent” with their own investigation. Critical secrets were rotated overnight, with the highest-impact credentials receiving priority treatment.

The company has not named the specific extension that was compromised. This silence leaves the developer community guessing about which tool in their own workflow might have been the vector. It also underscores a painful reality: a single compromised plugin in a widely used editor can bring an entire platform to its knees.

What Was Actually Taken?

Internal repositories are not the same as public open-source code. These private stores typically hold infrastructure configurations, deployment scripts, staging credentials, and internal API schemas. This is not a data breach in the traditional sense of leaked customer information. It is an infrastructure intelligence leak. Anyone who gains access to this material can map out an organization’s internal network, understand how services connect, and identify the weakest points in the deployment pipeline. Source code access at that level provides a blueprint for further attacks.

The Group Behind the Attack: TeamPCP and the Mini Shai-Hulud Worm

The threat group claiming responsibility operates under the name TeamPCP. Google Threat Intelligence Group formally tracks them as UNC6780, describing them as a financially motivated actor that specializes in supply chain attacks. Their targets have been remarkably specific: open-source security utilities and AI middleware. This is not a random smash-and-grab operation. It is a disciplined campaign aimed at the tools that developers trust most.

Trend Micro, StepSecurity, and Snyk have all tracked TeamPCP across at least seven confirmed waves of what researchers call the Mini Shai-Hulud supply chain worm. The campaign dates back to March 2026 and has hit a striking list of targets: Trivy, Checkmarx KICS, LiteLLM, elementary-data, Bitwarden CLI, TanStack, and Mistral AI. StepSecurity and Snyk assess high confidence on the Trivy, Bitwarden CLI, and TanStack waves based on toolchain overlap. The pattern is clear. This group systematically poisons the tools that developers use to secure their own code.

How the Worm Operates

The Mini Shai-Hulud worm does not just drop a payload and disappear. It propagates through the software supply chain by compromising legitimate packages and then using those packages to distribute malicious updates. The worm has evolved significantly since its first appearance. The latest wave, which arrived the same day as the GitHub breach, introduced a particularly dangerous capability: provenance forgery.

Provenance is a cryptographic attestation that proves where a package was built. It is supposed to give consumers confidence that the code they are downloading came from a legitimate source. The Mini Shai-Hulud worm now calls Fulcio and Rekor at runtime to generate valid Sigstore signing certificates for every package it propagates to. This means the malicious packages carry a green badge that looks completely legitimate to automated scanners and human reviewers alike.

Five Supply Chain Surfaces Failed in 48 Hours

The GitHub breach did not land in isolation. It arrived during a 48-hour window that saw at least five distinct supply chain failures. One day before the GitHub incident, attackers compromised a VS Code extension with 2.2 million installs. The same day as the GitHub breach, a new Mini Shai-Hulud wave forged valid cryptographic provenance on 639 malicious npm package versions. Wiz discovered on the same day that TeamPCP had compromised Microsoft’s durabletask Python SDK on PyPI. And the same morning, Verizon’s 2026 Data Breach Investigations Report revealed that 67% of employees access AI tools through non-corporate accounts.

This clustering of events is not coincidence. It points to a coordinated campaign that is testing multiple attack surfaces simultaneously. The attackers are looking for the weakest link, and they are finding it again and again in the tools that developers install without a second thought.

The VS Code Extension Problem

Visual Studio Code has become the dominant code editor in the developer ecosystem. Its extension marketplace contains hundreds of thousands of plugins, many of which are maintained by individual developers or small teams with limited security resources. A poisoned extension can execute arbitrary code on the developer’s machine, read local files, access environment variables, and communicate with remote servers. The attack surface is enormous, and the defenses are thin.

GitHub’s confirmation that the breach came through a poisoned VS Code extension aligns with the exact attack surface TeamPCP has weaponized throughout 2026. The group has repeatedly targeted developer tooling because it provides a direct path into the most sensitive environments. A developer who installs a compromised extension is not just risking their own machine. They are risking every system their credentials can reach.

The Aftermath: What Happens to Stolen Repositories

Dark Web Informer reported that TeamPCP’s listing appeared on a hacking forum hours before GitHub’s initial disclosure. The listing advertised around 4,000 private repositories for sale starting at $50,000. Hackmanac independently confirmed the listing. An X account linked to TeamPCP, using the handle xploitrsturtle2, posted after GitHub’s confirmation with a taunting message: “GitHub knew for hours, they delayed telling you and they won’t be honest in the future. What an amazing run, it’s been an honor to play around with the cats over the past few months.”

The sale of these repositories poses a significant threat to every organization whose code was included. Buyers gain access to infrastructure configurations, deployment scripts, and internal API schemas. They can study how systems connect, identify unpatched vulnerabilities, and plan targeted attacks against specific companies. The $50,000 asking price is relatively low for this volume of intelligence, which suggests the group is prioritizing speed of sale over maximum profit.

Binance Co-Founder’s Urgent Warning

Binance co-founder CZ posted an immediate response to the breach: “If you have ANY private repos with plain text secrets or sensitive documents/architectures, immediately rotate your secrets.” This advice is blunt but correct. The first thing an attacker does after gaining repository access is search for hardcoded credentials, API keys, and database connection strings. Any secret stored in plain text inside a private repository is now compromised and should be treated as such.

The Provenance Forgery Problem

The most technically sophisticated element of this attack wave is the provenance forgery capability. Endor Labs detected 42 malicious npm packages published between 01:39 and 02:06 UTC on May 19. Socket’s broader tracking put the full wave at 639 malicious versions across 323 packages inside Alibaba’s @antv data visualization ecosystem. This wave introduced provenance forgery. The worm calls Fulcio and Rekor at runtime to generate valid Sigstore signing certificates for every package it propagates to.

Provenance tooling shows a green badge, and that badge is supposed to indicate trust. But as Endor Labs pointed out, “The attestation proves where the package was built. It does not prove the build was authorized.” The build chain belongs to the attacker. They can generate valid attestations for malicious code because they control the entire pipeline. The green badge becomes a weapon of deception rather than a tool of verification.

What Provenance Forgery Means for Developers

Peyton Kennedy, senior security researcher at Endor Labs, told VentureBeat that “TanStack had the right setup on paper: OIDC trusted publishing, signed provenance, 2FA.” Despite having all the recommended security controls in place, the project was still compromised. This is a sobering lesson. Current supply chain security practices are necessary, but they are not sufficient. Attackers have learned to work within the security frameworks that were designed to stop them.

Developers can no longer trust a green provenance badge at face value. They need to verify that the build chain is legitimate, that the maintainer’s credentials were not stolen, and that the package content matches the expected behavior. This level of verification is difficult to automate and even harder to maintain across hundreds of dependencies.

The Speed of Modern Exploitation

Mike Riemer, CTO of Ivanti, told VentureBeat in an exclusive interview that Azure’s honeypot network now shows known vulnerabilities exploited in under 90 seconds. This statistic puts the GitHub breach in context. Stolen credentials shorten the recon phase that precedes exploitation. Every GitHub-side secret that reaches a buyer accelerates whichever attack path that buyer was already running. The window between credential theft and active exploitation is measured in minutes, not days.

You may also enjoy reading: 7 Iranian Hackers Targeted South Korea’s Major Maker.

This speed demands a fundamental shift in incident response. Organizations cannot afford to spend hours debating whether a breach is real. They need automated systems that can detect credential exposure, rotate secrets immediately, and isolate affected systems without human intervention. The manual rotation of critical secrets that GitHub performed overnight is commendable, but it is not fast enough to prevent damage in a landscape where exploitation happens in under 90 seconds.

Lessons for Every Organization

This breach offers several hard lessons for organizations of all sizes. First, developer endpoints are critical infrastructure. A single compromised extension on a developer’s machine can expose the entire codebase. Organizations should treat developer machines with the same security rigor they apply to production servers. This means endpoint detection and response, application allowlisting, and strict controls on what extensions can be installed.

Second, secrets rotation must be automated. Any credential that exists in a repository should be considered temporary. Hardcoded secrets are a liability. Organizations should use vault solutions that generate short-lived credentials and rotate them automatically. If a repository is stolen, the credentials inside it should already be expired.

Third, supply chain security requires constant vigilance. The tools and practices that worked six months ago may already be obsolete. Provenance verification, while valuable, is not a silver bullet. Organizations need to layer multiple security controls and assume that any single control can be bypassed.

Practical Steps to Take Right Now

Every organization that uses private repositories should take immediate action. Start by scanning all repositories for hardcoded secrets. Use automated tools to find API keys, database credentials, and authentication tokens. Rotate every secret that is found, even if there is no evidence of compromise. The cost of rotating credentials is far lower than the cost of a breach.

Next, audit all VS Code extensions installed on developer machines. Remove any extension that is not actively maintained or that requests permissions beyond its stated purpose. Consider using an extension allowlist that only permits approved plugins. Monitor extension updates closely, especially for extensions with large install bases that could be targeted for compromise.

Finally, implement incident response automation. The goal should be to detect credential exposure and rotate secrets within seconds, not hours. Test these automated responses regularly with simulated breach scenarios. The time to discover a gap in your response plan is not during an actual incident.

The Broader Implications for Open Source

The GitHub breach is not just a story about one company’s security failure. It is a story about the fragility of the open-source ecosystem that underpins modern software development. The tools and platforms that developers depend on are under sustained attack from sophisticated threat actors. The attackers are not looking for quick paydays. They are investing in long-term campaigns that target the trust mechanisms of the entire ecosystem.

Provenance forgery represents a particularly dangerous evolution. If attackers can forge valid attestations, then the entire system of cryptographic trust becomes unreliable. Restoring that trust will require significant changes to how provenance is generated, verified, and audited. It may require new standards that tie attestations to hardware-backed identity rather than software-based signing certificates.

The Verizon DBIR finding that 67% of employees access AI tools through non-corporate accounts adds another layer of complexity. Shadow IT is not just about unsanctioned software. It is about credentials that exist outside the organization’s control. Those credentials can be used to access corporate resources, including code repositories, without triggering any security alerts. Closing this gap requires a combination of technical controls and cultural change.

What Comes Next

GitHub has contained the immediate threat, but the stolen repositories are now in the hands of buyers. The impact of this breach will unfold over months as those buyers analyze the stolen code and plan their next moves. Organizations that had repositories in the affected set should be preparing for targeted attacks against their infrastructure. The intelligence leak is permanent. The only question is how it will be exploited.

The broader supply chain campaign led by TeamPCP is not going to stop. The group has demonstrated technical sophistication, operational discipline, and a willingness to target high-value platforms. Every organization that uses open-source dependencies or developer tooling should consider itself a potential target. The defenses that worked yesterday may not work tomorrow.

The message from this breach is clear: trust is a fragile commodity in the software supply chain. It must be earned continuously, verified independently, and never assumed. The green badge on a package is not a guarantee of safety. The extension with millions of installs is not immune to compromise. The only defense that matters is a culture of skepticism combined with automated systems that can respond faster than attackers can exploit.

Add Comment