Blog · Deliverability

Why HR/payroll QR code phishing bypasses corporate network security

When an employee scans a QR code in a phishing email on a personal mobile phone, every corporate network safeguard fails at once. The link never gets rewritten. The destination never gets sandboxed. The gateway never sees the credential submit. The whole category of "email body link" defenses becomes irrelevant the moment the scan happens off the corporate network.

This is a category of phish that DMARC alone cannot stop. The credential submit happens outside the corporate perimeter, on an unmanaged device, on a network the company does not own. That changes which controls actually close the gap. A defense in depth path that includes DMARC plus identity-layer controls plus QR-aware gateway scanning is what works.

This is what makes HR and payroll-themed QR phish different from older employee-themed lures. The lure looks like the same category of mail employees have always gotten, but the delivery vehicle is now a QR code in the body of an HR-flavored message, scanned by a phone on a personal or guest network. The credential capture and the password reset that follows happen on infrastructure the corporation does not control.

What HR/payroll QR phish actually does

The message arrives with a familiar HR subject line. "Your pay has been adjusted." "Open your benefits statement." "Review your withholding change." A QR code sits in the body of the email, sometimes a single bitmap image, sometimes a text-rendered grid of cells.

The user is at a desktop. The phone is on the desk, signed into the corporate SSO but also signed into personal accounts. The user lifts the phone, opens the camera, scans the QR. The phone browser opens the decoded URL. The page looks like the corporate SSO. It is not. The credentials the user submits go to the attacker.

Some versions of this lure do something worse: after the credential is captured, the page walks the user through a password reset. A sysadmin who reported the pattern to r/sysadmin in October 2026 described a user who had just reset their own password and was trying to use the new password on what they thought was the corporate SSO. By the time the user asked anyone, the credentials and the new password had already been turned into valid session tokens.

Why Safe Links and URL sandboxing do not save you

URL rewriting operates on a clickable link inside the email body, at the moment of click, against a managed browser session. There is no clickable link in this flow. There is an image or a markup grid representing a QR code. The gateway does not normally decode the QR payload for rewriting. Sandboxing operates on link clicks on managed devices. The QR scan happens on an unmanaged phone on a personal or carrier network. Every control that anchors to the corporate managed browser is past before the user even lifts the phone.

The text-only QR bypass documented in mid-2026 (Kaspersky research cited in trade press) is a separate problem. That variant explained why QR codes built from HTML markup defeat image-based QR decoders. This piece is about a different gap: even a perfectly decoded QR payload, scanned on a personal phone, slips past every network-layer control by virtue of where the credential submit happens. The image-rendering technique is not the issue. The bypass technique is the move from the corporate managed browser to the unmanaged phone.

The same gap exists regardless of the rendering technique. Image-based QR, text-rendered QR, even a QR mailed as a PDF attachment - they all work because the URL evaluation happens outside the corporate network.

Why HR/payroll themes specifically convert

People expect HR mail. They expect payroll adjustments, benefits statements, withholding changes, performance review notes. HR-themed lures land during working hours with the user at a desktop and a phone within reach. The category of mail is so familiar that users stop applying the same suspicion they would apply to an invoice phish.

Two patterns make the lure extra effective:

1. The HR category trains employees to expect action. People are conditioned to act on mail from HR.
2. The QR code normalizes a small, one-step action (lift phone, scan, type password) that feels lower stakes than clicking a link.

The legacy employee-themed phish and the modern HR-QR phish draw on the same psychology. The delivery vehicle is what changed.

What a defense in depth path looks like

There is no single control that closes this gap. The defenses that actually help are identity-layer and rendering-layer controls, with mail-layer controls playing a supporting role.

Mail-layer controls do help, but not as the lead control. DMARC enforcement reduces the volume of HR-themed phish that arrives using your own domain at all. DMARCFlow aggregate reports surface the unauthorized senders attempting to use your domain. When a wave starts, you see it in your reports before you see it in user inboxes. That visibility buys time to brief users and to harden the identity-layer controls below before the credential submits start.

The lead controls that actually catch the credential submit are:

Force QR payload decoding at the gateway

Most SEGs treat QR codes as opaque images today. The mail gateways that do decode the QR payload usually only do so for image-based QR, leaving text-rendered QR (the variant documented in mid-2026) untouched. Both image-based QR and text-rendered QR should be decoded. The decoded URL should be evaluated against the gateway URL blocklist and against reputation feeds. The URL should be rewritten or annotated in the body so the user sees the actual destination before they scan.

