CVE-2015-3253: Critical severity Apache Groovy vulnerability
It was reported that when an application has Groovy on the classpath and that it uses standard Java serialization mechanim to communicate between servers, or to store local data, it is possible for an attacker to bake a special serialized object that will execute code directly when deserialized. All applications which rely on serialization and do not isolate the code which deserializes objects are subject to this vulnerability.
Mitigation:
Apply the following patch on the MethodClosure class (src/main/org/codehaus/groovy/runtime/MethodClosure.java):
public class MethodClosure extends Closure { + private Object readResolve() { + throw new UnsupportedOperationException(); + }
Alternatively, you should make sure to use a custom security policy file (using the standard Java security manager) or make sure that you do not rely on serialization to communicate remotely.
External References:
http://seclists.org/oss-sec/2015/q3/121
Other sources
The MethodClosure class in runtime/MethodClosure.java in Apache Groovy 1.7.0 through 2.4.3 allows remote attackers to execute arbitrary code or cause a denial of service via a crafted serialized object.
— MITRE
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2015-3253?
CVE-2015-3253 has a severity rating of high due to the potential for remote code execution and denial of service.
How do I fix CVE-2015-3253?
To fix CVE-2015-3253, upgrade Apache Groovy to version 2.4.4 or later.
What versions of Apache Groovy are affected by CVE-2015-3253?
CVE-2015-3253 affects Apache Groovy versions 1.7.0 through 2.4.3.
Can CVE-2015-3253 be exploited without authentication?
Yes, CVE-2015-3253 can be exploited by unauthenticated remote attackers through crafted serialized objects.
What is the impact of exploiting CVE-2015-3253?
Exploiting CVE-2015-3253 can allow attackers to execute arbitrary code or cause a denial of service on affected systems.