Keepnet – AI-powered human risk management platform logo
Menu
HOME > blog > twilio send grid phishing examples 27 real emails that passed authentication

Twilio SendGrid Phishing Examples: 27 Real Emails That Passed Authentication

Authentication passed. The sender was still fake. A field report on 27 real Twilio SendGrid phishing emails that reached my inbox, what each one wanted, and how to defend against the campaign.

Ozan Ucar, Founder and CEO, Keepnet

Collection of 27 real Twilio SendGrid phishing emails that passed SPF, DKIM, and DMARC authentication, analyzed with phishing techniques, examples, and security recommendations.

We use Twilio SendGrid to send email. It is one of our sending integrations, and because we are a public company in the security space, that is not a secret. Attackers can work it out. So a few of them decided that the most reliable way into our inbox was to pretend to be SendGrid itself.

Over the past year I have collected the ones that made it past Google Workspace and landed in front of me. Twenty-seven of them. Not samples from a vendor report. Real emails, addressed to me, delivered to a hardened enterprise Gmail tenant.

Some of them were laughably bad. A few were good enough that I slowed down. One or two would probably have caught me on a busy day, halfway between meetings with my phone in one hand, and I do this for a living. That range is exactly why I kept them.

Here is the part that should bother every security team, though. Almost all of them passed SPF, DKIM and DMARC. The checks came back clean. The sender was still a lie.

What follows is the whole set, more or less in the order I made sense of it: what each one claimed, what it was really after, and what gave it away. After that, the mechanic that lets these through, and what I think you should actually do about it.

 The 27 SendGrid phishing emails by the numbers: authentication pass rates and the seven lure families.
Picture 1: The 27 SendGrid phishing emails by the numbers: authentication pass rates and the seven lure families.

  • 27 SendGrid phishing emails reached one inbox between August 2025 and June 2026.
  • 27 of 27 passed SPF. This is a phishing campaign that passed authentication, by design.
  • 26 of 27 passed DKIM. The single exception threw a DKIM key error, not a clean fail, and it still passed DMARC.
  • 0 failed DMARC. 22 of 27 passed DMARC outright, the rest carried no DMARC verdict, and not one was rejected on authentication.
  • 7 lure families, from API failures to a fabricated corporate event and a single off-platform credential-harvesting page.
  • API failures were the most common lure by a wide margin, and March 2026 was the peak month with 9 emails.

The short version: this is a SendGrid impersonation campaign that beats the checks most teams rely on. The defense is not a better filter. It is a person who verifies.

The Pattern In The Numbers

Lure family CountWhat it impersonates
API failure / service interruption 13 A broken or paused sending endpoint
Sender and API-key control 3Key rotation or sender re-verification
Account-security alarm 3New subuser, new admin, abuse complaint
Deliverability and reputation3Reputation, report rate, health review
Emotional / political footer 3A new footer or locale on your account
Fabricated corporate event 1A made-up merger and API migration
Off-platform lookalike landing 1A credential page on a lookalike domain

The lures cluster into seven families. Counts cover all 27 emails.

The timeline matters as much as the volume. These did not arrive once. They arrived on a schedule, and the rate climbed sharply into 2026.

MonthEmails
August 20253
December 20252
January 2026 6
February 2026 3
March 20269
April 20262
May 20261
June 2026 1

Why these even reach the inbox

Most people assume a phishing email either gets blocked by the mail filter or shows up with a big "this failed authentication" warning. These did neither.

The reason is simple and a little uncomfortable. The attackers are not spoofing sendgrid.com from some sketchy server. They are sending the SendGrid-branded message through SendGrid, from a real SendGrid account on an unrelated domain. SPF, DKIM and DMARC then pass, because they are passing for the sending domain the attacker controls, not for the brand in the From display name.

Netcraft named this loop "Phishception": SendGrid abused to impersonate SendGrid. CSO Online and Fortra have both tracked the same pattern, where compromised SendGrid accounts are used to send more SendGrid phishing, and every stolen login becomes the next sending account. The platform's selling point, high deliverability, is exactly what makes a hijacked account valuable.

Here is what that looks like in the headers of one real message from the set.

