CVE-2026-27830: swaldman c3p0 Code Injection
Vulnerability summary
CVE-2026-27830 is a high (CVSS 8.9) Code Injection vulnerability in swaldman c3p0. EPSS estimates a 2.04% chance of exploitation in the next 30 days, higher than 80.8% of scored vulnerabilities.
Advisory lineage
Upstream 0 · Downstream 7 · Related 3Timeline
- 26-02-2026PublishedVulnerability first disclosed.
- 15-09-2026Last modifiedVulnerability information updated.
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.
CVSS metrics
10 scores · 7 sources · 2 versions- OSV · UbuntuEcosystem advisory · calculated8.9HighCVSS:4.0/AV:A/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
- OSV · DebianEcosystem advisory · calculated8.9HighCVSS:4.0/AV:A/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
- OSV · WolfiEcosystem advisory · calculated8.9HighCVSS:4.0/AV:A/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
- OSV · ChainguardEcosystem advisory · calculated8.9HighCVSS:4.0/AV:A/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
- OSV · MavenEcosystem advisory · calculated8.9HighCVSS:4.0/AV:A/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
- NVDNIST8.9HighCVSS:4.0/AV:A/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
- OSV · UbuntuEcosystem advisory · calculated8.0HighCVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- NVDNIST8.0HighCVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
EPSS trend
Probability
2.04%
Chance of exploitation in the next 30 days
Percentile
81%
Versus all other CVEs
30-day change
+1.50 pp
From 0.53% on 19-09-2026
Known exploited
Compare KEV catalogsNot in any of the 3 tracked catalogs.
Public exploits
0 foundNo public exploits indexed.
Weaknesses
CWE · root cause- CWE-94Improper Control of Generation of Code ('Code Injection')The product constructs all or part of a code segment using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the syntax or behavior of the intended code segment.
- CWE-502Deserialization of Untrusted DataThe product deserializes untrusted data without sufficiently ensuring that the resulting data will be valid.
Affected systems
Chainguard5 products
- debezium-3.3-connector-jdbc< 3.3.2-r2 | < 3.3.2-r1
- debezium-3.4-connector-jdbc< 3.4.1-r1
- hono-service-device-registry-jdbc< 2.7.0-r1
- solr-9-full< 9.10.1-r14
- solr-fips-9-full< 9.10.1-r3
Com.mchange1 product
- c3p0< 0.12.0
Debian1 product
- c3p0All versions (No fix recorded)
Swaldman1 product
- c3p0< 0.12.0
Ubuntu1 product
- c3p0< 0.9.1.2-9+deb8u1ubuntu0.16.04.1~esm2 | < 0.9.1.2-9+deb8u1ubuntu0.18.04.1+esm1 | < 0.9.1.2-10ubuntu0.20.04.1+esm1 | < 0.9.1.2-10ubuntu1+esm1 | < 0.9.1.2-10ubuntu2+esm1 | All versions (No fix recorded) | < 0.9.1.2-11ubuntu0.1~esm1
Wolfi1 product
- debezium-3.4-connector-jdbc< 3.4.1-r1
6 vendors · 10 products
References
21 links- github.com/swaldman/c3p0/security/advisories/GHSA-5476-xc4j-rqcvX Refsource CONFIRMREPORTAdvisoryWEB
- github.com/swaldman/c3p0/commit/e14cbd8166e423e2e9a9d6f08b2add3433492d6eX Refsource MISCREPORTFIXWEB
Show all 21 references
- github.com/swaldman/c3p0PACKAGE