Save your seat →

Push Logo

Authorization phishing: why attackers stopped targeting the login

Luke Jennings
Luke Jennings
·
Aug 24, 2026
·
11 min read

Why attackers are pivoting to authorization-layer attacks to get around authentication controls that are resistant to traditional phishing and account takeover techniques.

For most of phishing's history, the objective was simple: steal the credential. Whether through a fake login page twenty years ago or through an attacker in the middle (AiTM) reverse proxy today, the entire attack chain has been oriented around defeating authentication. So defenders have focused on making the login harder to compromise.

This investment is starting to pay off. While MFA as a blanket control is routinely defeated by AiTM attacks (the default phishing method today), phishing-resistant passkeys are used in a relatively small number of logins, but growing steadily each year. And core identity platforms are taking steps to make them the default method. For example, Microsoft is making passkeys the default sign-in method for Entra ID from September 2026, and users stuck on SMS or voice authentication will be force-migrated. 

AiTM phishing kits remain dominant, but the detection surface is improving — behavioral detections now catch the kit's page behavior regardless of the domain it's hosted on. Authentication controls are genuinely getting harder to beat (though even with passkeys, not impossible, as shown in downgrade attacks — shown in the video below).

So it makes sense that attackers are looking for alternatives. In 2026, we’ve seen device code phishing explode into mainstream adoption, with 30+ distinct kits now offering the technique (this number jumps every time we write a new update). 

Device code phishing sees the attacker target the authorization layer instead — OAuth consent flows that operate after authentication has already succeeded. We're calling this class of attack authorization phishing, and it represents a structural shift in how identity attacks work.

But device code phishing is one technique in a broader shift. ConsentFix, first discovered by Push in December 2025, has already been commoditized into criminal tooling

In this blog post, we’ll talk about the different authorization attacks used by attackers in the wild and what this means for security teams looking to detect and block these attacks.


Authentication phishing vs. authorization phishing

Authentication phishing targets the login — the moment a user proves their identity. AiTM reverse-proxy kits like Tycoon2FA and Sneaky2FA relay credentials and session tokens in real time, effectively defeating MFA by capturing the authenticated session as it's created. This has been the dominant phishing technique since roughly 2023, and it remains the most common attack we come up against in the wild.

Authorization phishing targets what happens after the login. Instead of stealing a session from the authentication flow, these attacks abuse OAuth authorization mechanisms — consent grants, device code flows, and token exchanges. The attacker never touches the authentication flow at all.

Three techniques currently fall under the authorization phishing umbrella. Most of them are exactly new, either — Push cataloged consent phishing and device code phishing in the Browser & Identity Attacks Matrix back in 2023. What's changed in 2026 is that they've moved from isolated, targeted operations to widespread adoption across the phishing-as-a-service ecosystem.

Consent phishing: the classic OAuth attack

Consent phishing is the oldest of the three, and the classic OAuth attack. The attacker creates a malicious third-party application and tricks the user into granting it permissions via an OAuth consent prompt. The app then uses those permissions to access the user's data via API.

Identity providers have substantially hardened their default configurations against consent phishing. Most platforms today do not allow users to consent to apps that have not already been admin-consented into the tenant. For example, Microsoft now blocks unverified third-party app consent by default, as does Google, and GitHub restricts OAuth apps to org-owner approval. 

And even if you can get in, once a malicious app is flagged, it's burned — and unlike domains and IP addresses, it's not easy to rotate. The vendor can ban the app, ban the entire tenant associated with it, and block the attacker's registration infrastructure. Setting up new apps at scale requires new verified tenants, which makes the economics of consent phishing significantly worse than other techniques. These controls are the main reason we don't see it much in the wild anymore.

Device code phishing: the breakout threat of 2026

Device code phishing targets a different OAuth flow entirely: the RFC 8628 device authorization grant, originally designed for input-constrained devices like smart TVs and IoT hardware. The attacker generates a code, delivers it to the victim via a phishing page that auto-polls for a fresh code on page load (which can arrive over email, Teams messages, LinkedIn DMs, voice calls, malvertising, or compromised websites), and the victim enters the code on the real device code for the target app. In the wild this is usually Microsoft, but last year's ShinyHunters campaign saw Salesforce targeted too.