Header teardown: the display name reads SendGrid, but every check passed for poshenergygrid.com, not sendgrid.com.
Picture 2: Header teardown: the display name reads SendGrid, but every check passed for poshenergygrid.com, not sendgrid.com.

The display name says SendGrid. The actual From domain is poshenergygrid.com. The Return-Path and a SendGrid shared sending IP confirm it went out through SendGrid, so SPF, DKIM and DMARC all pass, for poshenergygrid.com, not for sendgrid.com. Every check is green and the message is still a fake. That is the gap attackers live in.

What surprised me was not that these reached the inbox. It was that nearly all of them passed authentication on the way in. The mail system did its job exactly as designed. The sender just was not who the display name claimed. SPF and DKIM confirm a message was sent the way the sending domain allows; they say nothing about whether the brand in the From line is genuine. This is social engineering, not a software bug, and you cannot patch your way out of it.

Every one of these passed authentication, and that is the point. SPF and DKIM tell you a message was sent correctly, not that it is honest. The only control that held up in our inbox was a person who stopped and verified before acting. Identity is what you verify, not what you see. 

Ozan Ucar
Founder and CEO, Keepnet

The 27 Emails

I did not start with a taxonomy. I just read them, one after another, and after a while the same shapes kept coming back. The biggest group by far was API panic: something is broken, paused, or about to stop working. Then a run of fake security alerts. A smaller set fussing about reputation and deliverability. And a handful of odd ones that did not fit anywhere, which turned out to be the most interesting of the lot. Here they are in those rough buckets.

A note on the senders and screenshots. The sending domains named below are themselves victims: real businesses whose SendGrid accounts were abused, or throwaway accounts set up to send through the platform. They are not the attackers, and naming them is meant to show the display-name-versus-real-domain gap, not to assign blame. To protect third parties, links and credential-harvesting destinations have been redacted from the screenshots, except where a lookalike domain is itself the lesson.

The "Your API is Broken" Pile

This was more than half of everything I received. The pretext is always a technical failure that a developer or an ops owner would feel obligated to fix right now, before someone notices the mail stopped going out. Most of them share a tell once you have seen a few: a thin body, one big button, and a link dressed up to look on-platform.

API Endpoint Disabled

'API Endpoint Disabled' lure from inspiresoftware.com, sent on New Year's Eve. All three checks passed.
Picture 3: 'API Endpoint Disabled' lure from inspiresoftware.com, sent on New Year's Eve. All three checks passed.

From inspiresoftware.com, all three checks green, sent on New Year's Eve, which is a nice touch when half the team is off. Claims /api/v3/send was disabled "due to a configuration issue" and points you at your account preferences to fix it. Real SendGrid notices do not come from inspiresoftware.com.

API Endpoint Failures

Repeated API Endpoint Failures' from myjohnstonesupply.com. The 503/429 codes are stage props
Picture 4: Repeated API Endpoint Failures' from myjohnstonesupply.com. The 503/429 codes are stage props

From myjohnstonesupply.com. It drops "503 / 429" status codes to look credible and asks you to "acknowledge the usage notice." There is no usage notice. The codes are stage props.

API Endpoint Issue

'API Endpoint Issue' from stoeltingco.com. Generic 'Hi there', no account ID, because the sender has none.
Picture 5: 'API Endpoint Issue' from stoeltingco.com. Generic 'Hi there', no account ID, because the sender has none.

From stoeltingco.com. "Several of your recent API calls have been unsuccessful." No account ID, no specifics, a generic "Hi there." It cannot be specific, because whoever sent it does not actually know anything about my account.

API Failures Detected

API Failures Detected' from worldticket.net. 'Preferences mismatch' is not a real SendGrid state.
Picture 6: API Failures Detected' from worldticket.net. 'Preferences mismatch' is not a real SendGrid state.

From worldticket.net. I half-laughed at this one. It invents a "preferences mismatch on your account," which is not a thing SendGrid says, but it sounds technical enough that plenty of people would accept it without asking what it actually means. That is the whole trick in three words.

API Issue Detected

'API Issue Detected' from a malformed bare 'sendgrid' address. The broken From is an instant giveaway.
Picture 7: 'API Issue Detected' from a malformed bare 'sendgrid' address. The broken From is an instant giveaway.

