Blog
Threat Intelligence 14 min read Updated: 2026-08-09

VENOM: C-Suite Credential Theft Campaign Bypassing MFA

A five-phase campaign targeting executives across 20+ industries uses adversary-in-the-middle techniques to hijack sessions, rendering MFA ineffective.

VENOM: C-Suite Credential Theft Campaign Bypassing MFA

The VENOM campaign doesn't break MFA. It operates inside the authenticated session, capturing the token issued after a correct sign-in with a second factor, which leaves the password and the one-time code protecting nothing. The scale of this attack class is not niche: Microsoft documented a single adversary-in-the-middle campaign that reached over 35,000 users across 13,000 organisations in three days of April 2026. What closes the vector is phishing-resistant authentication and token revocation, not a password reset.

Authenticated session theft in numbers
35,000
users hit by a single AiTM campaign in three days, April 2026
Microsoft Threat Intelligence, May 2026
+146%
growth in QR code phishing between January and March 2026
Microsoft, Email threat landscape Q1 2026
$3.046bn
in BEC losses reported to the FBI in 2025, across 24,768 complaints
FBI IC3, Internet Crime Report 2025
>50%
confirmed success rate of the Microsoft 365 account takeover attempts observed in 2025
Proofpoint, July 2025

What the VENOM campaign is

VENOM is a credential theft campaign aimed at senior executives, documented by Arsen after more than five months of observation. Targets are picked by name across more than 20 industries, and 60% of recipients hold a C-level, President or Chairman title. What sets it apart isn't the quality of the fake sign-in page, which has been good for years. It's what happens after the sign-in.

Classic phishing takes the password. This takes the token: the attacker captures the outcome of a correct authentication, second factor already satisfied. The campaign does that two ways. In the adversary-in-the-middle (AiTM) variant a proxy page sits inside a real login and collects the session cookie and refresh token on the way through. In the device code variant the victim signs in on Microsoft's genuine page, and the only irregularity is who the tokens are issued to at the end.

Executives are targeted for their reach and their correspondence, not for weaker security habits. A board member's mailbox holds draft contracts, deal timetables, and threads where a payment instruction raises no eyebrows. This is textbook spear phishing and whaling, with an authenticated session as the payload instead of a malicious attachment.

Scale: this is not a niche attack

The best documented example of this attack class comes from April 2026. Microsoft Threat Intelligence described an AiTM campaign posing as a corporate code of conduct that reached over 35,000 users across more than 13,000 organisations in 26 countries between 14 and 16 April. The sector split shows the targeting was anything but random: healthcare 19%, financial services 18%, professional services and technology 11% each.

Donut chart of sectors hit by the April 2026 AiTM campaign: healthcare 19%, financial services 18%, professional services 11%, technology 11%, other sectors 41%
Donut chart of sectors hit by the April 2026 AiTM campaign: healthcare 19%, financial services 18%, professional services 11%, technology 11%, other sectors 41%

The packaging is shifting too. In the first quarter of 2026 Microsoft analysed roughly 8.3 billion email-based phishing threats and named QR codes the fastest-growing carrier: 7.6 million attacks in January rising to 18.7 million in March, a 146% increase. By March, 70% of them arrived inside PDF attachments. The QR code is not decoration. It moves the click off a managed laptop onto a personal phone, past the proxy, the endpoint agent and the mail filter. Behind that packaging sits an entire market, because the tooling for campaigns like this is sold on subscription, which we cover in our piece on the FBI warning about the Kali365 platform.

The money sits at the end of this chain. The FBI's IC3 recorded $3.046 billion in BEC losses for 2025 across 24,768 complaints, roughly $123,000 per complaint. A hijacked executive mailbox is the shortest path to that transfer, because it lets the attacker hold the conversation from a real address, in a real thread, with knowledge of the real payment calendar. Poland's CERT Polska registered 260,783 incidents in 2025, 97% of them computer fraud, alongside nearly 250,000 domains added to its warning list, up 166% year on year.

The five phases of the attack chain

Phase 1

Delivery — Branded SharePoint Notifications

Targets receive what appears to be a legitimate SharePoint notification, dynamically personalized with internal organizational branding. The email contains a QR code constructed entirely from Unicode characters — a technique that evades image-based email scanners. The lure mimics platforms executives interact with daily: SharePoint, DocuSign, or courier services.

