VYPR
High severityNVD Advisory· Published Jan 6, 2021· Updated Aug 4, 2024

CVE-2020-36180

CVE-2020-36180

Description

FasterXML jackson-databind 2.x before 2.9.10.8 mishandles the interaction between serialization gadgets and typing, related to org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

Jackson databind 2.x before 2.9.10.8 allows remote code execution via unsafe deserialization using DBCP2's DriverAdapterCPDS gadget.

Vulnerability

CVE-2020-36180 is a deserialization vulnerability in FasterXML jackson-databind versions prior to 2.9.10.8 [2]. It arises from improper handling of the interaction between serialization gadgets and the default typing feature, specifically involving the class org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS from Apache Commons DBCP2 [4].

Exploitation

An attacker must have the ability to send malformed JSON data to an application using Jackson databind with default typing enabled or a similar polyglot configuration [2]. If the vulnerable DBCP2 class is present on the classpath, the attacker can craft a payload that triggers arbitrary code execution during deserialization [3].

Impact

Successful exploitation allows remote code execution in the context of the vulnerable application, potentially leading to full system compromise [4]. This CVE is part of a series of similar issues (CVE-2020-36179 to CVE-2020-36182) targeting various DBCP2 gadget classes [4].

Mitigation

The fix is implemented in jackson-databind version 2.9.10.8, where the offending class is added to the blacklist [3]. Users are advised to upgrade to this version or later. No workaround exists if the default typing feature is required [2].

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.

PackageAffected versionsPatched versions
com.fasterxml.jackson.core:jackson-databindMaven
>= 2.7.0, < 2.9.10.82.9.10.8
com.fasterxml.jackson.core:jackson-databindMaven
>= 2.0.0, < 2.6.7.52.6.7.5

Affected products

2

Patches

3
e19c557b7891

[maven-release-plugin] prepare release jackson-databind-2.6.7.5

https://github.com/FasterXML/jackson-databindTatu SalorantaJun 22, 2021via osv
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

https://github.com/FasterXML/jackson-databindTatu SalorantaJan 6, 2021via osv
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>
    
3ded28aece69

Fixed #3004

https://github.com/FasterXML/jackson-databindTatu SalorantaJan 1, 2021via ghsa
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

News mentions

0

No linked articles in our index yet.