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

CVE-2020-36179

CVE-2020-36179

Description

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

AI Insight

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

CVE-2020-36179 is a deserialization vulnerability in FasterXML jackson-databind allowing remote code execution via crafted JSON when default typing is enabled, using a gadget from Apache Commons DBCP.

Vulnerability

CVE-2020-36179 is a deserialization vulnerability in FasterXML jackson-databind versions before 2.9.10.8. The issue arises from mishandling the interaction between serialization gadgets and typing, specifically allowing the class oadd.org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS to be used as a gadget [2][3]. This class is part of the Apache Commons DBCP library and can be leveraged to execute arbitrary code when deserialized.

Exploitation

To exploit this vulnerability, an attacker needs to send a specially crafted JSON payload to an application that uses jackson-databind with default typing enabled. No authentication is required if the application accepts untrusted input. The gadget class can instantiate objects that perform actions such as establishing JDBC connections, leading to remote code execution [4].

Impact

Successful exploitation allows an attacker to execute arbitrary code in the context of the vulnerable application, potentially leading to full system compromise. The impact is severe, with a CVSS score of 9.8 (Critical) [2].

Mitigation

The vulnerability is patched in jackson-databind version 2.9.10.8. Users are strongly advised to upgrade to this version or later. If upgrading is not possible, disabling default typing (ObjectMapper.enableDefaultTyping()) can prevent exploitation, though it may affect application functionality. This CVE is part of a series of related DBCP gadget issues addressed in the same release [4].

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

16

News mentions

0

No linked articles in our index yet.