The From domain is a bare sendgrid, no top-level domain at all. Friendly tone, "Hey there, we know how frustrating this can be." If the sender address is malformed like that, you can stop reading.

API Request Failures Detected

'API Request Failures Detected' from leasebusters.com. One big button over almost no content.
Picture 8: 'API Request Failures Detected' from leasebusters.com. One big button over almost no content.

From leasebusters.com. A big VIEW ERROR LOGS button sitting over almost nothing. That is the whole email.

API Request Status Update

'API Request Status Update' from voltus.co. The hook is lost mail, the one thing a sender fears.
Picture 9: 'API Request Status Update' from voltus.co. The hook is lost mail, the one thing a sender fears.

From voltus.co. "Requests to your API endpoint are currently failing, which means emails are not being sent." Lost mail is the one thing a sender genuinely panics about, so the lure goes straight for it.

Update on Your Webhook Connection

Update on Your Webhook Connection' from journeysconnect.com. A narrow, technical lure aimed at one developer.
Picture 10: Update on Your Webhook Connection' from journeysconnect.com. A narrow, technical lure aimed at one developer.

From journeysconnect.com. If I am honest, this was one of the more convincing ones. The webhook angle is narrow and technical, and it is aimed squarely at the one developer who owns the event integration and would absolutely click to check "several consecutive delivery failures." It does not try to scare everyone. It tries to reach one person.

Your API Sending is Paused

'Your API Sending is Paused' from tagshelf.com. 'Takes less than a minute' lowers your guard.
Picture 11: 'Your API Sending is Paused' from tagshelf.com. 'Takes less than a minute' lowers your guard.

From tagshelf.com. "A pending security step" is holding your sending, and "this typically takes less than a minute." That last line is the clever part. Telling you it is quick is how they get you to do it without thinking.

Your API calls aren't going through

Your API calls aren't going through' from onuma.com. It steers you toward typing your secrets.
Picture 12: Your API calls aren't going through' from onuma.com. It steers you toward typing your secrets.

From onuma.com. It blames an "authentication setup or domain verification" mismatch and tells you to check your API keys. Read that again: it is steering you toward a page where you will type your secrets.

Your Sending is Paused

'Your Sending is Paused' from poshenergygrid.com, the same message dissected in the header diagram.
Picture 13: 'Your Sending is Paused' from poshenergygrid.com, the same message dissected in the header diagram.

From poshenergygrid.com, which is the same message I pulled apart in the header diagram above. A fake "account policy update" that supposedly needs a new setting configured before you can send again.

Your request couldn't be completed

 'Your request couldn't be completed' from theappsolutes.com. A fake DNS error to make you defer to the 'expert'.
Picture 14: 'Your request couldn't be completed' from theappsolutes.com. A fake DNS error to make you defer to the 'expert'.

From theappsolutes.com. "Error 421, Missing CNAME record," followed by DNS instructions. The fake error code is doing a specific job: making a non-technical reader feel out of their depth and defer to the helpful "expert" who sent it.

The ones after the keys, not just a password

A smaller, nastier group. These do not want a password so much as control of the sending engine itself, which is the real prize once you remember that a working SendGrid account is what lets the next phish go out.

API Key Update

'API Key Update' from mitsubishielectric.ca. The goal is a working API key handed over on a fake page.
Picture 15: 'API Key Update' from mitsubishielectric.ca. The goal is a working API key handed over on a fake page.

From mitsubishielectric.ca. "All API keys generated before March 2026 need to be regenerated" or they stop authenticating. There is no such deadline. What they want is for you to revoke a real key and mint a new one on a page they control, which hands them a live, working API key. Of all the technical lures, this is the one I would least want a junior engineer to receive at 5pm on a Friday.

Verify your senders

'Verify your senders' from own-kind.com. Re-verification on a fake page hands over sender control.
Picture 16: 'Verify your senders' from own-kind.com. Re-verification on a fake page hands over sender control.

From own-kind.com. New "sender verification standards," please re-verify your sender identities. Do it on their page and they get to decide which addresses your account can send as.

Your Verified Senders Have Changed

Your Verified Senders Have Changed' from starbucksindia.net. The domain alone should end it.
Picture 17: Your Verified Senders Have Changed' from starbucksindia.net. The domain alone should end it.

