CVE-2026-55223: C3p0 C3p0 Can, Vulnerability
MODERATECVE-2026-55223 is a MODERATE c3p0 can, vulnerability (CWE-502: Deserialization of Untrusted Data) affecting C3p0 libraries in the Maven ecosystem. The issue involves c3p0 can, in combination with other libraries, compose to a "sink" for deserialization gadgets. Remediation is available by upgrading affected packages to version 0.14.0.
CVE-2026-55223 at a Glance
How to Fix CVE-2026-55223
To remediate this vulnerability, upgrade all affected C3p0 dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.14.0</version>
</dependency>
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
mvn dependency:tree -Dincludes=com.mchange
How to Check if You Are Affected
To determine whether your Java application is affected by CVE-2026-55223, inspect your build dependencies using the Maven Dependency Plugin:
mvn dependency:tree -Dincludes=com.mchange
Analyze the terminal output to locate any version of C3p0 in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 0.14.0), your application is affected.
Note: The mvn dependency:tree -Dincludes=com.mchange command inspects the resolved dependency graph declared in your project's POM files; it does not perform automated security scanning or inspect runtime dynamic classpaths. Always verify runtime container classpaths and shaded JARs.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-502: Deserialization of Untrusted Data, where the product deserializes untrusted data without sufficiently ensuring that the resulting data will be valid. In C3p0, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2026-55223 Affected C3p0 Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
com.mchange:c3p0
|
Maven |
< 0.14.0
|
0.14.0
|
References
Frequently Asked Questions
What is CVE-2026-55223?
Which C3p0 versions are affected?
What version fixes CVE-2026-55223?
Is c3p0 affected?
What CWE is associated with CVE-2026-55223?
How can I check Maven dependencies for CVE-2026-55223?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-w6w4-rjh9-9r58",
"modified" : "2026-07-23T19:46:53Z",
"published" : "2026-07-23T19:46:53Z",
"aliases" : [ "CVE-2026-55223" ],
"summary" : "c3p0 can, in combination with other libraries, compose to a \"sink\" for deserialization gadgets",
"details" : "### Impact\n\nThe JDBC spec defines the interface `DataSource`, with a method called `getConnection()`, and `ConnectionPoolDataSource`, with a method called `getPooledConnection()`. These methods are potentially dangerous. One way or another they trigger calls into JDBC drivers, which themselves are complicated, flexible tools which may be, and in practice sometimes have proven to be, susceptible to abuse.\n\nUnfortunately, the JavaBean framework treats methods of this form, `getXXX()`, as JavaBean \"properties\", which JavaBean-related libraries often presume represent quick, safe-to-look-up, state or configuration.\n\nAttackers therefore can construct malicious `DataSource` objects — objects whose calls to `getConnection()` or `getPooledConnection()` would trigger attacks via vulnerable JDBC drivers — and bundle them in contexts that automatically look up bean properties on deserialization. If an attacker can smuggle such an object in serialized form to a location from which an application will deserialize it, an attack is triggered.\n\nIt's not easy. It requires that a susceptible JDBC `DataSource` or `ConnectionPoolDataSource` be available on the application `CLASSPATH`, along with a susceptible JDBC driver, and a carrier that will automatically look up JavaBean properties on deserialization. In practice, the most common such carrier is the composition of a collection and a `Comparator` implementation that sorts based on JavaBean properties from Apache [`commons-beanutils`](https://commons.apache.org/proper/commons-beanutils/).\n\nBut c3p0 prior to 0.14.0 offered the susceptible JDBC `DataSource` or `ConnectionPoolDataSource`, supplying an essential component of the trigger.\n\n### Patches\n\nc3p0 versions 0.14.0 and above no longer participate in this class of attack, because they include explicit `BeanInfo` classes which exclude `connection` and `pooledConnection` from the list of \"introspected\" JavaBean properties. Since `getConnection()` and `getPooledConnection()` no longer define JavaBean properties, classes that promiscuously read JavaBean properties do not call them, and the attack is averted.\n\n### Workarounds\n\nIf users can ensure the safety of all JDBC drivers on the application `CLASSPATH`, or that no libraries lie on the `CLASSPATH` that can be composed to trigger automatic JavaBean property lookups on deserialization, then this attack is prevented. Nevertheless, given the complexity of modern JDBC drivers and typical Java application transitive dependencies, it is strongly recommended that users upgrade to c3p0 version 0.14.0 or higher.\n\nSome versions of this attack are foiled by [the stronger encapsulation and restriction of reflective access introduced in Java 16](https://softwaregarden.dev/en/posts/new-java/illegal-access-in-java-16/). Running applications on Java 16+ is therefore a potential mitigation.\n\nThis attack is described by [Hans-Martin Münch](https://mogwailabs.de/en/authors/hans-martin-muench/) in a blog post called \"[Look Mama, no TemplatesImpl](https://mogwailabs.de/en/blog/2023/04/look-mama-no-templatesimpl/)\".",
"severity" : [ {
"type" : "CVSS_V4",
"score" : "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "Maven",
"name" : "com.mchange:c3p0"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "0.14.0"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/swaldman/c3p0/security/advisories/GHSA-w6w4-rjh9-9r58"
}, {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-55223"
}, {
"type" : "WEB",
"url" : "https://github.com/swaldman/c3p0/commit/7b022c4b6694dabc6204254dc917af9c38f2cb27"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/swaldman/c3p0"
}, {
"type" : "WEB",
"url" : "https://github.com/swaldman/c3p0/releases/tag/v0.14.0"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-502" ],
"severity" : "MODERATE",
"github_reviewed" : true,
"github_reviewed_at" : "2026-07-23T19:46:53Z",
"nvd_published_at" : "2026-06-30T23:17:28Z"
}
}