This is the third article in a series on the phenomenon of “beg bounty” hunters. The first two articles consider what it is, why people do it, and how. This one details the experience of one particular target.
Sometimes, trying to be a good person brings on more pain than you might imagine. I was recently contacted by Oliver, a software developer who works in the security team for TYPO 3, an open-source web content management system that is popular in Europe.
Oliver, like most open-source developers, works part-time on the project. Together with five others, he makes up the security team for TYPO3. They typically receive about five security reports a week. Considering TYPO3 is a PHP application of some complexity, this is what we might expect.
Around July 2020 they noticed they were receiving higher volumes of submissions similar to the ones I have written about previously. At this point, the number of weekly tickets had risen to between 10 and 15. In February 2021 there was an explosive increase in submissions, but we will get to that in a moment.
As a precursor to the February ramp-up, one of Oliver’s colleagues fielded a bug report pointing out that you could coax a version string from an Apache Tomcat server hosting their Jira instance. This is by no means a vulnerability, but it is good practice not to disclose exact versions, as it may lead an attacker to know you are out of date and susceptible to a known exploit.
As a kind gesture, TYPO3 thought it would send the submitter some branded swag as a thank you for pointing out the weakness. The team hadn’t noticed that this person had accumulated more than 13,000 followers on Twitter who were looking for him to mentor them on how to make money from bug hunting.
Upon receipt of the gifts, he immediately tweeted to his followers: “Received beautiful swag from @typo3 Instant response ”. Later the same day he also tweeted: “How I developed my self in bounties? Just 2 months challenge 1st month: Daily reporting 20 bugs, no matter what severity. Whatever I’ll find. I’ll report 2nd month: Reporting 5 bugs daily with quality report”
Immediately, a few of the people who had “liked” the tweet submitted bug reports claiming to have found more server version strings on various web servers and internet-facing assets. Funnily enough, some people even submitted vulnerability reports pointing out that the source code for TYPO3 was downloadable from their website. Of course, the source code is downloadable, it’s an open-source project!
After the tweet thanking them the number of submissions to TYPO3’s security team accelerated from 5 a week to more than 10 to 15 per day.
Another tactic we suspect this flurry of reporters used, but cannot prove, is reporting the same issue multiple times, but using different false identities in an attempt to get multiple rewards.
The first example appears to be someone who launched aggressive penetration testing scripts against some old unmaintained infrastructure causing a denial-of-service attack. As a result, the Nginx web server on that host reported an error message containing the version string. This person submitted a report containing a screenshot from an Android phone, not a desktop computer, which is unusual for bug hunters.
This reporter’s email address appeared to be named after a popular Bangladeshi film (“দেয়র কথা”). The time zone and IP address confirmed it appeared to originate from Bangladesh.
Approximately 60 minutes later another almost identical report was fielded, also containing a screenshot from the same version of Android. This person’s name claimed to be Royel, had the time zone set to BDT and contained an identical odd phrase as the first, “Version is disclosing 😊”
The TYPO3 team responded by resolving some of the issues causing the version information to be displayed and requested more information from the reporter to discover how they had crashed the application causing the errors. They were interested in the claims of “critical issues” and wanted to know more. The response from the beggar? “Give me a bounty for my bug”
Oliver responded explaining how the team assesses the severity of threats, primarily on the facts presented about the risk to the platform, and once again asked for more details. This seemed to anger the “beggar” who then turned to threats. This is no longer a nuisance, but a crime in most jurisdictions.
“Dear Sir, If you don’t pay me for the bug I am giving you, I will leak your company information on Facebook. Instagram, Telegram LinkedIn tweets on Youtube.
I will post so that no one else reports this program to you. Understand?
I will be very happy if you give me a bounty, and I will leak your information without seeing the bounty”
That’s textbook extortion. After it became clear that this wasn’t going to work, they returned to begging.
Sadly, the only conclusion I can draw from Oliver’s experience is that no good deed goes unpunished. What started out as a kind gesture towards a bug hunter who hadn’t really followed any guidelines and reported a throwaway concern, snowballed into a 5x to 10x increase in bug reports of little to no value.
There are groups of people actively encouraging this kind of behavior and it appears to have gotten out of hand. I recommend only paying or rewarding security reports submitted through officially sanctioned programs.
Services like Bugcrowd and HackerOne can also help in formulating guidelines and offer services you can pay for to help sort through your reports to increase your signal to noise ratio. This can be a great choice if you would like help establishing a bug bounty and want to reward those who truly are motivated to improve the safety and security of your product or service.
Chester Wisniewski is the Principal Research Scientist at Sophos.