Impact
mchange-commons-java implements legacy JNDI handling, allowing external factory class locations to be resolved and executed by an application. If an attacker can supply a maliciously crafted Reference or serialized object, the library will download and run arbitrary code in the application's process. The flaw is rooted in unsafe deserialization and uncontrolled network-based codebase loading, represented by CWE-502 and CWE-74. This enables full compromise of the hosting system, granting the attacker any privileges the application runs with.
Affected Systems
The vulnerability affects the mchange-commons-java library provided by swaldman. All releases prior to 0.4.0 are confirmed to execute remote code by default. Starting with 0.4.0 the library includes configuration guards that default to restrictive settings, but the functionality remains present and can be re-enabled by application configuration. Any system that includes mchange-commons-java on its classpath and processes untrusted serialized data or JNDI references is at risk.
Risk and Exploitability
The CVSS score of 8.9 classifies this issue as High severity. The EPSS score of less than 1% indicates that, while still high impact, exploitation in the wild is currently rare or not widely observed. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog, reducing the urgency of the risk but not eliminating it. The attack vector is inferred as exploitation of the library’s JNDI reference resolution by supplying crafted references or serialized payloads into the application. Precautions around classpath inclusion and configuration defaults mitigate the risk, but the primary mitigation is to remove or upgrade the affected library.
OpenCVE Enrichment
Github GHSA