En 30 segundos
Theo Browne discusses GitHub’s May 2026 internal repository incident and the related Nx Console extension compromise, alongside other npm supply-chain attacks. He calls for stronger marketplace and publishing controls; his proposals are opinions and do not guarantee prevention. For the exposure window and remediation, see the [Nx postmortem](https://nx.dev/blog/nx-console-v18-95-0-postmortem) and [GitHub’s incident update](https://github.blog/security/investigating-unauthorized-access-to-githubs-internal-repositories/).
- 1GitHub’s initial assessmentGitHub reported internal repository exfiltration and said it had no evidence of impact to customer information outside those repositories at the time.
- 2Trusted publishing is one layerAn unsafe workflow and cache poisoning can undermine a publication pipeline even without a long-lived npm token.
- 3A stolen token linked incidentsNx traced the malicious extension release to a contributor credential stolen in an earlier package compromise.
- 4Removal does not undo executionNx advises potentially exposed users to treat machines as compromised and rotate exposed credentials.
- 5The update trade-offAutomatic updates distribute security fixes quickly but can also spread a compromised release.
- 6Defense needs multiple controlsReview, staged releases, approvals, notification, and incident response reduce different risks; none guarantees prevention.
Conclusiones
- GitHub initially reported exfiltration of internal repositories after an employee device was compromised by an extension.
- A stolen publishing credential can carry a supply-chain compromise into a different ecosystem.
- Trusted publishing protects against some token risks but does not make unsafe workflows safe.
- Automatic updates speed both security fixes and compromised releases.
- Use layered publishing controls and incident response; removing an extension alone does not establish that a machine is clean.
Lee el texto editado por capítulos
GitHub reports internal repository access
Theo introduces the employee-device compromise and GitHub’s initial assessment. He separates it from other supply-chain incidents.
GitHub reported unauthorized access to its internal repositories after an employee device was compromised through a malicious VS Code extension. At the time, GitHub said it had no evidence of impact to customer information outside those internal repositories, while noting that internal repositories could contain customer information such as support excerpts. Its investigation was ongoing.
I want to discuss the extension attack alongside other software supply-chain incidents and the risk to users. These are related concerns, but they are not all the same incident. My criticism of Microsoft and GitHub reflects my view of the ecosystem; I am not a security researcher.
npm and publishing workflows
Trusted publishing reduces certain credential risks but does not secure a compromised workflow by itself. Theo discusses the TanStack attack chain.
A separate npm incident illustrates the limits of treating one control as a complete solution. npm invalidated certain write-capable granular tokens that bypassed two-factor authentication and recommended trusted publishing. Trusted publishing can reduce reliance on long-lived tokens, but a compromised build workflow can still abuse the identity it receives.
In the TanStack attack discussed here, an unsafe pull_request_target workflow and cache poisoning were part of a chain used to publish malicious packages. The lesson is to protect workflow triggers, untrusted code execution, caches, and publication permissions together; changing a trigger name alone is not a universal fix.
The GitHub internal-repository incident is distinct from those package compromises. GitHub said an employee endpoint was compromised through a poisoned third-party extension and that its initial assessment involved exfiltration of internal repositories. It said the attacker's claim of roughly 3,800 repositories was directionally consistent with its investigation, not an audited final count.
The malicious extension
GitHub describes isolation and credential rotation. Theo discusses the marketplace and the role of security researchers.

GitHub said it removed the malicious extension version, isolated the device, and rotated critical secrets, prioritizing the highest-impact credentials. It continued to examine logs and monitor for follow-on activity. The original announcement was an early assessment, not proof that every downstream risk had been resolved.
I have criticized the VS Code extension marketplace for malicious and impersonating extensions, and people have raised those concerns before. Extensions run code on a developer's machine, so the trust placed in publishers and in the update pipeline matters as much as the initial installation decision.
Security firms such as Socket and Aikido investigate malicious packages and publishing incidents. I want platforms to work more closely with researchers and give maintainers effective ways to report and contain compromised releases. My comments on individual companies' internal practices are opinions, not an audit of their operations.
Nx Console and stolen credentials
The Nx postmortem traces the malicious release to a stolen contributor token. The exposure window and affected version are identified.
The separate Nx Console compromise shows how a stolen credential can propagate an earlier supply-chain attack. A malicious extension version was uploaded to the Visual Studio Marketplace and Open VSX. Later in the video, Theo reads a statement from Nx's CEO identifying the extension in the GitHub incident.

According to the Nx postmortem, the affected version was Nx Console 18.95.0. A contributor's GitHub CLI token had been stolen when a malicious TanStack package ran on their machine seven days earlier; the token was then used in the publishing chain. Nx reported that its CLI, official plugins, and Nx Cloud were not affected by this extension compromise.
The malicious upload was registered at 12:30 UTC on May 18, 2026, and the Visual Studio Marketplace registered its removal at 12:48; Open VSX removed it at 13:09. Nx distinguishes upload-to-removal time from the shorter period the package was live. Its postmortem explains the telemetry uncertainty and response in detail.
Nx advises anyone who had Nx Console with auto-update enabled during the exposure window to treat their machine as potentially compromised and rotate exposed credentials. Removing or updating an extension alone cannot establish that a machine is clean, because malicious code may already have run or persisted.
A stolen credential can remain dangerous after the original vulnerable package is removed if it has not been revoked. I suspect attackers may use automation to process stolen data and find subsequent opportunities, but I do not have evidence that agents were used in this specific attack. The practical issue is to identify and invalidate exposed credentials.
Automatic updates and distribution
Auto-update helps distribute fixes but also speeds a malicious release. Theo discusses other extension incidents and persistence.
Auto-update creates a difficult trade-off. It helps users receive security fixes without waiting for manual action, but it can also distribute a malicious update quickly when a publisher is compromised. My own experience maintaining a popular browser extension has made me conscious of the value attackers place on an established distribution channel.
The investigation I discuss describes several VS Code update checks, including checks after startup and interactions with the extension gallery, rather than just a periodic timer. This means a short publishing window may still reach running editors; the exact number of affected users requires reliable telemetry.

The earlier AsyncAPI compromise is another example of a stolen publishing credential being used to push malicious packages and an editor extension. Deleting a malicious release from a registry does not necessarily remove code already installed on users' machines, so containment and user notification need to extend beyond the marketplace listing.
Proposed safeguards
Theo proposes review, staging, takedown, and notification improvements. Each control has limits and trade-offs.
I want to be clear that the following are proposals, not a proven complete solution. First, platforms could automatically inspect updates to widely used packages and extensions, prioritizing the releases with the largest potential blast radius. Automated or AI-assisted analysis would still need human review and can miss malicious behavior.
Second, consider a staging period before a new release is automatically distributed. Maintainers or users could explicitly choose a new release sooner, while default updates wait for checks and a review window. This trades faster fixes for more time to detect a poisoned release, so the policy needs careful design.
Third, improve takedown, rollback, and notification. A maintainer should have a clear way to report a compromised release quickly, and affected users need actionable alerts. I sketch an opt-in installation record and a registry of compromised versions, but any such system would have privacy, accuracy, and operational trade-offs.
Faster publisher notifications, a compromise-reporting button, a staging window, and a way to reverse a bad update might each reduce harm. I argue strongly for these changes, but none guarantees prevention: detection can fail, attackers can wait, and systems may already be compromised.
Responsibility and response
Nx acknowledges its role and hardens publishing. Theo calls for stronger platform-level support for maintainers.

Near the end of the video, Nx's CEO acknowledges the role of Nx Console and says the team is changing publishing, automation, and extension security. Nx's postmortem also describes requiring approval from a different person for releases and monitoring audit logs. The response requires both maintainers and platform operators to improve controls.
I believe Microsoft, GitHub, and npm should take more responsibility for the safety of their distribution systems instead of leaving open-source maintainers to solve every problem alone. I favor a combination of stronger publishing controls, review, staged rollout, and response mechanisms, while recognizing that no one control eliminates supply-chain risk.
Maintainers already have limited time and resources, while a compromised account or development machine can affect many downstream users. The ecosystem needs practical protections and coordinated incident response so that distributing useful open-source software does not depend on every individual defending alone.
Más de este canal
38:47EN
36:07EN
30:37EN
0:43EN
29:22EN
31:13EN