GitHub.dev flaw lets attackers steal OAuth tokens in one click


Every developer who has ever pressed the period key on a GitHub repository, launching the convenient browser-based VS Code editor known as GitHub.dev, has unknowingly accepted a bargain. In exchange for a lightweight coding environment, GitHub silently passes an OAuth token to the session, one that grants read and write access to every repository the user can reach, not just the repo they opened.

Security researcher Ammar Askar has now shown how a single malicious link can steal that token entirely. The proof-of-concept exploit, published on 2 June 2026, chains together several VS Code behaviours to install a rogue extension inside GitHub.dev, silently exfiltrate the OAuth credential, and enumerate every private repository the victim can access.

Microsoft has acknowledged the flaw and says it is working on a fix. The vulnerability does not affect VS Code Desktop, according to Alexandru Dima, a partner software engineering manager at the company.

How the attack works

The exploit begins with a crafted GitHub.dev link pointing to a repository that contains a malicious Jupyter Notebook file. When the victim clicks, GitHub.com automatically POSTs an OAuth token to the GitHub.dev session. That token is not scoped to the specific repository, it carries full privileges across every repo the user has access to, including private ones.

The 💜 of EU tech

The latest rumblings from the EU tech scene, a story from our wise ol’ founder Boris, and some questionable AI art. It’s free, every week, in your inbox. Sign up now!

Inside the notebook, a hidden HTML snippet with an onerror handler executes attacker-controlled JavaScript within a sandboxed webview iframe. VS Code uses these webviews to render Markdown previews, edit notebooks, and display other rich content. The critical flaw is that a webview can simulate keyboard events, specifically keydown events, in the main editor window via the postMessage API.

The payload waits a few seconds for VS Code to surface a notification prompting extension installation, then fires a simulated Ctrl+Shift+A keystroke. That shortcut corresponds to the “Accept Notification Primary Action” command, which silently approves the installation of an attacker-controlled extension. The extension then grabs the GitHub OAuth token and calls the GitHub API to list every private repository the victim can access.

Bypassing the trust check

Normally, installing a VS Code extension triggers a publisher trust prompt. But the exploit sidesteps this entirely by using a feature called local workspace extensions. Any extension placed in a repository’s .vscode/extensions folder can be installed without presenting the trust dialogue, because VS Code treats it as part of the workspace rather than a third-party download.

The attacker can also add custom keybindings via the extension’s package.json, mapping arbitrary VS Code commands to keyboard shortcuts. Since the exploit can reliably trigger those shortcuts from the webview, it can chain together virtually any sequence of editor actions. “We can just add a keybind for whatever VS Code command we want, such as installing an extension while skipping the trusted publisher check,” Askar wrote.

Why the researcher went public immediately

Askar did not follow the conventional coordinated-disclosure process. He told The Register that a previous experience with Microsoft’s Security Response Centre soured him on the process. According to Askar, MSRC silently patched a VS Code bug he had reported without crediting him and classified it as having no security impact.

He gave a GitHub security contact roughly an hour’s notice before publishing the full exploit details and proof-of-concept code. The decision echoes a broader pattern of researcher frustration with Microsoft’s vulnerability handling, which recently escalated when the company threatened another security researcher, known as Nightmare Eclipse, with criminal prosecution for publicly disclosing Windows zero-days.

The disclosure also arrives weeks after a separate incident in which hackers breached GitHub itself via a poisoned VS Code extension, stealing approximately 3,800 internal repositories. That attack, attributed to a group tracked as TeamPCP, demonstrated that malicious extensions are not a theoretical risk but an active threat vector in the developer supply chain.

The scope of the risk

The vulnerability is particularly dangerous because GitHub.dev does not implement CSRF tokens, meaning any link on the internet can redirect a user into the attack flow. A single click is sufficient. No additional prompts, no trust dialogues, no visible warnings.

Once the token is exfiltrated, the attacker has the same repository access as the victim. That includes reading proprietary source code, injecting backdoors into private projects, or pivoting to other systems by harvesting secrets stored in configuration files. For developers working on enterprise or open-source infrastructure, the blast radius could be significant.

Recent research has shown that when vulnerabilities in developer tooling are patched quietly, without public advisories or CVE assignments, users on older versions remain exposed without knowing it. Whether Microsoft assigns a CVE to this flaw and publishes a formal advisory will be a test of the lessons learned from those earlier episodes.

What developers should do now

Until Microsoft ships a fix, developers should exercise caution when clicking GitHub.dev links, particularly those pointing to unfamiliar repositories. Reviewing the .vscode/extensions folder of any repository before opening it in the browser-based editor is a sensible precaution, as is auditing OAuth token permissions under GitHub’s personal access token settings.

Organisations that rely on GitHub for proprietary code may want to consider restricting GitHub.dev access until the vulnerability is resolved. GitHub’s own Security Lab, launched to help identify vulnerabilities in open-source code, has not yet commented on the flaw.

The deeper question is architectural. If a browser-based editor receives an unscoped OAuth token by default, and if extensions within a workspace can bypass trust checks, the attack surface is baked into the design. Fixing the specific exploit chain matters, but the growing investment in developer-tool security, such as the recent $18 million Series A raised by API security firm Escape, suggests the industry recognises that the problem runs deeper than any single bug.



Source link

Leave a Reply

Subscribe to Our Newsletter

Get our latest articles delivered straight to your inbox. No spam, we promise.

Recent Reviews