Phase 2

Device Shift — Moving to Personal Mobile

When the target scans the QR code, the attack shifts to their personal phone — completely bypassing corporate proxies, endpoint detection, and network monitoring. The target's email address is double Base64-encoded in the URL fragment (after the #), making it invisible to proxy logs and URL inspection tools.

Phase 3

Bot Filtering — Fake Security Challenge

Before reaching the phishing page, visitors pass through a fake Cloudflare or Microsoft Defender verification. This gate uses User-Agent analysis, IP reputation checks, and proof-of-work challenges to filter out security crawlers and sandboxes. Automated tools are redirected to legitimate Microsoft pages.

Phase 4

Credential Harvesting — Real-Time Session Hijacking

The victim encounters a pixel-perfect replica of their organization's Microsoft sign-in page — complete with corporate logos and their pre-filled email address. Behind the scenes, an adversary-in-the-middle proxy relays credentials to Microsoft's API in real time, capturing session tokens and refresh tokens. An alternative Device Code flow has the victim authenticate directly on microsoft.com while tokens are silently delivered to the attacker.

Phase 5

Persistence — Rogue MFA Device Registration

Before the browser redirects the victim to a benign error page, the attacker registers a new MFA device under their control. This appears in Entra ID logs as a "SoftwareTokenActivated" event with the display name "NO_DEVICE." From this point, the attacker has persistent access that survives password resets — only full session and token revocation in Entra ID will lock them out.

Example of a branded SharePoint phishing email with Unicode QR code used in the VENOM campaign
Example of a branded SharePoint phishing email with Unicode QR code used in the VENOM campaign

How device code flow turns into token theft

Device code flow is a legitimate OAuth 2.0 mechanism built for devices where typing a password is painful: televisions, consoles, command-line tools, IoT hardware. The device asks the identity provider for a short code, shows it to the user, and waits. The user goes to a sign-in page on a separate, trusted device, enters the code, authenticates normally, and the identity provider issues tokens to whoever requested the code.

The abuse breaks that assumption. The attacker initiates the flow and receives the code, then forwards it to the victim under the pretext of joining a meeting, confirming access, or verifying a device. The victim types the code on Microsoft's real page, completes real MFA, and sees a real success message. The tokens go to the attacker, because it was their device waiting for the result all along. Microsoft documented the technique in February 2025 alongside a campaign by an actor it tracks as Storm-2372, aimed at government, NGOs, defence and energy among others.

The Device Code authentication flow — victim authenticates on microsoft.com while tokens are silently delivered to the attacker
The Device Code authentication flow — victim authenticates on microsoft.com while tokens are silently delivered to the attacker

The refresh token is what matters. An access token expires within the hour, but a refresh token mints new ones for as long as it stays valid, with no fresh sign-in, no MFA, and no contact with the victim. The attacker then queries Microsoft Graph, searches the mailbox for words like "password" or "transfer", pulls files out of OneDrive, and sends messages from the victim's account. A password reset does not interrupt any of that on its own.

In Microsoft Entra logs the sequence has a recognisable shape. A device code authentication first leaves an entry with result code 50199, the pause while the code is entered, and moments later a successful entry for the same user, often from a different IP address and a client application that person never normally uses. The third entry, in the audit log, is the registration of a new authentication method, and that is the point where the attack stops depending on the stolen token.

Hunting queries for Microsoft Entra logs
KQL
// 1. Every device code sign-in in the last 14 days. Most tenants never use
//    this flow, so the baseline itself is the detection.
SigninLogs
| where TimeGenerated > ago(14d)
| where AuthenticationProtocol =~ "deviceCode"
| extend Country = tostring(LocationDetails.countryOrRegion)
| project TimeGenerated, UserPrincipalName, AppDisplayName, ResourceDisplayName,
          IPAddress, Country, ResultType, CorrelationId
| order by TimeGenerated desc

// 2. The device code interrupt (50199) followed by a success for the same user
//    from another address within five minutes: the shape a phished code leaves.
let lookback = 14d;
let gap = 5m;
let prompts = SigninLogs
    | where TimeGenerated > ago(lookback) and ResultType == 50199
    | project UserPrincipalName, PromptTime = TimeGenerated, PromptIP = IPAddress;