Conditional access that does not trust the device

Conditional access policies should require a compliant device for SSO, regardless of where the credential prompt originates. The check has to run at the identity provider, not at the email gateway, because by the time the gateway sees the credential submission the credential has already been captured.

Geo-aware MFA challenge policy

An MFA prompt from a personal phone in a country the user has never logged in from should require more than an approval tap. Number matching, FIDO2 keys, or step-up auth for unfamiliar geolocations catches this after the fact. The credential is captured either way, but the session token is harder to mint from a foreign geographic context.

Browser isolation for managed devices

When a user clicks any unfamiliar URL from a managed browser, render it in a remote browser session the gateway controls. Visual isolation strips the credential capture page before it ever lands in front of the user.

User training with specific guidance

"Never scan an HR QR code with a personal phone on a personal network." Train this exact behavior, not the generic "be careful with QR codes" guidance. The mental model the user needs is "personal phone + personal network = HR QR is out of bounds."

How DMARCFlow helps specifically

DMARC is a domain-authentication control, not a mobile-network control. DMARCFlow cannot see the mobile scan and cannot stop the credential capture on the personal phone. What DMARCFlow does is reduce the volume of HR-themed phish that arrives using your own domain, and surface the senders who try.

When DMARC is enforced at p=reject and DKIM and SPF are aligned on the corporate HR sender domain, an attacker cannot send a phish that actually appears to come from your HR address. The volume of HR mail with QR codes that lands in user inboxes drops. The remaining phish has to come from lookalike domains or brand-new sender IPs, which makes them easier for both gateways and users to spot.

DMARCFlow aggregate reports surface the unauthorized senders attempting to use your domain. When a wave of HR-themed QR phish starts targeting your industry, you see the unauthorized DKIM signatures and SPF senders in your reports before the wave becomes visible in user-reported suspicious mail. DMARCFlow turns the raw aggregate XML into a dashboard view, so a small admin team does not have to parse RUA files by hand to see who has been trying to send mail from the corporate HR domain this week.

DMARC and DMARCFlow are one piece of the defense in depth path. They are not the only piece, and on this specific attack they are not the most central piece. Identity-layer controls and QR payload decoding at the gateway do more. DMARC plus those controls plus the DMARCFlow visibility layer on top is the realistic posture.

What to do if a wave already got in

If you suspect a wave has reached your user population:

  • Audit recent SSO events for logins from unknown devices and unfamiliar geolocations
  • Reset credentials for any user who reported scanning the QR or who clicked a "confirm your pay" link in the same time window
  • Pull the QR-decoded URL from any preserved email and add it to mail gateway blocklists
  • Search the message archive for the same QR image hash and quarantine every copy
  • Notify users that any HR mail arriving after the wave that contains a QR code should be confirmed out of band before scanning

The credential is captured before any of this runs. The goal of the response is not to retroactively prevent the capture. The goal is to revoke tokens and stop the attacker from using what they already have.

FAQ

Why is a QR code in HR or payroll phish more effective than a clickable link?
A clickable link opens on the user managed browser, where URL rewriting and sandboxing can evaluate the destination before the user submits credentials. A QR code scanned on a personal mobile phone opens on an unmanaged browser on a personal or carrier network. The credential submit happens outside every corporate network-layer control.

Does Safe Links catch QR code phish?
No, not by default. Safe Links operates on clickable links in the email body. The QR payload is an image or text-rendered grid. Unless the gateway decodes the QR payload and rewrites the resulting URL before display, Safe Links never evaluates the destination.

What is the fastest single control to reduce risk from this category?
For most enterprises, conditional access on the identity provider that requires a compliant device for SSO regardless of where the credential prompt originates. The user may still be phished. The credential is still captured. But a session token minted from an unmanaged device on a personal network is the part that gives the attacker real access, and that part is what conditional access stops.

Does enforcing DMARC at p=reject help?
DMARC enforcement reduces the volume of HR-themed phish that uses your own domain. It does not stop an attacker from sending the same lure from a lookalike domain. DMARC plus a monitored inbox posture plus the identity-layer controls above is the realistic setup. DMARC alone is not enough for this category. DMARCFlow aggregate reports give you the visibility layer that makes the monitored posture possible without manual RUA parsing.