When Encanto was released, it was something of a cultural phenomenon. You couldn’t escape the song “We Don’t Talk About Bruno,” and the soundtrack went to the top of the charts. If you loved Encanto, there’s another overlooked Lin-Manuel Miranda animated musical on Netflix that’s better in many ways.

Vivo is another Lin-Manuel Miranda musical

He’s also the voice of the lead character

Vivo the kinkajou from the movie Vivo. Credit: Sony Pictures Animation

Vivo is a 2021 animated musical comedy from Sony Pictures Animation, the same studio behind smash-hit movies such as Spider-Man: Into the Spider-Verse and KPop Demon Hunters. Directed by Kirk DeMicco, who co-wrote it with Quiara Alegría Hudes, it features original songs written by Lin-Manuel Miranda, the musical genius who shot to superstardom on the back of Hamilton.

Miranda also plays the title character of Vivo, a kinkajou (a small, nocturnal mammal) whose days are spent earning money by playing music in the plaza with his aging owner, Andrés. When Andrés dies, Vivo makes it his mission to deliver a song that Andrés wrote to his old friend Marta Sandoval, a famous singer played by Gloria Estefan. The song reveals Andrés’ true feelings for Marta, but he could never bring himself to give it to her.

Vivo is helped on his quest by Gabi, a young misfit and the daughter of Andrés’ niece. The movie follows their journey through the Florida Everglades to reach Miami and deliver the song.

Why Vivo flew under the radar

The big theatrical release never happened

Gabi and Vivo on a raft in the movie Vivo. Credit: Sony Pictures Animation

Vivo is an animated musical from a major animation studio, with a cast of big names including Miranda, Gloria Estefan, and Zoe Saldaña. It features music from one of the most in-demand songwriters in the world, who also stars in it. Why isn’t it more well-known?

Perhaps the biggest reason is that Vivo never got its expected theatrical release. After the global pandemic disrupted Sony’s plans for a wide theatrical release, the rights were sold to Netflix. Instead of a major theatrical run, it joined the huge catalog of Netflix, where shows and movies all too often get buried by the churn of new content.

It meant that, unlike Encanto, Vivo never really got the chance to enter the zeitgeist or become a TikTok staple. Its fairly quiet release on a streaming service meant that it never got the attention that it deserved.

Subscription with ads

Yes, $8/month

Simultaneous streams

Two or four

Stream licensed and original programming with a monthly Netflix subscription.


Vivo’s music hits different

Gloria Estefan still has it

When Encanto came out, people raved about the music. The song “We Don’t Talk About Bruno” went viral, with an endless stream of TikTok videos. To my mind, however, the music in Vivo is just so much better.

I never really got the hype about “We Don’t Talk About Bruno.” It’s not bad, but it’s not even the best song in Encanto. While the music in Encanto is good, none of the songs really stand out as being classics. I listen to a lot of Disney movie soundtracks with my kids, and Encanto very rarely makes the playlist, while Moana, which also includes songs written by Lin-Manuel Miranda, gets played far more often.​​​​​​​


The Pixar Logo featured before their movies


Pixar’s best movie isn’t one of the old classics, it’s this blockbuster from 2017

I’m sorry, Toy Story, but a new winner has entered the chat

What gets played a lot is the Vivo soundtrack because it’s genuinely brilliant. There’s something for everyone, too; there are four of us in the family, and each of us has a different favorite song from the soundtrack. That’s how good it is.

“One of a Kind” is the song that introduces us to Vivo and Andrés, and it’s a great mix of classic Cuban mambo and clave rhythms combined with Lin-Manuel Miranda’s trademark hip-hop flow. “My Own Drum” is an absolute banger sung by Gabi featuring possibly the greatest recorder solo of all time. My personal favorite, “Keep The Beat,” is a gorgeous song about keeping going when things start to change.

The most beautiful song in the movie is “Inside Your Heart,” performed by the legendary Gloria Estefan. This is the song that Andrés wrote for Marta, expressing his feelings for her. It’s a stunning song, and Estefan’s voice still sounds incredible. For me, it lands far harder than anything in Encanto.

What Vivo offers that Encanto doesn’t

There’s more than just the awesome music

2D animation of a young Andres and Marta dancing from the movie Vivo. Credit: Sony Pictures Animation

While both movies have music written by Lin-Manuel Miranda, only one of them features the songwriter in the main cast. Some of the fast-paced rhymes in Vivo are so distinctive that you can’t imagine anyone else doing them justice, as Dwayne Johnson proved in Moana.

Vivo also has a more dynamic story, with the action involving a race from Cuba to Miami rather than being set entirely within one location like Encanto. It also includes some interesting stylized 2D sequences that mix up the look of the movie. The emotional stakes are also much higher in Vivo, with a story that touches on death, regret, lost love, and finding your place in the world.

That’s not to say it’s a perfect movie. The plot does dip a little in the middle, but the stunning music and bittersweet ending make up for the flaws.


A woman watching Netflix with two kids, a 'Kids' icon in the background, and the Netflix logo.


My Kids Love These 10 Netflix Shows—And Shockingly, So Do I

Are you a parent tired of watching awful kids’ shows? Give yourself a break with these Netflix series that will entertain both you and your children.


Check out Vivo if you haven’t already

If you loved Encanto and you haven’t watched Vivo, you should definitely check it out. It’s a movie that really deserves more attention than it gets. I guarantee it will be the best kinkajou-based animated musical you’ll ever see.



Source link