US President Donald Trump's main campaign website was one of more than 100 domains found vulnerable to attack recently because its developers had apparently forgotten to disable the debug mode in a tool that was used to develop the site.
The issue with Trump's site was addressed Wednesday after researchers from Comparitech informed the campaign about it. Had the security weakness been left open, attackers would have had – among other things— an opportunity to hijack the site's email server and send out messages on behalf of email.donaldtrump.com, Comparitech said.
According to the vendor, it is not clear when the debug mode was enabled on the Trump website. But the potential consequences of even a short exposure would have been severe. "Trump's campaign website is used to solicit donations, after all," the vendor noted. "Attackers could have intercepted correspondence with Trump supporters or phish campaign contributors, among other crimes."
The problem on Trump's site and on hundreds of others has to do with their use of a popular PHP framework called Laravel.
Laravel includes a suite of tools that can be used to build, test, and deploy Web applications, says Paul Bischoff, lead researcher at Comparitech. Many people use it to speed up the website development process. "Laravel is one of, if not the, most popular PHP frameworks," Bischoff says.
Laravel, like other frameworks, incorporates a debug mode that developers can use to identity misconfigurations and other errors on their sites before they go live. Developers can access the debug interface via a standard Web browser.
Problems can arise when developers inadvertently leave the debug mode enabled after the site has gone live. This can expose critical site details, including passwords, encryption keys, API credentials, and database locations.
Adversaries can use the data to develop further attacks on the site or to steal data from it, Comparitech said. By leaving the Laravel debug mode enabled on the Trump site, for instance, developers exposed in plain text a mail server configuration that was visible from any browser though the debug interface.
Anyone could have accessed it from a Web browser by going to a special subdomain. "It's a subdomain that the average user might not come across," Bischoff says. "But it was visible on search engines like Shodan that can scan for such vulnerabilities. It was easy for hackers to find."
The issue is not confined to Laravel, and neither is it the software vendor's fault. Developers often leave websites vulnerable by inadvertently failing to disable the tools they use for identifying problems when building it. The key takeaway for organizations is to "disable debug mode before going live," Bischoff says.
Comparitech, working with two independent security researchers, conducted an Internetwide search and found a total of 768 websites with active Laravel sessions. Of them, between 10% and 20% had exposed their debug APIs, making them vulnerable to attack. A similar effort by one of the security researchers last year unearthed 566 websites with the Laravel debug mode enabled.
Bischoff says Comparitech, which scans the Web for misconfigured websites and vulnerable databases, is still in the process of notifying all impacted websites discovered from its latest scan of the issue. Presently, it remains unclear how many might have addressed the problem, he says.
With the exception of the Trump campaign site, most of the vulnerable websites that Comparitech discovered in its latest scan were small businesses and charities.