Remember last year's Equifax hack? It involved an exploit of a vulnerability in Apache Struts. Yesterday, news came of a new vulnerability in the open source Web framework, one that some people are saying could be worse than the one that put nearly everyone's credit card information into the hands of criminals.
The new vulnerability, designated CVE-2018-11776, was discovered by Man Yue Mo, a researcher on the Semmle security research team. This vulnerability is in the core functionality of Struts, allowing remote code execution (RCE) when the framework is configured in certain ways.
"The vulnerability doesn't exist because of configurations, but when the system is configured in a certain way, you can take advantage of vulnerabilities that exist in Struts," says Glen Pendley, deputy CTO at Tenable.
In the blog post announcing its discovery of the vulnerability, Semmle estimated that at least 65% of Fortune 500 companies use Struts in at least some of their Web applications. Because of its popularity, any core vulnerability is likely to have wide implications for security across the Internet.
"The part of the framework that it touches is potentially far more impactful than earlier vulnerabilities. The endpoints are far more widely used," Pendley says.
Semmle worked with the Apache Foundation to responsibly disclose the vulnerability, and a set of software updates was issued simultaneously with its disclosure. The Apache Foundation and multiple security professionals recommended immediate updating for any organization using an affected version of Struts.
100% reliable RCE that where vulnerable targets are probably enumerable via Shodan... PATCH THIS. https://t.co/xj6yJjyjtk— Dino A. Dai Zovi (@dinodaizovi) August 22, 2018
"It's important that organizations using Struts components upgrade quickly," says Chris Eng, vice president of research at CA Veracode. Pendley agrees. "Patch your system," he says. "Get it to a version that's not vulnerable. I wouldn't waste time looking for workarounds."
While the vulnerabilities are real and dangerous, it's important to note that they require quite specific (though not uncommon) configurations to allow an attacker to exploit the vulnerability. According to the Apache Foundation, the configurations required are:
- The alwaysSelectFullNamespace flag is set to true in the Struts configuration. This is the default setting if an application uses the popular Struts Convention plug-in.
- An application's Struts configuration file contains an <action ...> tag that does not specify the optional namespace attribute or specifies a wildcard namespace (e.g. “/*”).
Some security expderts were quick to point out that these requirements limit the vulnerability's danger:
Re the new Apache Struts vuln CVE-2018-11776 - I’m still looking at it, but early opinion: looks like it will be limited exploitation as it relies on a non-default misconfiguration to be exploitable.— Kevin Beaumont (@GossiTheDog) August 22, 2018
The problem is knowing, with confidence, whether an organization has an application configured in a vulnerable manner. "Where I think people are going to get in trouble is if the amount of time they take to check the vulnerability of the software," Pendley says.
To manage the constant threat of new vulnerabilities, Eng advises development teams to "maintain a comprehensive inventory of all the open source elements that are included in their applications."
"Only when taking advantage of alerts and notifications of newly discovered vulnerabilities, which are then checked against an accurate, up-to-date inventory, can organizations understand their exposure and how best to mitigate this risk," he says.
- 'Strutting' Past the Equifax Breach: Lessons Learned
- Rise of the 'Hivenet': Botnets That Think for Themselves
- 17 Things We Should Have Learned in 2017 But Probably Didn't
- 7 Takeaways From The Equifax Data Breach
Learn from the industry's most knowledgeable CISOs and IT security experts in a setting that is conducive to interaction and conversation. Early bird rate ends August 31. Click for more info.