CVE-2026-27727
Java vulnerability analysis and mitigation

Overview

CVE-2026-27727 is a Remote Code Execution (RCE) vulnerability in mchange-commons-java, a Java utility library, caused by an unsafe independent implementation of JNDI dereferencing that supports remote factoryClassLocation values. All versions prior to 0.4.0 are affected, including downstream consumers such as the c3p0 connection pool library and products like IBM Maximo Application Suite. The advisory was published on February 23, 2026 by the library maintainer and disclosed publicly on February 25, 2026. It carries a CVSS v3.1 base score of 9.8 (Critical) and a CVSS v4.0 base score of 8.9 (High) (GitHub Advisory, Red Hat Bugzilla).

Technical details

The root cause is that mchange-commons-java implements its own JNDI dereferencing logic (CWE-74: Injection; CWE-502: Deserialization of Untrusted Data) independently of the JDK, which means the JDK's hardening measure — the com.sun.jndi.ldap.object.trustURLCodebase system property defaulting to false — does not apply. If an attacker can cause an application to process a maliciously crafted javax.naming.Reference or serialized object, the library will follow the factoryClassLocation URL, download attacker-controlled code, and execute it within the running JVM process. Libraries such as c3p0 that delegate JNDI resolution to mchange-commons-java are therefore vulnerable even on hardened JDK versions. A technical write-up and proof-of-concept are available from Mogwai Labs (Mogwai Labs Blog, GitHub Advisory).

Impact

Successful exploitation allows an unauthenticated remote attacker to download and execute arbitrary code with the privileges of the application process hosting the vulnerable library, resulting in full compromise of confidentiality, integrity, and availability. Any application using mchange-commons-java < 0.4.0 (directly or via c3p0) that processes attacker-influenced JNDI references is at risk, including enterprise products such as IBM Maximo Application Suite, Red Hat JBoss EAP, Red Hat Satellite, and numerous Oracle products. The ability to execute arbitrary code enables lateral movement, data exfiltration, and persistent backdoor installation (GitHub Advisory, IBM Advisory, Oracle CPU April 2026).

Exploitability

A proof-of-concept exploit is publicly available via Mogwai Labs' blog post titled "c3p0, you little rascal" (Mogwai Labs Blog). As of the time of reporting, there is no confirmed evidence of active in-the-wild exploitation. The EPSS score is approximately 0.065% (low near-term exploitation probability). The vulnerability is not currently listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Detection plugins are available in Qualys (ID: 5008003) and Nessus (IDs: 301811, 309964, 309965, 313174, 315188, 315192) (GitHub Advisory).

Exploitation steps

  1. Reconnaissance: Identify applications using mchange-commons-java < 0.4.0 or c3p0 on their CLASSPATH, either through dependency scanning (e.g., using tools like mvn dependency:tree, Syft, or Grype) or by fingerprinting exposed services.
  2. Set up malicious JNDI server: Deploy an attacker-controlled LDAP or RMI server (e.g., using tools like marshalsec or a custom server) that serves a malicious javax.naming.Reference pointing to an attacker-hosted factoryClassLocation URL.
  3. Host malicious class: Place a compiled Java class containing the malicious payload (e.g., a reverse shell) at the attacker-controlled factoryClassLocation URL on an HTTP server.
  4. Trigger JNDI lookup: Cause the vulnerable application to process a crafted javax.naming.Reference or serialized object referencing the attacker's LDAP/RMI server — this may be achieved through any application input that is passed to c3p0 or mchange-commons-java's JNDI resolution code (e.g., a data source configuration field, a deserialized object in a network request).
  5. Code execution: The vulnerable library follows the factoryClassLocation URL, downloads the attacker's class, instantiates it, and executes the payload within the JVM process, granting the attacker remote code execution with the application's privileges (Mogwai Labs Blog, GitHub Advisory).

Indicators of compromise

  • Network: Unexpected outbound HTTP/HTTPS connections from the application server to external or unknown hosts, particularly fetching .class files; outbound LDAP (port 389/636) or RMI (port 1099) connections from the Java application process to external IPs.
  • Process: Unusual child processes spawned by the Java application (e.g., bash, sh, cmd.exe, curl, wget, python) that are not part of normal application behavior; unexpected network listeners opened by the Java process.
  • File System: Newly created .class files or JAR files in temporary directories (e.g., /tmp, %TEMP%) or application working directories; unexpected scripts or executables written by the application process.
  • Logs: Java application logs showing JNDI lookup activity referencing external URLs (e.g., ldap://, rmi://, http:// in JNDI context operations); deserialization-related stack traces or errors in application logs involving com.mchange packages.

Mitigation and workarounds

The vendor has released mchange-commons-java version 0.4.0, which gates JNDI functionality behind configuration parameters that default to restrictive (safe) values, mirroring the JDK's own hardening approach. There are no known workarounds for versions prior to 0.4.0 — affected versions must be upgraded. Downstream products have also released patches: Red Hat addressed this in RHSA-2026:3890 (Apache Camel), RHSA-2026:14873/14874 (Red Hat Satellite), RHSA-2026:18054/18055/18059 (JBoss EAP 8.1), and RHSA-2026:4285; Oracle addressed it in the April 2026 Critical Patch Update; IBM issued guidance for Maximo Application Suite. Organizations should audit all application CLASSPATHs for mchange-commons-java < 0.4.0 and c3p0 dependencies and upgrade immediately (GitHub Advisory, Red Hat Bugzilla, IBM Advisory).

Community reactions

The Mogwai Labs blog post "c3p0, you little rascal" by Hans-Martin Münch provided the primary technical analysis and proof-of-concept that prompted the advisory, and is cited directly in the GitHub Security Advisory (Mogwai Labs Blog). Red Hat, IBM, Oracle, Atlassian, and openSUSE all issued downstream advisories or errata, indicating broad industry recognition of the supply-chain impact. Community coverage appeared on Stackademic and security aggregators shortly after disclosure, and the vulnerability was tracked by INCIBE-CERT and GovCERT Hong Kong (GitHub Advisory, Oracle CPU April 2026).

Additional resources


SourceThis report was generated using AI

Related Java vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-76904CRITICAL9.8
  • Java logoJava
  • org.geotools.jdbc:gt-jdbc-postgis
NoYesAug 21, 2026
GHSA-mqjf-5f49-2fjhCRITICAL9.8
  • Java logoJava
  • org.geotools:gt-jdbc-postgis
NoYesAug 21, 2026
CVE-2026-61827HIGH8.7
  • Java logoJava
  • io.netty.incubator:netty-incubator-codec-bhttp
NoYesAug 20, 2026
CVE-2026-63202HIGH7.5
  • Java logoJava
  • io.netty.incubator:netty-incubator-codec-bhttp
NoYesAug 20, 2026
CVE-2026-63124HIGH7.5
  • Java logoJava
  • io.netty.incubator:netty-incubator-codec-bhttp
NoYesAug 20, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management