From starbucksindia.net. The same hijack from the other direction: your senders are "no longer verified," reverify to keep sending. Honestly, the domain name alone should end it here.

The fake security alerts

There is a cruel irony in this group. They use the exact instinct we spend our days training people to have: see something off on your account, act on it quickly.

New subuser added to your account

'New subuser added' from garageplug.in. Subusers are the real abuse vector, so the fake alarm feels real.
Picture 18: 'New subuser added' from garageplug.in. Subusers are the real abuse vector, so the fake alarm feels real.

From garageplug.in. "A subuser with sending permissions was recently created. If you don't recognize this, review your account access." This is the one that most deserves a second look, because subusers really are how these accounts get abused. So the fake warning describes a real risk, which is what makes a careful person click.

New Admin Added

New Admin Added' from carnegietelephone.com. Admin-access framing, and it copies the real Denver footer.
Picture 19: New Admin Added' from carnegietelephone.com. Admin-access framing, and it copies the real Denver footer.

From carnegietelephone.com, all three checks green, April 2026. "A new teammate with admin-level permissions was added to your account. If this wasn't you, review your teammates and remove any unrecognized users." It even copies the real footer address in Denver. Same machinery as the subuser email, a notch scarier, because admin access sounds like the keys to everything.

Abuse complaint filed against your account

'Abuse complaint filed' from ismrm.org. Compliance dread dressed in real program names.
Picture 20: 'Abuse complaint filed' from ismrm.org. Compliance dread dressed in real program names.

From ismrm.org. This one reaches for compliance dread instead of urgency: "a complaint through Gmail Postmaster Tools," "potential CAN-SPAM violations," log in to "review the cited messages." Real-sounding program names doing the heavy lifting.

The slow, plausible ones about reputation

These were the ones I respected, a little. No flashing alarm, no countdown. They imitate the boring deliverability nags a real sender actually gets, which is why they blend in.

Your reputation score has started to drop

Your reputation score has started to drop' from esmsolutions.com. Pure loss aversion.
Picture 21: Your reputation score has started to drop' from esmsolutions.com. Pure loss aversion.

From esmsolutions.com. Pure loss aversion: your reputation is "starting to fall below the threshold," log in to stop the slide. Nobody who sends email at scale ignores a sentence like that.

Your report rate needs a quick review

Your report rate needs a quick review' from megger.com. DKIM threw a permerror, yet DMARC still passed.
Picture 22: Your report rate needs a quick review' from megger.com. DKIM threw a permerror, yet DMARC still passed.

From megger.com. "Your report rate has risen above 0.1%." This is also the one technically interesting outlier in the set. Its DKIM check did not pass cleanly; it returned a permerror, meaning the receiving server could not find a key for the signature. And yet it still landed, because SPF aligned and DMARC passed anyway. Sit with that for a second: the one message with a broken signature still made it to the inbox on a DMARC pass. If your filtering logic treats "DMARC pass" as a safe-to-deliver verdict, this is the email that walks right through it.

Your Weekly Health Review

Your Weekly Health Review' from mitsuibussancommodities.com. Fake metrics built to look routine.
Picture 23: Your Weekly Health Review' from mitsuibussancommodities.com. Fake metrics built to look routine.

From mitsuibussancommodities.com. No panic at all, which is what makes it work. It is a fake weekly report, complete with invented metrics (13.97% processing success, 8.2M requests, 89ms response) that look exactly like the ones you skim every Monday and never click through. Until the week you do.

The One That Made Me Reread It

Action required by January 13

'Action required by January 13' from aha.org. The 'merger with Sinch' is invented; no such deal exists.
Picture 24: 'Action required by January 13' from aha.org. The 'merger with Sinch' is invented; no such deal exists.

From aha.org. This is the one that actually made me stop and read twice. "Following our merger with Sinch, we're upgrading our API infrastructure," so move to a "new endpoint structure" by the deadline. For a second the story sounded plausible, which is exactly why it is dangerous. Then I checked. There is no Twilio or SendGrid merger with Sinch; Twilio bought SendGrid back in 2019 and still owns it. The attacker simply invented a corporate event to manufacture a deadline. When an email leans on big news to justify an urgent change, go verify the news somewhere else before you touch the link.

