Real incidents where a stolen or phished personal credential (a PAT, an SSH key, a session cookie) was the entire attack.
July 2023
Dependabot impersonation
Attackers used stolen personal access tokens to push commits faked to look like automated Dependabot contributions across hundreds of public and private repositories. They added a hook.yml workflow file that shipped GitHub secrets to an external server on every push, and appended obfuscated JS to every .js file in the project to harvest form passwords.
Permissions abused
contents:writeworkflow scope (classic PAT)
On the permission reference
Reported by: Checkmarx noted that PAT activity logging was only visible to enterprise accounts at the time
Click to open →January 2024
Mercedes-Benz source code exposure
An employee committed a token to a public repo. It gave unrestricted and unmonitored access to the entire source code on the internal GitHub Enterprise Server, exposing database connection strings, cloud access keys, blueprints, design documents, SSO passwords, and API keys. The first token granted full ownership of the account; inside one of its private repos sat a second token to the GHE instance, a classic chained-credential blast radius that ran from the user plane straight into the enterprise plane.
Permissions abused
Classic PAT (full account access)Chained token → GitHub Enterprise Server access
On the permission reference
Click to open →2025–2026
OAuth consent phishing at scale
A campaign hit roughly 12,000 repositories with fake "Security Alert" issues, tricking developers into authorizing a malicious OAuth app that then held full control of their accounts and code. Because the link lands on the real GitHub authorization screen, it passes SPF/DKIM, bypasses MFA, and grants a persistent token without ever touching a password. Device-code phishing against GitHub follows the same shape: research reports success rates above 90% in authorized engagements, and a broadly scoped phished token yields private repos, Actions secrets, and more.
Permissions abused
OAuth App authorization (broad scope)Device-code phishing
On the permission reference
Click to open →December 2022 – January 2023
CircleCI session-cookie theft
Malware on an engineer's laptop stole a 2FA-backed session cookie, letting the attacker impersonate an employee who had rights to generate production tokens. Customer environment variables, tokens, and SSH keys were exfiltrated, and encryption keys made at-rest encryption moot. CircleCI rotated every customer GitHub OAuth token on their behalf. Worth noting for tiering purposes: a session cookie sat above MFA in the trust chain.
Permissions abused
2FA-backed session cookie (bypasses PAT/SSH controls)
Reported by: CircleCI incident report
Click to open →May 2026
GitHub's internal repositories taken through a VS Code extension
On 18 May 2026 GitHub detected and contained the compromise of an employee's device through a poisoned VS Code extension from a third party. Aikido reports that GitHub confirmed the extension as Nx Console, which has more than 2.2 million installs and a verified publisher; the bad release was pulled from the VS Code Marketplace within about 18 minutes. That was enough. The attacker claimed about 3,800 repositories, and GitHub said the claim was directionally consistent with its own investigation. Only GitHub's internal repositories were affected, but GitHub rotated the GitHub Enterprise Server signing key as a precaution, and every GHES customer had to rotate the GPG public key used to verify upgrades. Nobody needed a GitHub permission to start this: the extension ran with the developer's own access.
Permissions abused
Everything the developer's machine could reachDeveloper tokens and cloned code
On the permission reference
Reported by: GitHub
Click to open →October 2025 – March 2026
GlassWorm: editor extensions that steal GitHub tokens and force-push
GlassWorm started on 17 October 2025 as malicious VS Code extensions on Open VSX and the VS Code Marketplace. The loader is written in invisible Unicode characters, so it shows as blank space in editors, terminals and GitHub's diff view. Once installed, it takes GitHub, Git, npm and Open VSX credentials from the developer's machine, uses them to infect more extensions, and turns the machine into a proxy with remote access. From late 2025 the stolen GitHub tokens were also used against repositories. In March 2026 the same actor took the latest real commit in hundreds of Python repositories, added an obfuscated payload to files such as setup.py, and force-pushed it to the default branch. The author and commit message were kept, so only the committer date gives it away. Aikido found at least 151 affected repositories through code search in 3 to 9 March, and StepSecurity found hundreds more across hundreds of accounts, which it tracks as ForceMemo and ties to GlassWorm through the same command wallet. A force-push like this only works where the branch allows it.
Permissions abused
Tokens stored on the developer's machinecontents:write (force-push to the default branch)
On the permission reference
Reported by: Aikido, StepSecurity
Click to open →