let grants = SigninLogs
    | where TimeGenerated > ago(lookback) and ResultType == 0
    | where AuthenticationProtocol =~ "deviceCode"
    | project UserPrincipalName, GrantTime = TimeGenerated, GrantIP = IPAddress, AppDisplayName;
prompts
| join kind=inner grants on UserPrincipalName
| where GrantTime between (PromptTime .. PromptTime + gap)
| where PromptIP != GrantIP
| project UserPrincipalName, PromptTime, PromptIP, GrantTime, GrantIP, AppDisplayName

// 3. A new authentication method registered within an hour of a device code
//    sign-in. This is the persistence step, and it survives a password reset.
let tokens = SigninLogs
    | where TimeGenerated > ago(14d)
    | where AuthenticationProtocol =~ "deviceCode" and ResultType == 0
    | project UserPrincipalName, GrantTime = TimeGenerated, GrantIP = IPAddress;
AuditLogs
| where TimeGenerated > ago(14d)
| where LoggedByService == "Authentication Methods"
| where OperationName in ("User registered security info",
                          "User registered all required security info")
| where Result == "success"
| extend UserPrincipalName = tostring(TargetResources[0].userPrincipalName)
| join kind=inner tokens on UserPrincipalName
| where TimeGenerated between (GrantTime .. GrantTime + 1h)
| project TimeGenerated, UserPrincipalName, OperationName, GrantTime, GrantIP
Three KQL queries for Microsoft Sentinel or a Log Analytics workspace with the SigninLogs and AuditLogs tables connected. Adjust the time windows to your own retention period.

Why MFA isn't enough, and which MFA is

"We have MFA" says nothing about resistance to this campaign, because MFA splits into two classes with very different properties. CISA draws the line explicitly: the phishing-resistant methods are FIDO2/WebAuthn and PKI-based authentication (PIV/CAC cards). Everything else, SMS, an authenticator app code, a push notification, is phishable, because it comes down to a secret a human can retype or approve in the wrong place. The gap is measurable: during 2025 Proofpoint observed attempted account compromises affecting nearly 3,000 user accounts across more than 900 Microsoft 365 environments, with a confirmed success rate exceeding 50%.

What each second factor actually stops
Authentication methodAiTM proxyDevice code phishingPractical note
SMS or voice callDoes not stop itDoes not stop itMicrosoft retires its own SMS and voice delivery in Entra ID on 1 February 2027
TOTP code from an authenticator appDoes not stop itDoes not stop itThe code can be relayed through a proxy in real time, well before it expires
Push notification with number matchingDoes not stop itDoes not stop itIt curbs prompt bombing, but the victim still approves a sign-in they started themselves
FIDO2/WebAuthn passkeyStops itDoes not stop itThe signature is bound to the domain, so a proxy cannot relay the login; device code sidesteps that entirely
Certificate-based authentication (PIV/CAC)Stops itDoes not stop itRequires your own PKI and certificate lifecycle management

The third column is the one most often skipped. A passkey genuinely closes the AiTM variant, because the cryptographic signature is bound to the domain and cannot be reproduced on an intermediary page. It does not close the device code variant, because there the victim signs in on Microsoft's real domain and completes genuine, phishing-resistant authentication. The mistake is not how they signed in but where the code came from. That variant is closed by Conditional Access policy.

Bar chart of initial access vectors in the European Union: phishing 60%, vulnerability exploitation 21.3%, botnets 9.9%, malicious applications 8%
Bar chart of initial access vectors in the European Union: phishing 60%, vulnerability exploitation 21.3%, botnets 9.9%, malicious applications 8%

The platform is moving in one direction. From 1 September 2026 Microsoft Entra ID makes passkeys the default sign-in experience and automatically enables them for users on SMS or voice, and from 1 February 2027 it retires its own delivery of those two methods. After that date, anyone whose only second factor is SMS gets a blocking prompt until they register a passkey. Organisations that run the migration early and by choice will run it more cheaply than those doing it against a deadline.

Why Social Engineering Makes This Work