The odd ones that traded fear for feelings

A few did not bother with panic at all. They reach for an emotional or political reaction instead, the same trick behind the "Support ICE" and Pride-footer SendGrid scams that Netcraft and others have written up. Invent a sensitive change to your account, and you will log in just to opt out of it.

'New LGBTQ+ Footer Added' from useregie.com. Agree or disagree, the link goes to the same place.
Picture 25: 'New LGBTQ+ Footer Added' from useregie.com. Agree or disagree, the link goes to the same place.

From useregie.com. A little story about meeting "LGBTQ+ founders," then: we are adding an optional Pride footer to your outgoing email. Agree with it, disagree with it, it does not matter. The link goes to the same place either way.

'Women's History Month Footer Added' from houzeo.com. The emotion gets the click before judgment.
Picture 26: 'Women's History Month Footer Added' from houzeo.com. The emotion gets the click before judgment.

From houzeo.com. Same play, different month. "Our CEO was moved to act," a Women's History Month footer is going on your sends. The emotion is the point; it gets a reaction before judgment catches up.

Language Preference Updated

Language Preference Updated' from nutritionsociety.org. You did not do it, so you rush to undo it.
Picture 27: Language Preference Updated' from nutritionsociety.org. You did not do it, so you rush to undo it.

From nutritionsociety.org. This is the cheapest trick in the set and probably one of the most effective: "Your language preference has been changed to Spanish." You did not do that, so you rush to undo it, and undoing it means logging in. Annoyance works as well as fear.

The dangerous one

Your report is ready

'Your report is ready' from zentrix.com.mx. Its link goes off-platform to the lookalike view-exportsendgrid.com.
Picture 28: 'Your report is ready' from zentrix.com.mx. Its link goes off-platform to the lookalike view-exportsendgrid.com.

From zentrix.com.mx. On the surface it is the dullest message here: your report finished, it is available for 72 hours. But here is what sets it apart. Almost every other lure hid behind SendGrid's own click-tracker, which is partly why they looked so clean. This one does not. Its "View Report" link goes to view-exportsendgrid.com, a lookalike domain that exists for one reason, to take your credentials. The lookalike is the entire attack. Anytime you land on something that is "sendgrid" with extra words stapled on, close the tab.

The one that started it

API Integration Health Alert

'API Integration Health Alert' from omniballot.us, August 2025. The calm opening shot of the campaign.
Picture 29: 'API Integration Health Alert' from omniballot.us, August 2025. The calm opening shot of the campaign.

From omniballot.us, all checks green, dated August 1, 2025, which makes it the earliest in my folder and, looking back, the opening shot. "Our monitoring systems have identified a high volume of failed API requests originating from your account," then a tidy troubleshooting guide about rate limits and the rest. It is calmer and more patient than the panic emails that came later, almost helpful. That is the part worth sitting with: the campaign did not start loud. It started as a polite, well-built alert in the middle of summer, and by the following spring it was arriving nine times a month.

How to tell a real SendGrid email from a fake one

After 27 of these, the patterns are consistent. None of them require deep technical skill to catch.

Check the actual sender domain, not the display name. Every fake in this set said "SendGrid" in the display name and came from inspiresoftware.com, garageplug.in, starbucksindia.net, and so on. Genuine SendGrid mail comes from sendgrid.com or twilio.com, never from a random unrelated company, and never from a malformed bare "sendgrid" with no domain.

Hover the link before you click. A login or settings link that resolves to a lookalike like view-exportsendgrid.com is the clearest possible signal. And remember that a SendGrid click-tracker link is not proof of safety here, because the attackers are sending through SendGrid.

Be suspicious of any email that creates a deadline, a service interruption, or a "verify now or lose access" choice. Account paused, sending paused, keys expiring, senders un-verified, a complaint filed, a merger deadline. Urgency is the common ingredient across all seven families.

Stop trusting "it passed authentication" as a verdict. This is the hard one. Most of these passed SPF, DKIM and DMARC. Authentication tells you how a message was sent. It does not tell you who really sent it. The only reliable move is to verify out of band: open a new tab, type the SendGrid console address yourself, and check your account directly. Never act inside the email.

