Contrary to popular belief, the most dangerous component inside a digital bank is not the ledger, not the settlement engine, not the custody layer. It is a DNS TXT record roughly 200 bytes long that most of the company's engineers have never opened.
When reports surfaced that Revolut โ a UK-licensed bank with more than 20 million retail customers and a valuation that once crossed $33 billion โ had suffered a data breach triggered by a phishing campaign that got past email security checks, the market reaction was predictable. Crypto media framed it as another fintech trust failure. Retail users asked whether their money was safe. Almost nobody asked the only question that survives an audit: what was the DMARC policy, and why did it not reject?
That single line โ the phishing emails passed authentication checks โ is the entire story. Everything else is public relations and the slow machinery of regulatory disclosure.
I have spent the last eight years dissecting systems that people trusted because they were marketed well. In 2017 I found an integer overflow in a token sale's claimRewards function that fifteen senior developers had walked past, because groupthink is cheaper than reading a loop bound. In 2021 I found blockhash used as a randomness source in a generative art mint, and watched a bot drain 40% of the liquidity after the team reclassified the bug as a feature. The pattern does not change. The breach is never where the narrative points. It is always in the layer everyone agreed to stop looking at.
For Revolut, that layer is the mail gateway.
Context: The Protocol Nobody Redesigned
Revolut operates as a digital-first bank with a UK banking licence, an e-money footprint across the EEA, crypto trading, stock trading, and a subscription stack โ Premium, Metal, Ultra โ that generates recurring revenue decoupled from interchange. The model is scale-dependent. More users means better unit economics, better data, and better risk models. The company has been preparing for an IPO for years, and every quarter of delay is a direct cost to its private investors.
Now overlay the threat model. A neobank has no branches, no tellers, no physical perimeter. Every attack surface is digital and every customer touchpoint is a session. The institution's entire defensive posture therefore rests on two pillars: identity and communication.
Identity is handled by an identity provider โ usually hardware-backed MFA for employees, push or TOTP for customers. Communication is handled by email. And email is the one protocol in the modern stack designed in 1982, standardized when sender authentication was not a concern, and retrofitted with security controls rather than redesigned.
The industry has spent a decade convincing itself this is acceptable because we added SPF, DKIM, and DMARC on top. We did not fix email. We built a fence around a field with no gate, and then we stopped thinking about it. Security budgets flowed toward the layers that produce dashboards โ endpoint detection, cloud posture management, SIEM โ because those layers generate telemetry that executives can look at. The mail gateway generates tickets, not dashboards. It is the least glamorous, highest-frequency attack surface in financial services, and it is chronically underfunded relative to its actual role in breach causation.
That is the environment in which a phishing campaign can get past email security checks at a bank with 20 million customers. It is not exotic. It is the default state of most organizations, including most organizations that publicly claim otherwise.
Core: A Systematic Teardown of What Actually Failed
I will over-explain the mechanism, because the gap between how email security is sold and how it functions is precisely where the loss occurs.
SPF โ Sender Policy Framework โ lets a domain publish which IP addresses may send mail on its behalf. DKIM โ DomainKeys Identified Mail โ attaches a cryptographic signature to the message body and headers. DMARC โ Domain-based Message Authentication, Reporting and Conformance โ tells the receiving server what to do when SPF or DKIM fails, and where to send aggregate reports.
DMARC has three policy values: p=none, p=quarantine, and p=reject.
p=none means do not block anything, just tell me what you observe. It is a monitoring mode. It protects nobody. It is also the live policy on a startling number of financial domains, because enforcing p=reject breaks legitimate mail flows โ marketing automation, ticketing systems, the regional vendor nobody wants to argue with โ and enforcing it requires an engineer to audit every sending source for months.
p=reject means: if the message fails authentication, reject it outright. It is the only value that materially reduces spoofing of your own domain.
Here is the detail most breach coverage misses. DMARC does not stop phishing against your customers unless the attacker is spoofing your domain. If an attacker registers revolut-secure[.]com, or compromises a supplier's legitimate domain, or sends from a compromised mailbox inside a partner organization, DMARC on revolut.com stays silent. The message authenticates perfectly. It is a real domain. It simply is not yours.
So the phrase "got past email security checks" is not necessarily a confession of incompetence. It is often an honest description of a system operating exactly as designed, against a threat class it was never designed to intercept.
The real failure mode sits one layer deeper: what happened after the click.
Modern phishing kits do not serve a login form and hope. They deploy adversary-in-the-middle proxies โ Evilginx2, Modlishka, Tycoon 2FA and its descendants. The victim lands on a reverse proxy positioned between them and the genuine login page. The victim authenticates. The proxy relays the credential and, critically, relays the session cookie back to the attacker. If the bank relies on push-based MFA, the attacker triggers the push in real time and the victim approves it, because they are literally mid-login. If the bank uses TOTP, the attacker captures the one-time code because they are proxying the request that generated it. Some kits go further and abuse device-code flows, which requires no proxying at all โ only a victim who reads a number aloud.

