{"id":995,"date":"2026-05-21T05:34:17","date_gmt":"2026-05-21T05:34:17","guid":{"rendered":"https:\/\/thedigitalfortress.us\/?p=995"},"modified":"2026-05-21T05:34:17","modified_gmt":"2026-05-21T05:34:17","slug":"github-internal-repositories-breached-via-malicious-nx-console-vs-code-extension","status":"publish","type":"post","link":"https:\/\/thedigitalfortress.us\/?p=995","title":{"rendered":"GitHub Internal Repositories Breached via Malicious Nx Console VS Code Extension"},"content":{"rendered":"<div>\n<p><span class=\"p-author\"><i class=\"icon-font icon-user\">\ue804<\/i><span class=\"author\">Ravie Lakshmanan<\/span><i class=\"icon-font icon-calendar\">\ue802<\/i><span class=\"author\">May 21, 2026<\/span><\/span><span class=\"p-tags\">Supply Chain Attack \/ Developer Tools<\/span><\/p>\n<\/div>\n<div id=\"articlebody\">\n<div class=\"separator\" style=\"clear: both;\"><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjJ64wgVqZTQx208NgY0sBvUUQcR5mb-G4ENkfw4PEX9KlJJxEI_uUKQvPG0rReXB4chZ3wXrvNSR1QsrK525DDHkzY9X3nQYduh36qKTyC-k4EfixFeOU7YR1mRIw8ZJL-oYN8k_wwBid2GU8NYJtCqEFLOSzomuu-Xx7yA3Djim0nq79RyoZJs6HGga_H\/s1700-e365\/github-hacked.jpg\" style=\"display: block;  text-align: center; clear: left; float: left;\"><\/a><\/div>\n<p>GitHub on Wednesday officially confirmed that the breach of its internal repositories was the result of a compromise of an employee device involving a poisoned version of the Nx Console Microsoft Visual Studio Code (VS Code) extension.\u00a0<\/p>\n<p>The development comes as the Nx team revealed that the extension, nrwl.angular-console, was breached after one of its developers&#8217; systems was hacked in the wake of the recent TanStack supply chain attack, which has also impacted OpenAI, Mistral AI, and Grafana Labs.<\/p>\n<p>\u00abWe have no evidence of impact to customer information stored outside of GitHub&#8217;s internal repositories, such as our customer&#8217;s own enterprises, organizations, and repositories,\u00bb Alexis Wales, Chief Information Security Officer of GitHub, <a href=\"https:\/\/github.blog\/security\/investigating-unauthorized-access-to-githubs-internal-repositories\/\">said<\/a> in a statement.<\/p>\n<p>\u00abSome of GitHub&#8217;s internal repositories contain information from customers, for example, excerpts of support interactions. If any impact is discovered, we will notify customers via established incident response and notification channels.\u00bb<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/threatlabz-vpn-risk-2026-d\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Cybersecurity\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhnNON5UeWywT7OcPNw7V4L7QNWnCnm7Xl_99Y9ek8dL-gRwx-bWxQM1TKqt8deqqrdpUyKMuuijAWyyPQVB0s0qf8ntQ6ldFAJLru-QUWhddKTopc7SeNbBBnd-TsfFyRPP-AAyDuclLlL6XHK4_LXqDC_7eyaz9pzToYr7U543MhrJ7qcK-89sVWHTQUZ\/s728-e100\/zz-2-d.jpg\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>The attack is said to have allowed the threat actor, a cybercriminal group known as TeamPCP, to exfiltrate about 3,800 repositories. GitHub said it has taken steps to contain the incident and rotated critical secrets, adding it&#8217;s continuing to monitor the situation for follow-on activity.<\/p>\n<p><a name=\"more\"\/><\/p>\n<p>In a post on X, Jeff Cross, co-founder of Narwhal Technologies, the company behind nx.dev, <a href=\"https:\/\/x.com\/jeffbcross\/status\/2057236396658811020\">said<\/a>, \u00abthis incident highlights that there need to be deeper, more fundamental changes to how we and other maintainers need to think about securing developer tooling and open source distribution.\u00bb<\/p>\n<p>\u00abWe&#8217;re also beginning conversations with other high-profile open source maintainers about how we can work together on some of the deeper structural problems around software supply chain security. A lot of the assumptions the ecosystem has operated under for years no longer hold.\u00bb<\/p>\n<p>In recent months, TeamPCP has rapidly gained notoriety for large-scale software supply chain attacks, specifically going after widely-used open-source projects and security-adjacent tools that developers rely on.<\/p>\n<p>What&#8217;s notable here is that the trojanized version of the VS Code extension was live on Visual Studio Marketplace only for eighteen minutes (between 12:30 p.m. and 12:48 p.m. UTC on May 18, 2026). But this short window was enough for the attackers to distribute a credential stealer capable of harvesting sensitive data from 1Password vaults, Anthropic Claude Code configurations, npm, GitHub, and Amazon Web Services (AWS).<\/p>\n<p>\u00abThe extension looked and behaved like normal Nx Console, but on startup it silently ran a single shell command that downloaded and executed a hidden package from a planted commit on the official nrwl\/nx GitHub repository,\u00bb OX Security researcher Nir Zadok <a href=\"https:\/\/www.ox.security\/blog\/teampcp-strikes-again-how-a-trojan-vs-code-extension-brought-down-github\/\">said<\/a>. \u00abThe command was disguised as a routine MCP setup task so it would not raise suspicion.\u00bb<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/ai-cant-stop-d\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Cybersecurity\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjPEV6-530TOlxG6PjrmdlY623wpBwduZ7t1HV6flcmO5R4q4AmfixDUzW0CrhlvMVNWbhvOIso-UDNTka4W_W9Chrdj_dglwBZwi7DuePM2IMIl-hfUYVIqBXgfpr_2619K8Gptb4LzwJ6gUbi7lWl2M8AFQJsHEaw63Q7tZ6708YGruiHrr0Y2W9YYxLQ\/s728-e100\/ThreatLocker-d.png\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>The interlinked nature of modern software has allowed TeamPCP to unleash a self-sustaining cycle of new compromises. The pattern that drives home this aspect is deceptively simple as it&#8217;s nefarious: break into one trusted tool, steal credentials from developer systems that may install it, and use those credentials to break into the next legitimate tool.<\/p>\n<p>\u00abEvery popular extension marketplace ships with auto-update on by default. VS Code, Cursor, the whole lineup,\u00bb Aikido security researcher Raphael Silva <a href=\"https:\/\/www.aikido.dev\/blog\/vs-code-extension-github-breach\">said<\/a>. \u00abThe reasoning makes sense in isolation, because most developers never update anything manually, so leaving it off means a long tail of editors running stale, vulnerable code.\u00bb<\/p>\n<p>\u00abThe trade-off stops making sense once you account for hostile\/compromised publishers. Auto-update gives an attacker who controls a release a direct push channel into every machine running that extension. Marketplaces don&#8217;t impose any review gate or waiting period between when an update is published and when installed clients pull it in.\u00bb<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\ue804Ravie Lakshmanan\ue802May 21, 2026Supply Chain Attack \/ Developer Tools GitHub on Wednesday officially confirmed that the breach of its internal repositories was the result of a compromise of an employee&hellip;<\/p>\n","protected":false},"author":1,"featured_media":996,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[534,10,1719,520,71,1737,33,1738],"class_list":["post-995","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-breached","tag-code","tag-console","tag-extension","tag-github","tag-internal","tag-malicious","tag-repositories"],"_links":{"self":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/posts\/995","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=995"}],"version-history":[{"count":0,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/posts\/995\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/media\/996"}],"wp:attachment":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=995"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=995"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=995"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}