Equifax, the major credit reporting agency which collected extensive financial data on hundreds of millions of Americans before losing said data on 143 million of those people to hackers, has finally explained what went wrong.
You are so not going to like it.
In a post on a website designed to spread information on how the company is handling the hack, Equifax said it had tracked down the vulnerability:
Equifax has been intensely investigating the scope of the intrusion with the assistance of a leading, independent cybersecurity firm to determine what information was accessed and who has been impacted. We know that criminals exploited a U.S. website application vulnerability. The vulnerability was Apache Struts CVE-2017-5638. We continue to work with law enforcement as part of our criminal investigation, and have shared indicators of compromise with law enforcement.
As Ars Technica noted, Apache Struts is an open-source “framework for developing Java-based apps that run both front-end and back-end Web servers” which is extremely popular with financial institutions.
Here’s the National Vulnerability Database description of the bug:
The Jakarta Multipart parser in Apache Struts 2 2.3.x before 2.3.32 and 2.5.x before 18.104.22.168 mishandles file upload, which allows remote attackers to execute arbitrary commands via a #cmd= string in a crafted Content-Type HTTP header, as exploited in the wild in March 2017.
The bug in question was fixed with a patch on March 6. Soon afterwards, hackers began exploiting it en masse and didn’t let up.
Equifax claims to have learned of the breach, which began in May, in late July .
That is months after the vulnerability was known and easily fixed with an update, though Equifax might have had to rewrite or update other components of their software portfolio after applying patches.
“Considering Equifax is one of the largest credit reporting agencies whose sole business relies on both credibility of data and securely handling the sensitive data of millions of consumers, it is fair to say that they should have patched it as soon as possible, not to exceed a week,” Pravin Kothari, chief of security firm CipherCloud, told USA Today. “A typical bank would have patched this critical vulnerability within a few days.”
Apache Struts had previously responded to reports that another vulnerability patched in September, CVE-2017-9805, was involved in the breach by hedging.
“Regarding the assertion that especially CVE-2017-9805 is a nine year old security flaw, one has to understand that there is a huge difference between detecting a flaw after nine years and knowing about a flaw for several years,” they wrote. “If the latter was the case, the team would have had a hard time to provide a good answer why they did not fix this earlier.”
But now that the breach is known to be CVE-2017-5638, the software company isn’t pulling punches.
In a statement, Apache Struts wrote, “This vulnerability was patched on 7 March 2017, the same day it was announced ... In conclusion, the Equifax data compromise was due to their failure to install the security updates provided in a timely manner.”
In an unrelated but nearly as embarrassing incident, security journalist Brian Krebs wrote Equifax’s Argentina branch had left a portal for employees to resolve credit reporting disputes set to the default login and password combination “admin/admin.” In addition to providing personal info on more than 100 Equifax employees, the vulnerability would have allowed anyone to obtain DNIs (the equivalent of a Social Security number) on over 14,000 Argentinians.
Ahem. Explain to me why we need powerful, unaccountable financial institutions that are allowed to stockpile huge amounts of exploitable information on virtually every American, again?
Update 1:07pm ET: This post has been updated with additional context concerning the breach.
Correction: This post originally misstated when Equifax says it first discovered the breach. The company says it learned of the breach in late July, not May. We regret the error.