The result is a fully authenticated session in the attacker's browser, carrying a valid cookie, originating from a residential IP that looks nothing like a datacenter. MFA was satisfied. It simply protected the wrong party.
Based on my audit experience, this is the most under-modeled risk in financial technology. The industry treats MFA as a binary gate. It is not. It is a challenge-response protocol, and any challenge-response protocol can be proxied when the proxy controls both endpoints. The only structural answer is phishing-resistant authentication with origin binding โ FIDO2 security keys, passkeys scoped to the correct relying party ID โ plus token binding and short session lifetimes so that a stolen cookie expires before it is monetized.
Which brings us to the layer almost nobody discusses in breach coverage: privilege compartmentalization.
Phishing should get an attacker into one account. It should not reach a database. If a compromised support mailbox can surface KYC documents, then the phishing email was not the vulnerability. The phishing email was the delivery mechanism for a vulnerability that was already sitting in the permission model, waiting.
Trust is a vulnerability vector. Revolut's customers trusted the brand. Revolut's support staff trusted an inbound message. The platform trusted an authenticated session. Three trust relationships, one breach, and a fourth question nobody will ask: why did the mail gateway vendor's detection model, which is marketed with the word AI in every slide, fail to flag a campaign that was almost certainly reusing infrastructure already seen in the wild?
The answer is base rates. Phishing detection is a classification problem with a brutally low signal-to-noise ratio. A model tuned to catch everything generates false positives that block legitimate business mail, and the cost of that false positive is visible and immediate, while the cost of a false negative is invisible until it is catastrophic. Organizations systematically bias these models toward silence. The vendor optimizes for customer retention, not for detection. The result is a tool that reports high coverage and delivers high latency between first contact and first block.
That is also a supply chain problem. The email security vendor is a third party with privileged visibility into every inbound message and every employee's mailbox metadata. Its own compromise would be a force multiplier. Nobody audits the auditor. Aesthetics are often exploits in waiting โ a clean dashboard is not a control.

