Skip to main content
Press slash or control plus K to focus the search. Use the arrow keys to navigate results and press enter to open a threat.
Reconnecting to live updates…

CVE-2026-27830: CWE-502: Deserialization of Untrusted Data in swaldman c3p0

0
High
VulnerabilityCVE-2026-27830cvecve-2026-27830cwe-502cwe-94
Published: Thu Feb 26 2026 (02/26/2026, 00:45:18 UTC)
Source: CVE Database V5
Vendor/Project: swaldman
Product: c3p0

Description

c3p0, a JDBC Connection pooling library, is vulnerable to attack via maliciously crafted Java-serialized objects and `javax.naming.Reference` instances. Several c3p0 `ConnectionPoolDataSource` implementations have a property called `userOverridesAsString` which conceptually represents a `Map<String,Map<String,String>>`. Prior to v0.12.0, that property was maintained as a hex-encoded serialized object. Any attacker able to reset this property, on an existing `ConnectionPoolDataSource` or via maliciously crafted serialized objects or `javax.naming.Reference` instances could be tailored execute unexpected code on the application's `CLASSPATH`. The danger of this vulnerability was strongly magnified by vulnerabilities in c3p0's main dependency, mchange-commons-java. This library includes code that mirrors early implementations of JNDI functionality, including ungated support for remote `factoryClassLocation` values. Attackers could set c3p0's `userOverridesAsString` hex-encoded serialized objects that include objects "indirectly serialized" via JNDI references. Deserialization of those objects and dereferencing of the embedded `javax.naming.Reference` objects could provoke download and execution of malicious code from a remote `factoryClassLocation`. Although hazard presented by c3p0's vulnerabilites are exarcerbated by vulnerabilities in mchange-commons-java, use of Java-serialized-object hex as the format for a writable Java-Bean property, of objects that may be exposed across JNDI interfaces, represents a serious independent fragility. The `userOverridesAsString` property of c3p0 `ConnectionPoolDataSource` classes has been reimplemented to use a safe CSV-based format, rather than rely upon potentially dangerous Java object deserialization. c3p0-0.12.0+ and above depend upon mchange-commons-java 0.4.0+, which gates support for remote `factoryClassLocation` values by configuration parameters that default to restrictive values. c3p0 additionally enforces the new mchange-commons-java `com.mchange.v2.naming.nameGuardClassName` to prevent injection of unexpected, potentially remote JNDI names. There is no supported workaround for versions of c3p0 prior to 0.12.0.

AI-Powered Analysis

Machine-generated threat intelligence

AILast updated: 03/05/2026, 09:54:16 UTC

Technical Analysis

CVE-2026-27830 is a critical deserialization of untrusted data vulnerability (CWE-502) affecting the c3p0 JDBC connection pooling library versions before 0.12.0. The vulnerability centers on the userOverridesAsString property of several c3p0 ConnectionPoolDataSource implementations, which was stored as a hex-encoded serialized Java object representing a Map<String, Map<String,String>>. Because this property could be reset or manipulated by attackers, maliciously crafted serialized objects or javax.naming.Reference instances could be injected. Upon deserialization, these objects could execute arbitrary code on the application's classpath. The threat is exacerbated by c3p0's dependency on mchange-commons-java, which includes early JNDI implementation code with insufficient restrictions on remote factoryClassLocation values. This allows attackers to embed JNDI references that cause the application to download and execute malicious code from remote servers. The vulnerability does not require user interaction but does require some level of privilege to reset the property or inject malicious serialized data. The fix in c3p0 0.12.0 replaces the unsafe serialized object format with a safe CSV-based format for userOverridesAsString and upgrades mchange-commons-java to version 0.4.0 or later, which enforces restrictive configuration parameters and name guards to prevent remote JNDI injection. No mitigations exist for earlier versions, making upgrade imperative. This vulnerability highlights the dangers of using Java serialization for writable JavaBean properties exposed across JNDI interfaces.

Potential Impact

The impact of CVE-2026-27830 is severe, as it enables remote code execution within the context of applications using vulnerable c3p0 versions. Exploitation could lead to full compromise of affected systems, including unauthorized access to sensitive data, disruption of service, and lateral movement within networks. Because c3p0 is widely used in Java applications for database connection pooling, many enterprise applications, middleware, and backend services are at risk. The vulnerability's exploitation does not require user interaction but does require the ability to reset or influence the userOverridesAsString property, which may be possible in multi-tenant environments or through other injection vectors. The dependency on mchange-commons-java's flawed JNDI implementation further increases the attack surface by enabling remote code loading, making this vulnerability particularly dangerous in internet-facing or poorly segmented environments. Organizations failing to upgrade risk data breaches, service outages, and potential regulatory penalties due to compromised systems.

Mitigation Recommendations

The primary mitigation is to upgrade all c3p0 instances to version 0.12.0 or later, which replaces the vulnerable serialized object format with a safe CSV-based format and upgrades mchange-commons-java to a version that restricts remote JNDI references. Organizations should audit their Java applications to identify any usage of c3p0 versions prior to 0.12.0, especially in internet-facing or multi-tenant environments. If immediate upgrade is not possible, restrict access to management interfaces or configuration endpoints that could allow resetting the userOverridesAsString property. Employ network segmentation and firewall rules to limit outbound LDAP or RMI connections that could be used for malicious JNDI lookups. Monitor application logs for suspicious deserialization activity or unexpected JNDI lookups. Additionally, consider implementing Java security manager policies or runtime instrumentation to detect or block deserialization of untrusted data. Finally, review and harden all dependencies related to JNDI and serialization to reduce attack surface.

Pro Console: star threats, build custom feeds, automate alerts via Slack, email & webhooks.Upgrade to Pro

Technical Details

Data Version
5.2
Assigner Short Name
GitHub_M
Date Reserved
2026-02-24T02:32:39.800Z
Cvss Version
4.0
State
PUBLISHED

Threat ID: 699f9a40b7ef31ef0b7260eb

Added to database: 2/26/2026, 12:56:32 AM

Last enriched: 3/5/2026, 9:54:16 AM

Last updated: 4/12/2026, 8:06:35 AM

Views: 33

Community Reviews

0 reviews

Crowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.

Sort by
Loading community insights…

Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.

Actions

PRO

Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.

Please log in to the Console to use AI analysis features.

Need more coverage?

Upgrade to Pro Console for AI refresh and higher limits.

For incident response and remediation, OffSeq services can help resolve threats faster.

Latest Threats

Breach by OffSeqOFFSEQFRIENDS — 25% OFF

Check if your credentials are on the dark web

Instant breach scanning across billions of leaked records. Free tier available.

Scan now
OffSeq TrainingCredly Certified

Lead Pen Test Professional

Technical5-day eLearningPECB Accredited
View courses