This grants the attacker an access token scoped to whichever application was targeted, and critically, because device code phishing targets apps that are already consented in the user's tenant (usually first-party Microsoft apps), it sidesteps the consent restrictions that have made traditional consent phishing harder. 

In Microsoft environments, the impact can extend beyond API access — if the attacker targets the Microsoft Authentication Broker, they can register a virtual device against the victim's account and escalate to a full Primary Refresh Token, gaining an interactive SSO-enabled session that can laterally move across any SSO-joined application.

ConsentFix: the new ClickFix-OAuth hybrid

ConsentFix occupies an interesting middle ground. It targets the same OAuth flow as consent phishing — the authorization code grant (RFC 6749) — but it targets pre-approved first-party apps rather than attacker-created third-party apps, which means the consent restrictions that shut down traditional consent phishing don't apply.

First observed in Russia-linked APT29 campaigns in late 2025, the original attacks appeared on compromised websites and were tightly targeted — the attack only activated for specific email domains, allowing non-targets to use the site as normal. ConsentFix combines ClickFix-style clipboard injection with OAuth consent abuse, exploiting apps that use a localhost redirect URI as part of the handshake to capture authorization codes that are usually picked up by a server-side callback.

Push detected and blocked ConsentFix the first time it was seen in the wild, and within months of disclosure, a criminal ConsentFix toolkit appeared on the XSS forum, making the technique more widely available.


What defenders think works (and what actually does)

As we've already established, authentication controls like passkeys have no impact on these attacks, which can come as a surprise for those that have bought into the "phishing-resistant" tag of passkeys at face value. That isn't to diminish their value, the passkey isn't phished in this scenario, it's just being circumvented.

Passkeys remain the strongest available protection against AiTM and credential theft. But they address a different layer of the problem, and treating them as a complete answer to phishing creates a dangerous blind spot as attackers shift to authorization-layer techniques.

Evaluating post-authentication controls like Conditional Access Policies

Conditional access policies are the primary layer of defense cited against these authorization-layer attacks. We tested the most cited conditional access controls against both device code phishing and ConsentFix, and the results vary significantly.

Since the policy for require phishing-resistant authentication pertains to the enforcement of passkey-based logins, this has no impact here as we discussed above.

Block device code flow is the most direct control, and it works — but only against device code phishing, not ConsentFix. It also blocks legitimate device code use cases (Azure CLI, conference room hardware, developer tooling), so organizations with real device code dependencies need per-user group or per-app exceptions that create potential gaps.

Require compliant device is the most effective broad control. Device code flows can't present the TPM-bound proof-of-possession that device compliance requires, so they're blocked outright. However, as above, if you have legitimate uses for device code logins in your environment, you’d need to implement exceptions to this policy. 

ConsentFix, on the other hand, passes through this check. BYOD scenarios also create gaps — personal devices authenticating via browser without a Primary Refresh Token won't satisfy the compliance requirement either, for legitimate and malicious flows alike.

Token protection, currently in preview, binds refresh tokens to the device's TPM. It performed better in testing than expected for some ConsentFix scenarios — depending on the scopes requested and the target app — but it doesn't apply to all apps and resources.

Conditional access can be tricky to manage, however, particularly for larger organizations. User groups need maintaining, new apps need scoping, exceptions accumulate, and policies interact in ways that aren't always obvious from the admin console. It's easy to accidentally leave policies in report-only mode (I found this myself during testing) or create exceptions for specific apps that inadvertently open the authorization attack surface. And ticking the box doesn't tell you whether it works in practice.

Microsoft is taking additional steps to reduce the attack surface here — device code flow is blocked by default in new tenants, and they appear to be locking down apps and reply URLs to reduce the ConsentFix attack surface, including adding explicit "this might be a phishing attack" warnings on certain reply URLs used in ConsentFix scenarios. But the gap between a default deployment and a hardened one remains wide.

Native client warning displayed for ConsentFix attacks requesting certain scope and app combinations.
Native client warning displayed for ConsentFix attacks requesting certain scope and app combinations.

What about blocking the apps themselves?

The challenge is that the apps being abused aren't malicious — they're legitimate first-party Microsoft applications like Azure CLI, Microsoft Office, and Teams. They exist in every Entra tenant by default, are pre-consented with broad permissions, and can't simply be removed.