Now the regulatory clock, which is the part most coverage gets functionally wrong.
Under UK GDPR and EU GDPR, Article 32 requires "appropriate technical and organizational measures." That phrase carries enormous weight. In practice, for a licensed bank, a documented and enforced DMARC p=reject policy, BIMI deployment, and a monitored aggregate reporting pipeline now constitute a defensible baseline. Article 33 requires notification to the supervisory authority within 72 hours of becoming aware of a personal data breach, unless the breach is unlikely to result in a risk to the rights and freedoms of data subjects.
Seventy-two hours. Not business hours. Seventy-two calendar hours, starting from awareness. And awareness is not the moment the press calls. Awareness is the moment the security team knows.
This is where my position on regulation becomes unavoidable. The European model publishes the deadline, publishes the fine ceiling โ up to 4% of global annual turnover or ยฃ17.5 million, whichever is higher โ and creates an auditable paper trail. It is uncomfortable, expensive, and legible. The American approach, which manufactures clarity through enforcement actions after the fact, is a far more expensive way to teach the same lesson, because no institution can calibrate its disclosure posture against a rule that has not been written. Revolut's case will be adjudicated in a jurisdiction with actual rules. The next incident of this class, if it lands in a US context, will not be.
The disclosure math is where most breach analysis collapses. Four data classes matter, and their loss profiles differ by orders of magnitude.
Identity data โ name, address, date of birth โ carries low direct loss and high downstream fraud value. Contact and account identifiers fuel the next campaign; a leak of verified email addresses raises follow-on click rates substantially. Financial data โ balances, transaction history, card fragments โ carries direct monetary exposure and litigation risk. KYC artifacts โ passport scans, selfies, proof of address โ are irreversible. You can rotate a password. You cannot rotate a passport.
If Revolut's incident reaches that fourth class, GDPR exposure is secondary to fraud exposure, and the secondary wave will cost more than the primary event. Breach data is inventory. The harvested addresses will be used in a second, targeted campaign within weeks, this time referencing real account details. That specificity is the social proof that converts a suspicious user into a compliant one. The primary breach is a lagging indicator. The secondary breach is the actual event.
There is a final technical artifact worth naming. In 2025 I examined an AI-driven audit tool used by a large firm to automate smart contract review. It had been trained on historical compiler behavior. It was blind to a new class of compiler-level vulnerability because it had never observed one. The firm shipped it to clients anyway. The industry called my white paper Luddite fear until the exploits landed. The code speaks louder than the whitepaper. A licensed bank advertising an industry-leading security posture while its authentication records sit at p=none is the same artifact as an audit firm shipping a model it cannot explain. The marketing is not lying about intent. It is lying about coverage.
Contrarian: What the Bears Are Getting Wrong
Here is where the doom posting fails its own logic.
The core banking system was not compromised. The ledger is intact. The licence is intact. There is no treasury drain, no insolvency vector, no classic run risk. A phishing incident at a bank with a strong balance sheet is an operating expense with a reputational markup, not an existential event. Anyone pricing Revolut's equity on the assumption of a deposit flight is modeling the wrong catastrophe.
Second, the failure domain is correctable on a quarterly timescale, not a multi-year one. DMARC enforcement, phishing-resistant authentication with origin binding, mailbox-level segmentation, session token binding, and a follow-on campaign defense program are all engineering problems with published solutions and known timelines. This is configuration, policy, and process. I have watched teams close this entire class of gap in ninety days when the executive sponsor actually cared, and I have watched teams postpone it for three years when the sponsor cared about the demo.
Third, and more uncomfortable: the incident may be evidence that the perimeter held where it mattered. Nothing in the disclosure suggests core systems were breached. Complexity is the enemy of security, and the fact that the compromise entered through the least complex layer โ a human reading an email โ suggests the genuinely complex layers did their job. The weakest link was the one everybody already knew was weak. That is a remediation problem, not an architectural collapse.
What the bulls are wrong about is the timeline of trust. Brand trust is a slow asset and a fast liability. The number I will track is not the fine. It is the Premium cancellation rate, because subscription churn is the first hard number that converts sentiment into revenue damage, and it appears in the quarter, not the year. Regulatory fines are a lagging indicator. Churn is a leading one.
Takeaway
The verifiable questions are narrow and countable. Was the DMARC policy p=reject before the incident, or was it p=none with a roadmap nobody executed? When did the 72-hour clock start, and was Article 33 satisfied? Did the compromised access path hold read privileges it did not need? Does any of this reach KYC artifacts, which cannot be revoked? And will the promised remediation be attested by an independent third party, or self-reported in a blog post with a stock photograph of a padlock?
Until those answers exist, every statement about an enhanced security posture is an uncompiled claim. Every artifact is a trace of failure. Demand the record, not the press release โ and if the record is not published within one reporting cycle, treat the silence itself as the finding.