Skip to content
OpenAdvisories
High · 8.9 CVE-2026-27830 EUVD-2026-8786GHSA-5476-xc4j-rqcv

c3p0 vulnerable to Remote Code Execution via unsafe deserialization of userOverridesAsString property

Published Feb 26, 2026 · Updated Sep 15, 2026 · Assigned by GitHub_M

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.

Affected products

VendorProductAffectedFixed
swaldman c3p0 < 0.12.0 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 c3p0 No fix yet —
Debian 13 c3p0 No fix yet —
Debian 12 c3p0 No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 c3p0 No fix yet —
Ubuntu 25.10 c3p0 No fix yet —
Show 6 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 26.04 LTS c3p0 0.9.1.2-11ubuntu0.1~esm1 USN-8642-1
Ubuntu Pro 24.04 LTS c3p0 0.9.1.2-10ubuntu2+esm1 USN-8642-1
Ubuntu Pro 22.04 LTS c3p0 0.9.1.2-10ubuntu1+esm1 USN-8642-1
Ubuntu Pro 20.04 LTS c3p0 0.9.1.2-10ubuntu0.20.04.1+esm1 USN-8642-1
Ubuntu Pro 18.04 LTS c3p0 0.9.1.2-9+deb8u1ubuntu0.18.04.1+esm1 USN-8642-1
Ubuntu Pro 16.04 LTS c3p0 0.9.1.2-9+deb8u1ubuntu0.16.04.1~esm2 —
ReleasePackageFixed inAdvisory
Red Hat Satellite Capsule 6 dynflow-utils 2.0.1-1.el9sat RHSA-2026:28385
Red Hat Satellite Capsule 6 python3.12-pillow 12.1.1-1.el9pc RHSA-2026:28385
Red Hat Satellite 6 candlepin +1 4.6.6-1.el9sat RHSA-2026:28385
Red Hat Satellite 6 dynflow-utils 2.0.1-1.el9sat RHSA-2026:28385
Red Hat Satellite 6 python3.12-pillow 12.1.1-1.el9pc RHSA-2026:28385
Red Hat Jboss Enterprise Application Platform Eus 7 eap7-hibernate +5 5.1.17-5.Final_redhat_00006.1.ep7.el7 RHSA-2026:73976, RHSA-2026:73644
Red Hat Jboss Enterprise Application Platform Eus 7 eap7-jboss-server-migration +21 1.7.2-24.Final_redhat_00026.1.el7eap RHSA-2026:73644
Red Hat Jboss Enterprise Application Platform Eus 7 eap7-netty +1 4.1.63-4.Final_redhat_00005.1.ep7.el7 RHSA-2026:73976, RHSA-2026:73644
Red Hat Jboss Enterprise Application Platform Eus 7 eap7-wildfly +1 7.1.16-1.GA_redhat_00002.1.ep7.el7 RHSA-2026:73976, RHSA-2026:73644
Red Hat Jboss Enterprise Application Platform Eus 7 eap7-wildfly-javadocs +2 7.3.19-1.GA_redhat_00004.1.el7eap RHSA-2026:73644
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Red Hat JBoss EAP 8 eap8-activemq-artemis +14 2.40.0-6.redhat_00012.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-angus +1 2.0.5-1.redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-angus-activation 2.0.3-1.redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-bouncycastle +5 1.84.0-1.redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-eap-product-conf-parent +1 801.6.0-1.GA_redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-guava +1 33.0.0-3.jre_redhat_00004.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-guava-failureaccess 1.0.3-1.redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-hal-console 3.7.19-1.Final_redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-hibernate +2 6.6.48-1.Final_redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-hibernate-search +6 7.2.6-1.Final_redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-jakarta-activation 2.1.4-1.redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-jboss-logging 3.6.2-1.Final_redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-jboss-metadata +5 16.1.0-1.Final_redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-jctools +1 4.0.6-1.redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-netty +14 4.1.132-1.Final_redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-plexus-utils 3.6.1-1.redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-reactivex-rxjava 3.1.12-1.redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-reactivex-rxjava2 2.2.21-5.redhat_00003.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-wildfly +3 8.1.6-5.GA_redhat_00007.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-wildfly-client-config 1.0.1-4.Final_redhat_00002.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-wildfly-http-client +4 2.1.4-1.Final_redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-wildfly-javadocs 8.1.1-10.GA_redhat_00017.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-wildfly-openssl +1 2.3.0-1.Final_redhat_00001.1.el8eap RHSA-2026:18055, RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-wildfly-openssl-el8-x86_64 2.3.0-1.Final.redhat.00001.1.el8eap RHSA-2026:18054
Red Hat JBoss EAP 8 eap8-wildfly-openssl-el9-x86_64 2.3.0-1.Final_redhat_00001.1.el9eap RHSA-2026:18055
Red Hat JBoss EAP 8 eap8-yasson 3.0.4-5.redhat_00007.1.el8eap RHSA-2026:18055, RHSA-2026:18054
ReleasePackageFixed inAdvisory
openSUSE Leap 15.6 c3p0 0.9.5.5-150400.3.5.1 SUSE-SU-2026:0855-1
openSUSE Leap 15.6 mchange-commons 0.2.20-150400.3.3.1 SUSE-SU-2026:0855-1

Affected packages

EcosystemPackageAffectedFixedRecord
Maven com.mchange:c3p0 < 0.12.0 0.12.0 GHSA-5476-xc4j-rqcv

Advisories 10

References