If you just received one of these

Do not click and do not reply. Open the SendGrid console by typing the address into a new tab yourself, then check your billing, API keys, subusers and verified senders from inside the account. If anything looks wrong, rotate your API keys and review account access immediately. Forward the email to abuse@sendgrid.com so their team can act on the sending account, and report it to your own security team so they can warn colleagues who likely got the same lure.

How to secure your Twilio SendGrid account

The phishing is aimed at one prize: a working SendGrid login or API key. Hardening the account makes a stolen credential far less useful and makes account takeover far harder. Here is the checklist we run, and the one we recommend to customers.

  1. Turn on two-factor authentication for every user. Use an authenticator app or a security key, not SMS, and enforce it across the whole account so no teammate is the soft spot.
  2. Use SSO where your plan supports it. Tie console access to your identity provider so offboarding and password policy are handled in one place.
  3. Scope every API key to least privilege. A key that only needs to send mail should not have full access. Delete unused keys, and never paste a key into an email, a chat, or client-side code.
  4. Rotate keys and store them in a secrets manager. Treat any key that might have touched a phishing page as burned, and replace it.
  5. Lock API access with IP Access Management. Allowlist the IP addresses that are allowed to use your account and keys, so a stolen key is useless from an attacker's machine.
  6. Audit Teammates and Subusers regularly. Subusers are the abuse vector in these attacks, so restrict who can create them, and remove any you do not recognize.
  7. Finish sender authentication and enforce DMARC on your own domain. Set up domain authentication (DKIM/CNAME) for your sending domain and keep DMARC at enforcement, so attackers cannot easily spoof your brand to your own customers.
  8. Turn on activity alerts. Watch for new API keys, new senders, new subusers, and sending spikes, and route those alerts somewhere a human reads them.
  9. Verify account changes out of band, always. Never act on a "paused," "verify," or "key expiring" email. Act only from the console you opened yourself.
  10. Train the people who hold the keys. The developers and ops owners with console access are the real targets, so they are the ones who need the practice.

Train against the exact lure, on every channel

After sorting through all 27, the conclusion was not subtle. These are built to beat the filter, and they do. So the only thing left standing between the email and the damage is the person reading it, which means people have to meet this kind of message in a drill before they meet it on a bad day. That is a trained reflex, and reflexes come from practice, not from an annual slideshow.

This is the part where I have a clear bias, because it is what we build. We run a phishing simulator on exactly these lures, and the patterns above make ready-made phishing simulation templates. My rule of thumb is simple: the campaigns that beat your mail filter are the ones worth simulating, because they are what your people actually face. Test only the obviously fake stuff and you are grading the easier exam.

It also rarely stops at email. A stolen SendGrid login often becomes the opening move in a multi-channel attack: the OpenAI invoice scam Kaseya documented paired SendGrid abuse with a phone callback. So test the way attackers actually work, across smishing, vishing, QR-code quishing and callback phishing, not email alone. Pair the simulations with adaptive security awareness training so the people who keep clicking get more practice, not the same annual video as everyone else.

One practical control worth adding: give people a one-click way to report a suspicious email from their inbox, and make reporting feel useful. Report rate and time-to-report are the metrics I watch, not completion. A high report rate on a "your sending is paused" lure is the signal that the training is actually changing behavior.

Two more things worth naming. First, a stolen SendGrid login or API key is not the end of the attack, it is the start of one. It feeds account takeover and business email compromise, and it is brand impersonation at scale, since the next phish goes out from your account. Second, AI lets attackers template these at scale, which is why I received twenty-seven variations of the same five ideas. The volume is cheap now. The defense has to be a behavior, not a filter rule.

That is the part of our Extended Human Risk Management Platform I care about most: not catching every email, but making sure the person reading it stops and checks before they act. We are a SendGrid customer ourselves, so none of this is theory for me. I got all 27 of these in my own inbox, and the only thing that ever stopped one was a habit of not trusting the envelope.

What people assume, and what is actually true

If there is one table to take away from this SendGrid phishing campaign, it is this one. Every assumption on the left failed against the 27 emails we received.