An admin can toggle "assignment required" on a service principal and restrict which users can authenticate through that app, but that means pre-creating and managing user assignments for every first-party app that could be targeted. Over-restricting broadly used apps like Teams or Office may break core workflows.


The future of authorization phishing

Several developments will determine how fast this category matures. Device code phishing is a core technique now, supported by most PhaaS vendors and bolted onto AiTM kits. ConsentFix criminal adoption is still early but could follow suit at any time. 

Non-Microsoft targets are the logical next step — device code phishing has already been demonstrated against Salesforce, and I showed off GitHub targeting in my recent webinar. Any platform that supports the authorization code grant with localhost redirect or the device authorization grant is a potential target. 

But OAuth is complex, and the authorization mechanisms that have been abused so far likely don't represent the full attack surface. Everything discussed so far has been initial access, but OAuth is also powerful at the persistence and lateral movement layers — an attacker who plants a malicious OAuth grant during a compromise has a stealthy persistence mechanism that survives credential resets and password changes, and can be extremely difficult to detect. As authorization phishing matures, we expect these post-compromise OAuth techniques to become more common too.

The poisoned tenant attack surface also remains largely undefended, which could see more typical consent phishing come back around. Historically, consent phishing involved an attacker creating a malicious app and inviting their targets to it. But you can just set up a tenant on a legit SaaS app and use that instead.

Most SaaS platforms let anyone create a workspace impersonating any organization, and few offer controls for admins to restrict which tenants their employees can join. We recently experienced this directly when an attacker created a fake OpenAI organization under our company's name and invited specific employees to join it.

"Invite accepted" confirmation page for the poisoned OpenAI tenant.
"Invite accepted" confirmation page for the poisoned OpenAI tenant.

What defenders should actually do

First, test your defenses against authorization attacks specifically. Don't assume that MFA, passkeys, or conditional access policies handle this. Run a device code phishing simulation against your environment and verify that your conditional access configuration actually blocks it. Test ConsentFix scenarios. If your controls rely on configuration assumptions you haven't validated, you have a gap.

Second, don't treat this as exclusively a Microsoft problem. Device code phishing can work against several apps. GitHub exposes broad scopes including full repository access and uses device code as the default CLI sign-in method — meaning developers encounter legitimate device code flows routinely, making phishing lures harder to distinguish from normal workflow. ConsentFix-style attacks targeting authorization code grants with localhost redirects could also expand beyond Microsoft as the technique matures.

Third, update your security awareness training. Most employees have no concept of authorization phishing — it doesn't look or feel like any phishing that they're used to. There's no suspicious login page, no credential entry on an unfamiliar domain. Traditional awareness training does not prepare users for this.

But to detect and block these attacks as they happen, you need to be in the browser. Push detects and blocks authorization attacks in real time, when the user is tricked into performing the malicious consent grant. We detected ConsentFix the first time it appeared in the wild, before any other vendor, and device code phishing detection has been live since the technique first entered mainstream use.

Watch the research

I recently talked about authorization phishing at BSides Las Vegas 2026, walking through live demonstrations of device code phishing (including against passkey-protected accounts), ConsentFix, and conditional access policy bypass testing. The full talk is available to watch on YouTube (starts at 27:12).

Authorization Phishing: Frequently Asked Questions

Authorization phishing is a category of phishing attacks that target OAuth authorization flows rather than the authentication (login) process. Instead of stealing credentials or session tokens, authorization phishing tricks users into granting attacker-controlled applications access to their accounts through legitimate OAuth consent prompts or device code flows. The user authenticates normally — on the real identity provider, with their real credentials and MFA — and the attack exploits the authorization decision that follows.

Authentication phishing attacks the login — the moment a user proves their identity. Techniques like AiTM (adversary-in-the-middle) phishing use reverse-proxy kits to intercept credentials and session tokens during the authentication flow. Authorization phishing attacks what happens after the login. The user authenticates legitimately, and the attacker abuses OAuth mechanisms (consent grants, device code flows, token exchanges) to obtain access tokens. The key difference: authentication phishing defeats MFA by proxying the login and intercepting the session token, while authorization phishing makes MFA irrelevant because the authentication succeeds normally.

No. All forms of MFA — including passkeys, FIDO2 keys, authenticator apps, and SMS codes — protect the authentication flow. Authorization phishing targets the authorization layer, which operates after authentication has already succeeded. The user completes MFA normally, and the attack exploits the subsequent OAuth consent or device code flow. Passkeys remain the strongest defense against authentication phishing (AiTM, credential theft), but they don't address authorization-layer attacks.

