1 bug, $50,000+ in bounties, how Zendesk intentionally left a backdoor in hundreds of Fortune 500 companies - zendesk.md
hi, i'm daniel. i'm a 15-year-old with some programming experience and i do a little bug hunting in my free time. here's the insane story of how I found a single bug that affected over half of all Fortune 500 companies:
Despite fixing the issue, Zendesk ultimately chose not to award a bounty for my report. Their reasoning? I had broken HackerOne's disclosure guidelines by sharing the vulnerability with affected companies
Regardless of everything else they should be kicked out from HackerOne since it's clearly Zendesk not being truthful here.
I couldn’t help but find it amusing—they were now asking me to keep the report confidential, despite having initially dismissed it as out of scope.
"Sorry, but per your own guidelines this is out of scope. Because of this, this bug is not part of the agreement and guidelines on Hackerone. You can find my full disclosure, that I wrote after your dismissal here: <Link>" /s
Sounds like they just didn't want to pay this guy. That is so dumb as if they lose even a few customers they are going to be in negative. They should of paid him and then turned this into a PR positive.
The best part of this is how Zendesk's blog post claims that Zendesk discovered the issue, and then blamed the 15 year old for not following ethical principles.
What a corporation of muppets! First dismissing the report as "not our problem lol", then as the hunter contacts affected companies the bug "magically" becomes relevant: they reopen the report, and then boss him around to not disclose it with the affected parties.
At the end of the day tens of thousands for companies is a small price to pay for something that could cost millions. As bonus this person now has a foothold in big companies. Sounds like a great way to get a well paying job.
Daniel points this out at the end of his post but for those looking for more details on this bug submission, our team at Zendesk posted some info here.
The way that the Github comment is phrased, it implies that the link contains additional info that hackermondev didn't mention. It doesn't - instead it contains a subset of that info, missing critical bits:
That Zendesk initially dismissed hackermondev's report.
That the "third parties" in question were Zendesk's clients.
Both pieces of info were omitted to back up a lie present in the text, that the bug hunter would have "violated key ethical principles". He didn't - as he noticed that Zendesk gives no flying fucks about the security issue, and that remediation was unlikely, he warned the people affected by the issue, so they can protect themselves against it.
Zendesk is not just being irresponsible - it's also being manipulative, and doubling down instead of doing the right thing ("we incorrectly dismissed that report. It was our bad. Here's your 2k.") They have no grounds to talk about ethical principles.
They aren't trying to actually send from that email, they are trying to create an Apple ID that lets them log in using that email effectively as a username. And Slack will add people to the internal Slack if the email is a company email address.
To open that account, they need to prove to Apple they own the account. They sign up with Apple and say their email address is support@company.com, then Apple sends them a code to verify it's their email.
They can't actually receive the verification email, because it's not their email. That's where the exploit comes in. It's very important that this email address is the one that forwards emails to Zendesk. The verification email from Apple goes to Zendesk, then they use the exploit to see the history of the zendesk ticket, which includes the verification code.
Great write-up and great find! You'll find companies will often try to weasel out of actually honoring ethical programs more than not, but that doesn't mean give up! If nothing else, the learning will lead to long term education and basically forever employment in various fields.
Trying to do the devil's advocate: Zendesk isn't a mail server and all it's doing is to organize a million messages sent to a specific address in a neater way. A spam filter is also present because every email client needs it, but spoofed mails should be rejected by the mail server, not the clients.
What "should be done" is irrelevant - what matters is what "is done". And plenty servers don't enforce SPF, DKIM and DMARC. (In fact not even Google and Yahoo did it, before February of this year.)
And, when you know that your product has a flaw caused by a third party not doing the right thing, and you can reasonably solve it through your craft, not solving it is being irresponsible. Doubly true if it the flaw is related to security, as in this case.
Let us learn with Nanni: when Ea-nāṣir sold him shitty copper, instead of producing shitty armour, weapons and tools that might endanger Nanni's customers, Nanni complained with Ea-nāṣir. Nanni is responsible, Zendesk isn't. [Sorry, I couldn't resist.]
[EDIT: can you muppets stop downvoting the comment above? Dave is right, Moonrise is trying to start a discussion, there's nothing wrong with it.]
Sorry you've been downvoted for trying to start a discussion.
Is this not the swiss cheese thing? No control is perfect, so you layer them. If there is no reason why Zendesk should let this happen, then it shouldn't happen.
They absolutely can and should fix it, but in the end, IMHO, it's a mail server misconfiguration coupled with a slack issue, not a Zendesk security issue