CVE-2020-36181
Description
FasterXML jackson-databind 2.x before 2.9.10.8 mishandles the interaction between serialization gadgets and typing, related to org.apache.tomcat.dbcp.dbcp.cpdsadapter.DriverAdapterCPDS.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
FasterXML jackson-databind before 2.9.10.8 allows remote code execution via a crafted serialization gadget using DriverAdapterCPDS from Tomcat DBCP.
CVE-2020-36181 is a deserialization vulnerability in FasterXML jackson-databind versions prior to 2.9.10.8. The issue arises from an incomplete blacklist of "gadget" classes that can be used in conjunction with default typing to achieve remote code execution. Specifically, the class org.apache.tomcat.dbcp.dbcp.cpdsadapter.DriverAdapterCPDS was not blocked, allowing it to be leveraged as a serialization gadget [1][3][4].
Exploitation requires that the application has enabled default typing (e.g., via ObjectMapper.enableDefaultTyping()) and uses a vulnerable version of jackson-databind. An attacker can craft a malicious JSON payload that, when deserialized, triggers JNDI injection through the DriverAdapterCPDS class, leading to arbitrary code execution [2][4]. No authentication is needed if the deserialization endpoint is exposed.
Successful exploitation can result in full remote code execution in the context of the vulnerable application, potentially allowing an attacker to take over the server or access sensitive data [2]. The vulnerability is part of a series of similar issues (CVE-2020-36179 to CVE-2020-36182) targeting DBCP-related gadget classes [4].
The fix was implemented in commit 3ded28a and released in version 2.9.10.8, which adds org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS and related classes to the blacklist [3][4]. Users are strongly advised to upgrade to the latest version or disable default typing if it is not required.
AI Insight generated on May 21, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
com.fasterxml.jackson.core:jackson-databindMaven | >= 2.7.0, < 2.9.10.8 | 2.9.10.8 |
com.fasterxml.jackson.core:jackson-databindMaven | >= 2.0.0, < 2.6.7.5 | 2.6.7.5 |
Affected products
2- FasterXML/jackson-databinddescription
Patches
3e19c557b7891[maven-release-plugin] prepare release jackson-databind-2.6.7.5
1 file changed · +2 −2
pom.xml+2 −2 modified@@ -10,7 +10,7 @@ <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> - <version>2.6.7.5-SNAPSHOT</version> + <version>2.6.7.5</version> <name>jackson-databind</name> <packaging>bundle</packaging> <description>General data-binding functionality for Jackson: works on core streaming API</description> @@ -21,7 +21,7 @@ <connection>scm:git:git@github.com:FasterXML/jackson-databind.git</connection> <developerConnection>scm:git:git@github.com:FasterXML/jackson-databind.git</developerConnection> <url>http://github.com/FasterXML/jackson-databind</url> - <tag>HEAD</tag> + <tag>jackson-databind-2.6.7.5</tag> </scm> <properties>
7ae9214c0670[maven-release-plugin] prepare release jackson-databind-2.9.10.8
1 file changed · +2 −2
pom.xml+2 −2 modified@@ -10,7 +10,7 @@ <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> - <version>2.9.10.8-SNAPSHOT</version> + <version>2.9.10.8</version> <name>jackson-databind</name> <packaging>bundle</packaging> <description>General data-binding functionality for Jackson: works on core streaming API</description> @@ -21,7 +21,7 @@ <connection>scm:git:git@github.com:FasterXML/jackson-databind.git</connection> <developerConnection>scm:git:git@github.com:FasterXML/jackson-databind.git</developerConnection> <url>http://github.com/FasterXML/jackson-databind</url> - <tag>HEAD</tag> + <tag>jackson-databind-2.9.10.8</tag> </scm> <properties>
3ded28aece69Fixed #3004
2 files changed · +16 −7
release-notes/VERSION-2.x+2 −0 modified@@ -17,6 +17,8 @@ Project: jackson-databind #2999: Block 1 more gadget type (org.glassfish.web/javax.servlet.jsp.jstl, CVE-2020-35728) (reported by bu5yer of Sangfor FarSight Security Lab) #3003: Block one more gadget type (xxx, CVE to be allocated) +#3004: Block one more DBCP-related potential gadget class + (reported by Al1ex@knownsec) 2.9.10.7 (02-Dec-2020)
src/main/java/com/fasterxml/jackson/databind/jsontype/impl/SubTypeValidator.java+14 −7 modified@@ -118,9 +118,12 @@ public class SubTypeValidator // [databind#2704]: xalan2 s.add("com.sun.org.apache.xalan.internal.lib.sql.JNDIConnectionPool"); - // [databind#2478]: comons-dbcp, p6spy + // [databind#2478]: commons-dbcp 1.x, p6spy + // [databind#3004]: commons-dbcp 1.x + s.add("org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS"); s.add("org.apache.commons.dbcp.datasources.PerUserPoolDataSource"); s.add("org.apache.commons.dbcp.datasources.SharedPoolDataSource"); + s.add("com.p6spy.engine.spy.P6DataSource"); // [databind#2498]: log4j-extras (1.2) @@ -185,8 +188,9 @@ public class SubTypeValidator // [databind#2682]: commons-jelly s.add("org.apache.commons.jelly.impl.Embedded"); - // [databind#2688]: apache/drill + // [databind#2688], [databind#3004]: apache/drill s.add("oadd.org.apache.xalan.lib.sql.JNDIConnectionPool"); + s.add("oadd.org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS"); s.add("oadd.org.apache.commons.dbcp.datasources.PerUserPoolDataSource"); s.add("oadd.org.apache.commons.dbcp.datasources.SharedPoolDataSource"); @@ -209,32 +213,35 @@ public class SubTypeValidator s.add("com.nqadmin.rowset.JdbcRowSetImpl"); s.add("org.arrah.framework.rdbms.UpdatableJdbcRowsetImpl"); - // [databind#2986]: dbcp2 + // [databind#2986], [databind#3004]: dbcp2 s.add("org.apache.commons.dbcp2.datasources.PerUserPoolDataSource"); s.add("org.apache.commons.dbcp2.datasources.SharedPoolDataSource"); + s.add("org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS"); // [databind#2996]: newrelic-agent + embedded-logback-core // (derivative of #2334 and #2389) s.add("com.newrelic.agent.deps.ch.qos.logback.core.db.JNDIConnectionSource"); s.add("com.newrelic.agent.deps.ch.qos.logback.core.db.DriverManagerConnectionSource"); - // [databind#2997]: tomcat/naming-factory-dbcp (embedded dbcp 1.x) + // [databind#2997]/[databind#3004]: tomcat/naming-factory-dbcp (embedded dbcp 1.x) // (derivative of #2478) + s.add("org.apache.tomcat.dbcp.dbcp.cpdsadapter.DriverAdapterCPDS"); s.add("org.apache.tomcat.dbcp.dbcp.datasources.PerUserPoolDataSource"); s.add("org.apache.tomcat.dbcp.dbcp.datasources.SharedPoolDataSource"); - // [databind#2998]: org.apache.tomcat/tomcat-dbcp (embedded dbcp 2.x) + // [databind#2998]/[databind#3004]: org.apache.tomcat/tomcat-dbcp (embedded dbcp 2.x) // (derivative of #2478) + s.add("org.apache.tomcat.dbcp.dbcp2.cpdsadapter.DriverAdapterCPDS"); s.add("org.apache.tomcat.dbcp.dbcp2.datasources.PerUserPoolDataSource"); s.add("org.apache.tomcat.dbcp.dbcp2.datasources.SharedPoolDataSource"); // [databind#2999]: org.glassfish.web/javax.servlet.jsp.jstl (embedded Xalan) // (derivative of #2469) s.add("com.oracle.wls.shaded.org.apache.xalan.lib.sql.JNDIConnectionPool"); - // [databind#303]: another case of embedded Xalan (derivative of #2469) + // [databind#3003]: another case of embedded Xalan (derivative of #2469) s.add("org.docx4j.org.apache.xalan.lib.sql.JNDIConnectionPool"); - + DEFAULT_NO_DESER_CLASS_NAMES = Collections.unmodifiableSet(s); }
Vulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
14- github.com/advisories/GHSA-cvm9-fjm9-3572ghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2020-36181ghsaADVISORY
- cowtowncoder.medium.com/on-jackson-cves-dont-panic-here-is-what-you-need-to-know-54cd0d6e8062ghsax_refsource_MISCWEB
- github.com/FasterXML/jackson-databind/commit/3ded28aece694d0df39c9f0fa1ff385b14a8656bghsaWEB
- github.com/FasterXML/jackson-databind/issues/3004ghsax_refsource_MISCWEB
- lists.debian.org/debian-lts-announce/2021/04/msg00025.htmlghsamailing-listx_refsource_MLISTWEB
- security.netapp.com/advisory/ntap-20210205-0005ghsaWEB
- security.netapp.com/advisory/ntap-20210205-0005/mitrex_refsource_CONFIRM
- www.oracle.com//security-alerts/cpujul2021.htmlghsax_refsource_MISCWEB
- www.oracle.com/security-alerts/cpuApr2021.htmlghsax_refsource_MISCWEB
- www.oracle.com/security-alerts/cpuapr2022.htmlghsax_refsource_MISCWEB
- www.oracle.com/security-alerts/cpujan2022.htmlghsax_refsource_MISCWEB
- www.oracle.com/security-alerts/cpujul2022.htmlghsax_refsource_MISCWEB
- www.oracle.com/security-alerts/cpuoct2021.htmlghsax_refsource_MISCWEB
News mentions
0No linked articles in our index yet.