What people assume What these 27 emails proved
SPF pass means it is safe27 of 27 passed SPF, and all were phishing
DKIM pass means it is safe26 of 27 passed DKIM, and all were phishing
DMARC pass means it is safe0 failed DMARC, and all were phishing
A SendGrid logo means it is SendGridEvery message faked the SendGrid brand from an unrelated domain
A sendgrid.net link is trustworthyAttackers send through SendGrid, so their links use SendGrid domains too
Security alert emails are trustworthyThe new subuser and abuse complaint alarms were the bait
Authentication proves identity It proves how a message was sent, never who really sent it

Sources referenced for the mechanic and external corroboration: Netcraft ("Phishception"), CSO Online (compromised SendGrid accounts), Fortra (Twilio SendGrid abuse campaign), Kaseya (OpenAI invoice / callback phishing), and Twilio/SendGrid official support guidance. All 27 examples are real emails received at ozan@keepnetlabs.com.

SHARE ON

twitter
linkedin
facebook

Frequently Asked Questions

Is the "Your SendGrid sending is paused" email real?

arrow down

Almost certainly not. In the set we received, every "sending paused" and "API paused" email was phishing, sent from an unrelated domain through SendGrid's platform. Check your account by typing the SendGrid console address into a new tab, never by clicking the email.

Why did a SendGrid phishing email pass SPF and DKIM?

arrow down

Because it was sent through SendGrid from a real account on the attacker's own domain. SPF and DKIM passed for that sending domain, not for sendgrid.com. Authentication confirms how an email was sent, not who it is really from.

How do I know if a SendGrid email is legitimate?

arrow down

Check the real sender domain (legitimate mail is from sendgrid.com or twilio.com), hover every link for lookalike domains like view-exportsendgrid.com, and be skeptical of any urgent "verify or lose access" request. When in doubt, log in directly rather than through the email.

What is the SendGrid "new subuser added" email?

arrow down

It is a common phishing lure that raises a fake security alarm, claiming an unrecognized subuser was added, so you rush to "review access" on a fake login page. Subusers are a real abuse vector, which is what makes the fake warning feel convincing.

How do I report a fake SendGrid email?

arrow down

Forward it to abuse@sendgrid.com, do not click anything, and if you are a customer, enable two-factor authentication and check your account for unauthorized API keys, subusers or sender identities.

What is "Phishception"?

arrow down

It is the name Netcraft gave to attackers abusing SendGrid to phish SendGrid users. Each compromised account is used to send more SendGrid phishing, and every stolen login becomes the next sending account, so the abuse feeds itself.

Can SPF, DKIM and DMARC stop this kind of phishing?

arrow down

No, not on their own. These checks confirm a message was sent in line with the sending domain's policy. When the attacker sends through a real account on their own domain, the checks pass honestly. They are necessary, but they do not tell you whether the brand in the From name is genuine.

How did the attackers get a SendGrid account that passes authentication?

arrow down

Either they signed up for one on a throwaway domain, or they compromised an existing customer's account. In both cases the mail goes out through SendGrid's real infrastructure, which is why it authenticates and lands in the inbox.

Are these phishing emails AI-generated?

arrow down

The volume and the close variations point that way. I received twenty-seven versions of roughly five ideas, which is exactly what cheap, templated generation looks like. The defense does not change: verify before you act.

What should a security team do about Twilio SendGrid phishing?

arrow down

Harden every SendGrid account (2FA, least-privilege and rotated API keys, IP allowlisting, subuser review, enforced DMARC on your own domain), then run realistic phishing simulations of these exact lures and track report rate, not completion. The people with console access are the ones to train first.

Is it safe to click the "View Report" or "Verify" button if the link is a sendgrid.net address?

arrow down

No. Because the attackers send through SendGrid, their tracking links use SendGrid domains too. A sendgrid.net link is not proof of safety. Open the console yourself instead of clicking.

Did Twilio SendGrid merge with Sinch?

arrow down

No. Twilio acquired SendGrid in 2019 and still owns it. A fake "merger with Sinch" was used as a pretext in one of these phishing emails to invent an urgent API-migration deadline.

Did SendGrid merge with Sinch?

arrow down

No. Twilio acquired SendGrid in 2019 and still owns it. A "merger with Sinch" was used as a fabricated pretext in one of these phishing emails to manufacture an API-migration deadline.