Last Friday my wife and I were out at a concert when, thanks to social media, I learned there is a major vulnerability in a common component of Java. I planned to write it up, but spent most of Monday dealing with a 6+ hour flight delay, and all day yesterday in a meeting. I’m glad I waited.
The short version is this is a full, pre-authentication remote code execution vulnerability in a component that isn’t built into Java, but is nearly always installed and used in applications. Including things like WebSphere and JBoss.
What’s fascinating is that this one has been floating around for a while but no one really paid attention. It was even reported to Oracle, who (according to Threatpost) didn’t pass the information on to the team that maintains that component!
While Apache Commons has told Breen and Kennedy that a patch is being developed, there had been debate within the bowels of the Java community as to who should patch the bug: Apache Commons? Affected vendors? Oracle? Breen and Kennedy said Oracle was notified in July but no one had disclosed the issue to the Apache Commons team until recently. Jenkins has already mitigated the issue on its platform.
“We talked to lots of Java researchers and none of us had heard of [the vulnerability]. It was presented at the conference and made available online, but no one picked it up,” Breen said. “One thing it could be is that people using the library may not think they’re affected. If I told you that Apache Commons has an unserialize vulnerability, it probably wouldn’t mean much. But if I tell you JBoss, Jenkins and WebSphere have pre-authentication, remote code execution vulnerabilities, that means a lot more to people. The way it was originally presented, it was an unserialize vulnerability in Commons.”
I harp on Oracle a lot for their ongoing failures in managing vulnerabilities and disclosures, going back to my Gartner days. In this case I don’t know how they were informed, which team it hit, or why it wasn’t passed on to the Apache Commons team. These things happen, but they do seem to happen more to Oracle than other major vendors responsible for foundational software components. This does seem like a major internal process failure, although I need to stress I’m basing that off one quote in an article, and happy to correct if I’m wrong.
I’m trying really hard not to be a biased a-hole, but, well, you know…
I don’t blame Oracle for all the problems in Java. Those started long before they purchased Sun. And this isn’t even code they maintain, which is one of the things that really complicates security for Java – or any programming framework. Java vulnerabilities are also a nightmare to patch because the software is used in so many different places, and packaged in so many different ways.
If you use any of the major affected products, go talk to your vendor. If you write your own applications with Java, it’s time to pull out the code scanner.