Technical sophistication is only half the story. The campaign succeeds because it exploits deeply ingrained behavioral patterns in executive workflows:

  • Authority and routine — the impersonated platforms match daily executive workflows, so the response is habitual rather than considered
  • Personalisation — sender domains and footers are drawn from the target's own organisation, creating the appearance of internal communication
  • Device code subtlety — the target performs a genuine action on microsoft.com, so none of the learned heuristics ("check the address bar") ever fires

Telling a real sign-in request from this campaign

There is one recognition signal, and it needs no technical knowledge: a request to sign in or to enter a code that nothing you did set in motion. A real login is always the consequence of something you just did. A code arriving from outside "for confirmation" has no legitimate equivalent. The comparison below covers the rest of the signals.

Signal by signal
A legitimate Microsoft 365 sign-in
The VENOM campaign
The sign-in follows something you just did on your own device
The request arrives from outside and precedes any action of yours
A file notification leads to your organisation's tenant on a sharepoint.com domain
The notification leads off Microsoft entirely, often via a QR code in the body or in a PDF
The whole path stays on the corporate device, behind the proxy and the endpoint agent
A QR code deliberately moves the path onto a personal phone, outside all of that monitoring
There are no extra verification screens before the sign-in page itself
An extra "security check" sits in front of the sign-in page, filtering out analysis tooling
You only type a device code that you displayed yourself on a second screen
The device code arrives in a message, a chat, or a meeting invitation
After signing in you land on the resource you came for
After signing in you land on an error page or a generic corporate page, and the session "didn't go through"
Common response mistakes
  • A password reset on its own does not end the session — refresh tokens issued earlier stay valid and the attacker keeps using the account
  • Toggling MFA off and on does not remove a method the attacker added — while it sits on the account, they can still pass verification
  • Deleting the phishing message closes nothing once someone has entered a code; the lure is the least important artefact of the incident
  • Looking only at interactive sign-ins misses the Microsoft Graph traffic that does the actual exfiltration here
  • Wiping mailbox rules before exporting them destroys the evidence of what was redirected, and for how long
  • Warning the victim through their own mailbox hands the attacker a live view of your response; use a channel outside email

The first 60 minutes after a suspected session hijack

Order matters more here than completeness. The goal of the first hour is to take valid tokens away from the attacker and remove whatever would let them mint new ones, before anyone starts analysing how it happened. The procedure below assumes access to Microsoft Entra and the audit log.

  1. Minutes 0-10SOC on call
    Revoke sessions, not just the password

    Trigger sign-in session revocation for the account (the revokeSignInSessions operation in Microsoft Graph). That is what invalidates refresh tokens. Reset the password in parallel, but treat it as the second action, not the first.

  2. Minutes 10-20Identity administrator
    Review the account's authentication methods

    Check the audit log for every authentication method registration in the last 30 days. Remove any the user does not recognise, and only then let them register a new one. Capture a snapshot of the state before you change anything.

  3. Minutes 20-35Mail administrator
    Preserve, then clear mailbox rules

    Export mailbox and forwarding rules before deleting anything. Look for redirects to external addresses and rules that move messages containing "invoice", "transfer" or "bank" into rarely opened folders. Check delegations and mailbox permissions too.

  4. Minutes 35-50Identity administrator
    Review OAuth application consents

    List user consents and admin consents for the tenant, paying particular attention to mail, file and directory read permissions. An application consent is an independent persistence mechanism that survives both a password reset and session revocation.

  5. Minutes 50-60Incident lead
    Establish scope and secure the financial context

    Reconstruct from the logs which resources were reached through Microsoft Graph and what was sent from the account. If any thread touches payments, notify finance on a separate channel and hold transfers confirmed by email alone until they are verified by voice.

What is left after the first hour is the part that cannot be rushed: finding out how many other people received the same message, sweeping device code sign-ins across the whole tenant, and deciding whether the incident is notifiable. If personal data sat in that mailbox, the GDPR 72-hour clock starts when the breach is established, not when the analysis is finished.

What to close in advance

Prevention is unusually concrete here, because the attack relies on a countable set of platform mechanisms. The list below is ordered by effect against effort, from configuration changes to organisational ones.