Some conditional access policies can block device code phishing, but effectiveness is highly configuration-dependent. "Block device code flow" is effective but also blocks legitimate use cases. "Require compliant device" blocks device code phishing because the flow can't present device compliance proofs, but doesn't stop ConsentFix. "Token protection" (currently in preview) has limited applicability. "Require phishing-resistant authentication" is not applicable because the authentication in device code phishing is already legitimate. The gap between a default conditional access deployment and a hardened one is significant.

ConsentFix is harder to block with conditional access because it uses the standard authorization code grant flow rather than the device code flow. "Block device code flow" doesn't apply. "Require compliant device" doesn't stop ConsentFix. "Token protection" mitigates some ConsentFix scenarios depending on scopes requested, but it's in preview and limited in scope. Microsoft appears to be reducing the ConsentFix attack surface by locking down apps and reply URLs, but there is currently no single conditional access policy that reliably blocks all ConsentFix variants.

Authorization phishing detection requires visibility at the browser layer, where the OAuth consent and device code flows actually execute. This includes monitoring device code authorization pages for suspicious activity, capturing OAuth consent flows (client ID, scopes requested, authorization server, outcome), and detecting browser-native attacks like ConsentFix that combine clipboard injection with OAuth abuse. Network-layer and endpoint-layer tools don't have visibility into these browser-rendered authorization flows.

No. Email gateways won't catch it — a device code phishing lure asks the user to visit a legitimate URL (like microsoft.com/devicelogin) and enter a code. There's no malicious link, no credential-harvesting page, and no suspicious attachment for the gateway to flag. The pages and infrastructure used as part of these campaigns are frequently rotated to evade blocklists. 

SWGs inspect network traffic and enforce access policies, but the authorization flow happens on the real identity provider's domain over a legitimate connection — indistinguishable from a normal sign-in. 

EDR won't see it either, because the entire attack plays out in the browser via standard web requests — no malicious payload touches the filesystem or triggers OS-level detection. These tools are built to detect authentication phishing — malicious URLs, cloned login pages, known-bad infrastructure — and authorization phishing doesn't produce any of those artifacts. 

Browser-layer detection closes the gap, because it has visibility into the authorization flow itself, tab metadata, and page context that makes bad activity identifiable from normal behavior.

Yes, in Microsoft environments. Entra ID conditional access includes a "block device code flow" policy that prevents device code authorizations outright, and Microsoft now recommends enabling it for any tenant that hasn't used the flow in the past 25 days. 

The main operational cost is that Azure CLI, developer tooling, and conference room hardware often depend on device code flow, so developer-heavy organizations may need exclusions that increase susceptibility to this technique. 

"Require compliant device" also blocks device code phishing indirectly, since the flow can't present the TPM-bound proof that compliance requires. Two important caveats: blocking device code flow doesn't block ConsentFix or other authorization code grant attacks, so it's a partial solution to the broader authorization phishing category. 

Outside Microsoft, options are more limited — Google mitigates the risk by restricting which scopes are available through device code, but GitHub and other platforms that support the flow don't offer equivalent blocking controls, leaving you reliant on monitoring and detection rather than prevention.

The attack isn't Microsoft-exclusive, but the exposure varies across different platforms. Microsoft has the broadest exposure because of unrestricted scopes, reusable first-party client IDs, and FOCI token exchange. This, combined with the prevalence of Microsoft, is why the overwhelming majority of observed attacks target Entra ID.

GitHub is also an obvious target: device code flow is the default CLI sign-in method, and broad scopes including full repository access are available, though the attacker must control their own OAuth app and the victim sees an explicit consent screen. 

Google is lower risk for device code phishing specifically — Google explicitly limits which scopes are accessible through the device code flow, making Gmail, Calendar, and most Workspace APIs unavailable through this mechanism. 

Salesforce and AWS also support the flow. However Salesforce implemented changes to app approvals and permissions following the large-scale campaign in 2025 to reduce the scope for abuse in future.

If your environment relies on any platform that supports OAuth device authorization grants or authorization code grants with localhost redirect URIs, the attack surface exists.

About the author
Luke Jennings
Luke Jennings
Vice President, R&D