ghtier
← Back to User plane incidents
User2025–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

How it unfolded

  1. 1

    A fake "Security Alert" issue is filed

    The campaign opened issues on roughly 12,000 repositories, styled to look like an automated GitHub security notification about the repository itself.

  2. 2

    The link leads to a genuine GitHub authorization screen

    The issue's call-to-action pointed to GitHub's own, real OAuth authorization page for a malicious OAuth App — not a spoofed login page — so it passed SPF/DKIM checks and looked legitimate under every check a developer could reasonably make.

  3. 3

    One click grants a persistent token

    Approving the prompt handed the attacker's app a persistent OAuth token. Because the developer's own already-authenticated session did the authorizing, MFA was never re-challenged and never came into play.

  4. 4

    The token grants full account and code control

    With that token, the attacker held exactly the access the developer had just authorized: full control over the developer's repositories and account activity, with no password ever touched.

  5. 5

    Device-code phishing achieves the same outcome without an app

    A related technique skips installing an OAuth App entirely: research reports success rates above 90% against users in authorized testing engagements using device-code phishing alone.

Mitigations

  • Require security/IT approval before any new GitHub App or OAuth App installation

  • Review every currently installed GitHub App / OAuth App and its granted scope on a recurring basis

  • Train developers to treat any "authorize this app" prompt reached via an issue, email, or chat link as suspicious — it can resolve to a genuine github.com domain and still be malicious

  • Restrict which OAuth Apps can access organization resources — via OAuth App access restrictions

  • Monitor and alert on new OAuth App authorizations in the audit log — rather than only reviewing them periodically

Frameworks

Ongoing. First seen January 2025. Mapping by ghtier, not yet reviewed. Threat landscape