Microsoft 365 checklist
  • Block device code flow with a Conditional Access policy — Microsoft recommends a near-unilateral block; start in report-only mode, keep exceptions for documented legacy tooling, and use the same policy condition to block authentication transfer
  • Move executives and administrators to passkeys or certificates first — the only class of method that closes the AiTM variant, and Microsoft's timeline forces it anyway
  • Turn on token protection where it is supported — it binds the token to the device for native Exchange Online, SharePoint Online and Teams apps; browser-based apps are not covered
  • Restrict user consent for OAuth applications — self-service consent only for verified publishers and low-risk permissions, everything else through admin approval
  • Run periodic reviews of consents and authentication methods — the two most common persistence mechanisms in this campaign
  • Alert on the device code sequence: result code 50199 followed by a successful sign-in for the same user from a different IP address within a few minutes
  • Give executives a dedicated phishing and deepfake simulation programme covering QR and device code variants — general awareness training does not cover the case where the victim signs in on the real page

The cost of this work breaks into several lines, and it is worth counting them separately rather than hunting for a single figure. On licensing, the Entra ID tier matters, because Conditional Access and token protection need more than the base plan. On hardware, the number of people who get a FIDO2 key and whether they need a spare. On team time, the inventory of applications still using device code, the weeks a policy spends in report-only mode, and the support load during passkey registration. On process, rewriting the response procedure so that token revocation is its first step.

Detection matters as much as configuration, because some signals only appear after the fact: a new MFA method, an unusual client application, a device code sign-in in a tenant that never used one. If nobody watches those events outside office hours, put that layer on 24/7 monitoring, and track executive data exposure in criminal sources separately (Flare).

KEY TAKEAWAYS

  • 1
    The token is stolen, not the password — the attacker captures the result of a correct sign-in with its second factor, so "do we have MFA" settles nothing
  • 2
    The class of method decides it — FIDO2 passkeys and certificates close the AiTM variant because the signature is bound to the domain; SMS, TOTP and push do not
  • 3
    Device code is a separate problem — the victim signs in on Microsoft's real page, so a Conditional Access policy closes it, never the choice of second factor
  • 4
    A password reset does not end the session — access continues until you revoke sign-in sessions and remove the methods and application consents that were added
  • 5
    The deadline is set externally — from 1 February 2027 Microsoft retires its own SMS and voice in Entra ID, so the migration happens either way

Frequently asked questions

Does MFA protect against the VENOM campaign?

Only partly. MFA based on SMS, TOTP codes and push notifications stops neither the adversary-in-the-middle variant nor the device code one, because the attacker captures the result of a correct authentication rather than circumventing it. FIDO2 passkeys and certificate-based authentication close the AiTM variant, because the signature is bound to the domain. No method closes the device code variant; that one needs a Conditional Access policy.

Does changing the password end a hijacked Microsoft 365 session?

No. Refresh tokens issued before the change stay valid and keep minting new access tokens without a fresh sign-in. The session ends only with explicit sign-in session revocation in Microsoft Entra (the revokeSignInSessions operation), and persistence disappears only once you remove any authentication methods and application consents the attacker added. A password reset is necessary but not sufficient.

What is device code phishing, and why does the mechanism exist?

It is a standard part of OAuth 2.0 for devices without a comfortable keyboard: televisions, consoles, command-line tools. The device asks for a short code, the user enters it on a separate device and signs in normally. In the phishing version the attacker starts that flow on the victim's behalf and sends them their own code, so the tokens go to the attacker even though the victim signed in on Microsoft's genuine page.

How do I check whether anyone in my organisation signed in via device code?

In Microsoft Entra, review sign-in logs for the deviceCode authentication protocol. In Sentinel or a Log Analytics workspace that maps to a filter on the AuthenticationProtocol column of the SigninLogs table. The suspicious shape is result code 50199 followed by a successful sign-in for the same user from a different IP address within a few minutes. The queries are in the KQL block above.

Is there any risk in blocking device code flow?

In most organisations, no, because the flow is barely used. Microsoft recommends getting as close as possible to a unilateral block and auditing existing use first. The safe route is to run the Conditional Access policy in report-only mode, review the hits over a few weeks, then enforce it with exceptions only for documented legacy tooling.

How do I spot a QR code in an email that leads to session theft?

By context, not by the look of the code. A legitimate file notification leads to your own organisation's tenant and never needs a phone to scan anything. A QR code in a message or an attached PDF has exactly one function: to move the click onto a personal device, past the corporate proxy and endpoint agent. Microsoft recorded a 146% rise in this carrier during the first quarter of 2026, with 70% of such attacks arriving in PDFs by March.

Does this attack only affect Microsoft 365?

No. The mechanism belongs to the protocols rather than to one vendor: an adversary-in-the-middle proxy works against any web sign-in, and device code flow is a standard OAuth 2.0 extension. We describe the Microsoft variant because it is the best documented and because that is where most executive correspondence lives. The controls are analogous everywhere: phishing-resistant methods, restricted rare flows, and token revocation.

In closing

MFA remains necessary but is no longer sufficient for executive accounts. Once an attacker operates inside an authenticated session and adds their own sign-in method, what matters is not whether a second factor exists but which class it belongs to, which authentication flows were left open, and how fast tokens can be revoked. All three are settled before an incident, not during one. Executives and their assistants deserve a separate phishing and deepfake simulation programme, with hijacked-session detection handled by a 24/7 SOC.

The attack doesn't bypass MFA — it makes MFA irrelevant by operating inside the authenticated session itself. Defending against this requires rethinking what "secure authentication" actually means in 2026.

Sources

  1. 1.
    Breaking the code: Multi-stage "code of conduct" phishing campaign leads to AiTM token compromise
    Microsoft Threat Intelligence · 2026-05-04 · accessed 2026-08-09
    Analysis of a single AiTM campaign: reach, sector breakdown and the course of the three-day window.
  2. 2.
    Storm-2372 conducts device code phishing campaign
    Microsoft Threat Intelligence · 2025-02-13 · accessed 2026-08-09
    Describes the abuse of device code flow, the signals it leaves in logs, and the recommended restrictions.
  3. 3.
    Email threat landscape: Q1 2026 trends and insights
    Microsoft Threat Intelligence · 2026-04-30 · accessed 2026-08-09
    Microsoft email telemetry for Q1 2026: phishing volume and the growth of QR code delivery.
  4. 4.
    Block authentication flows with Conditional Access policy
    Microsoft Learn · 2026-03-24 · accessed 2026-08-09
    Documentation for the Conditional Access policy that blocks device code flow and authentication transfer.
  5. 5.
    Passkeys by default and retirement of Microsoft-provided SMS and voice authentication
    Microsoft Learn · 2026-07-29 · accessed 2026-08-09
    Timeline for Entra ID moving to passkeys and retiring SMS and voice authentication.
  6. 6.
    Implementing Phishing-Resistant MFA
    CISA · 2022-10 · accessed 2026-08-09
    Defines phishing-resistant MFA and names FIDO2/WebAuthn and PKI as the only methods in that class.
  7. 7.
    2025 Internet Crime Report
    FBI IC3 · 2026 · accessed 2026-08-09
    Complaints from US victims only; losses and complaint counts for the BEC category.
  8. 8.
    Microsoft OAuth App Impersonation Campaign Leads to MFA Phishing
    Proofpoint · 2025-07-31 · accessed 2026-08-09
    Campaign impersonating Microsoft OAuth applications; attempted compromises of nearly 3,000 accounts across more than 900 Microsoft 365 environments during 2025.
  9. 9.
    ENISA Threat Landscape 2025
    ENISA · październik 2025 · accessed 2026-08-09
    Share of initial access vectors across 4,875 EU incidents, July 2024 to June 2025.
  10. 10.
    Raport roczny CERT Polska za 2025 rok
    CERT Polska / NASK · 2026 · accessed 2026-08-09
    Scale of reports and incidents in Poland in 2025, with the count of domains on the warning list.
  11. 11.
    The C-suite credential theft campaign that neutralizes MFA
    Arsen · 2026-04-15 · accessed 2026-08-09
    The original VENOM analysis: target selection, the QR code technique and the persistence indicators.

Protect your executives from attacks like VENOM

Arsen provides AI-powered phishing simulations, QR code attack testing, and executive-specific training — exactly the defenses recommended against this campaign.

Explore Arsen

Secure your
future today

Cyber threats don't sleep, and neither do we. Whether you need an immediate response to a breach or a long-term strategic security partner, ZeroLayer is ready.

Book a 30-minute call

Pick a time that works for you and talk directly to our security team. A conversation about your situation, not a sales pitch.