The SentinelOne Annual Threat Report - A Defenders Guide from the FrontlinesThe SentinelOne Annual Threat ReportGet the Report
Experiencing a Breach?Blog
Get StartedContact Us
SentinelOne
  • Platform
    Platform Overview
    • Singularity Platform
      Welcome to Integrated Enterprise Security
    • AI for Security
      Leading the Way in AI-Powered Security Solutions
    • Securing AI
      Accelerate AI Adoption with Secure AI Tools, Apps, and Agents.
    • How It Works
      The Singularity XDR Difference
    • Singularity Marketplace
      One-Click Integrations to Unlock the Power of XDR
    • Pricing & Packaging
      Comparisons and Guidance at a Glance
    Data & AI
    • Purple AI
      Accelerate SecOps with Generative AI
    • Singularity Hyperautomation
      Easily Automate Security Processes
    • AI-SIEM
      The AI SIEM for the Autonomous SOC
    • Singularity Data Lake
      AI-Powered, Unified Data Lake
    • Singularity Data Lake for Log Analytics
      Seamlessly Ingest Data from On-Prem, Cloud or Hybrid Environments
    Endpoint Security
    • Singularity Endpoint
      Autonomous Prevention, Detection, and Response
    • Singularity XDR
      Native & Open Protection, Detection, and Response
    • Singularity RemoteOps Forensics
      Orchestrate Forensics at Scale
    • Singularity Threat Intelligence
      Comprehensive Adversary Intelligence
    • Singularity Vulnerability Management
      Application & OS Vulnerability Management
    • Singularity Identity
      Identity Threat Detection and Response
    Cloud Security
    • Singularity Cloud Security
      Block Attacks with an AI-Powered CNAPP
    • Singularity Cloud Native Security
      Secure Cloud and Development Resources
    • Singularity Cloud Workload Security
      Real-Time Cloud Workload Protection Platform
    • Singularity Cloud Data Security
      AI-Powered Threat Detection for Cloud Storage
    • Singularity Cloud Security Posture Management
      Detect and Remediate Cloud Misconfigurations
    Securing AI
    • Prompt Security
      Secure AI Tools Across Your Enterprise
  • Why SentinelOne?
    Why SentinelOne?
    • Why SentinelOne?
      Cybersecurity Built for What’s Next
    • Our Customers
      Trusted by the World’s Leading Enterprises
    • Industry Recognition
      Tested and Proven by the Experts
    • About Us
      The Industry Leader in Autonomous Cybersecurity
    Compare SentinelOne
    • Arctic Wolf
    • Broadcom
    • CrowdStrike
    • Cybereason
    • Microsoft
    • Palo Alto Networks
    • Sophos
    • Splunk
    • Trellix
    • Trend Micro
    • Wiz
    Verticals
    • Energy
    • Federal Government
    • Finance
    • Healthcare
    • Higher Education
    • K-12 Education
    • Manufacturing
    • Retail
    • State and Local Government
  • Services
    Managed Services
    • Managed Services Overview
      Wayfinder Threat Detection & Response
    • Threat Hunting
      World-Class Expertise and Threat Intelligence
    • Managed Detection & Response
      24/7/365 Expert MDR Across Your Entire Environment
    • Incident Readiness & Response
      DFIR, Breach Readiness, & Compromise Assessments
    Support, Deployment, & Health
    • Technical Account Management
      Customer Success with Personalized Service
    • SentinelOne GO
      Guided Onboarding & Deployment Advisory
    • SentinelOne University
      Live and On-Demand Training
    • Services Overview
      Comprehensive Solutions for Seamless Security Operations
    • SentinelOne Community
      Community Login
  • Partners
    Our Network
    • MSSP Partners
      Succeed Faster with SentinelOne
    • Singularity Marketplace
      Extend the Power of S1 Technology
    • Cyber Risk Partners
      Enlist Pro Response and Advisory Teams
    • Technology Alliances
      Integrated, Enterprise-Scale Solutions
    • SentinelOne for AWS
      Hosted in AWS Regions Around the World
    • Channel Partners
      Deliver the Right Solutions, Together
    • SentinelOne for Google Cloud
      Unified, Autonomous Security Giving Defenders the Advantage at Global Scale
    • Partner Locator
      Your Go-to Source for Our Top Partners in Your Region
    Partner Portal→
  • Resources
    Resource Center
    • Case Studies
    • Data Sheets
    • eBooks
    • Reports
    • Videos
    • Webinars
    • Whitepapers
    • Events
    View All Resources→
    Blog
    • Feature Spotlight
    • For CISO/CIO
    • From the Front Lines
    • Identity
    • Cloud
    • macOS
    • SentinelOne Blog
    Blog→
    Tech Resources
    • SentinelLABS
    • Ransomware Anthology
    • Cybersecurity 101
  • About
    About SentinelOne
    • About SentinelOne
      The Industry Leader in Cybersecurity
    • Investor Relations
      Financial Information & Events
    • SentinelLABS
      Threat Research for the Modern Threat Hunter
    • Careers
      The Latest Job Opportunities
    • Press & News
      Company Announcements
    • Cybersecurity Blog
      The Latest Cybersecurity Threats, News, & More
    • FAQ
      Get Answers to Our Most Frequently Asked Questions
    • DataSet
      The Live Data Platform
    • S Foundation
      Securing a Safer Future for All
    • S Ventures
      Investing in the Next Generation of Security, Data and AI
  • Pricing
Get StartedContact Us
CVE Vulnerability Database
Vulnerability Database/CVE-2020-35728

CVE-2020-35728: Jackson-databind RCE Vulnerability

CVE-2020-35728 is a remote code execution vulnerability in FasterXML Jackson-databind affecting versions before 2.9.10.8. Attackers can exploit serialization gadgets to execute arbitrary code. This article covers technical details, affected versions, impact analysis, and mitigation strategies.

Published: March 11, 2026

CVE-2020-35728 Overview

CVE-2020-35728 is an insecure deserialization vulnerability in FasterXML jackson-databind 2.x before version 2.9.10.8. The vulnerability arises from improper handling of the interaction between serialization gadgets and polymorphic typing, specifically related to the com.oracle.wls.shaded.org.apache.xalan.lib.sql.JNDIConnectionPool class (embedded Xalan in org.glassfish.web/javax.servlet.jsp.jstl).

This vulnerability allows remote attackers to exploit unsafe deserialization when polymorphic type handling is enabled and an attacker can supply crafted JSON input containing the vulnerable gadget class. Successful exploitation can lead to remote code execution through JNDI injection attacks.

Critical Impact

Remote attackers can achieve arbitrary code execution by exploiting the JNDIConnectionPool gadget chain during JSON deserialization, potentially leading to complete system compromise on applications using vulnerable jackson-databind versions with polymorphic typing enabled.

Affected Products

  • FasterXML jackson-databind versions 2.x before 2.9.10.8
  • Debian Linux 9.0
  • NetApp Service Level Manager
  • Oracle Agile PLM 9.3.6
  • Oracle Application Testing Suite 13.3.0.1
  • Oracle AutoVue 21.0.2
  • Oracle Banking Corporate Lending Process Management (14.2, 14.3, 14.5)
  • Oracle Banking Credit Facilities Process Management (14.2, 14.3, 14.5)
  • Oracle Communications Billing and Revenue Management
  • Oracle Communications Cloud Native Core Policy 1.14.0
  • Oracle Data Integrator 12.2.1.4.0
  • Oracle Primavera Gateway and Unifier
  • Oracle Retail XStore Point of Service (multiple versions)
  • Oracle WebCenter Portal (12.2.1.3.0, 12.2.1.4.0)

Discovery Timeline

  • 2020-12-27 - CVE-2020-35728 published to NVD
  • 2025-08-27 - Last updated in NVD database

Technical Details for CVE-2020-35728

Vulnerability Analysis

This vulnerability belongs to a well-known class of jackson-databind deserialization issues that have affected the library over multiple releases. The core problem lies in how jackson-databind handles polymorphic type deserialization when enabled via enableDefaultTyping() or @JsonTypeInfo annotations.

When polymorphic typing is active, jackson-databind includes type information in the JSON payload, allowing the deserializer to instantiate the appropriate class. However, this mechanism can be abused by attackers who supply malicious type references pointing to dangerous "gadget" classes present on the application's classpath.

The JNDIConnectionPool class from the embedded Xalan library in javax.servlet.jsp.jstl provides such a gadget. This class performs JNDI lookups during instantiation or property setting, which can be exploited to load malicious objects from attacker-controlled LDAP or RMI servers—a classic JNDI injection attack vector.

Root Cause

The root cause is CWE-502 (Deserialization of Untrusted Data). FasterXML jackson-databind failed to include com.oracle.wls.shaded.org.apache.xalan.lib.sql.JNDIConnectionPool in its blocklist of known dangerous gadget classes. When applications deserialize untrusted JSON data with polymorphic typing enabled, attackers can specify this class as the target type, triggering JNDI lookups that lead to remote code execution.

The underlying issue is the inherent tension between polymorphic deserialization functionality and security. Jackson-databind maintains a blocklist approach to prevent known dangerous classes from being instantiated, but this requires ongoing maintenance as new gadget chains are discovered.

Attack Vector

The attack requires an application that:

  1. Uses a vulnerable version of jackson-databind (2.x before 2.9.10.8)
  2. Has polymorphic type handling enabled (enableDefaultTyping() or @JsonTypeInfo)
  3. Deserializes JSON data from untrusted sources
  4. Has the javax.servlet.jsp.jstl library (containing embedded Xalan) on the classpath

An attacker crafts a malicious JSON payload specifying com.oracle.wls.shaded.org.apache.xalan.lib.sql.JNDIConnectionPool as the type, with properties configured to trigger a JNDI lookup to an attacker-controlled server. When deserialized, the JNDI lookup retrieves and executes a malicious object, achieving remote code execution.

The exploitation mechanism leverages JNDI injection, a technique commonly seen in attacks like Log4Shell (CVE-2021-44228). The attacker typically hosts a malicious LDAP or RMI server that returns a serialized Java object or reference to a remote class file, which gets loaded and executed in the context of the vulnerable application.

Detection Methods for CVE-2020-35728

Indicators of Compromise

  • Outbound network connections to unknown LDAP or RMI servers from Java applications
  • JSON payloads containing references to com.oracle.wls.shaded.org.apache.xalan.lib.sql.JNDIConnectionPool or similar JNDI-related classes
  • Unusual process spawning from Java application processes
  • JNDI lookup errors or connection attempts in application logs
  • Presence of jackson-databind versions prior to 2.9.10.8 in application dependencies

Detection Strategies

  • Implement application-layer monitoring for JSON payloads containing known gadget class names, particularly JNDIConnectionPool variants
  • Monitor network traffic for outbound LDAP (port 389/636) or RMI (port 1099) connections from application servers
  • Deploy web application firewalls with rules to detect jackson-databind deserialization attack patterns
  • Use software composition analysis (SCA) tools to identify vulnerable jackson-databind versions in your codebase
  • Implement runtime application self-protection (RASP) to detect and block deserialization attacks

Monitoring Recommendations

  • Enable detailed logging for jackson-databind deserialization operations in non-production environments
  • Configure egress firewall rules to block or alert on unexpected outbound JNDI protocol traffic
  • Monitor Java process behavior for signs of post-exploitation activity such as command execution or file system access
  • Implement dependency scanning in CI/CD pipelines to prevent deployment of vulnerable library versions

How to Mitigate CVE-2020-35728

Immediate Actions Required

  • Upgrade jackson-databind to version 2.9.10.8 or later immediately
  • Audit application code for usage of enableDefaultTyping() or unsafe @JsonTypeInfo configurations
  • If immediate upgrade is not possible, disable polymorphic type handling or implement a strict allow-list of deserializable types
  • Review application classpath for presence of javax.servlet.jsp.jstl and evaluate necessity
  • Block outbound LDAP and RMI connections at the network level where not explicitly required

Patch Information

FasterXML has addressed this vulnerability by adding com.oracle.wls.shaded.org.apache.xalan.lib.sql.JNDIConnectionPool to the SubTypeValidator blocklist in jackson-databind version 2.9.10.8. The fix prevents this gadget class from being instantiated during polymorphic deserialization.

For detailed information about the fix, refer to the GitHub Issue Discussion. Organizations using Oracle products should consult the relevant Oracle Critical Patch Updates, including advisories from April 2021, October 2021, January 2022, April 2022, and July 2022.

Workarounds

  • Disable default typing entirely if not required: avoid using ObjectMapper.enableDefaultTyping() methods
  • Use ObjectMapper.activateDefaultTyping() with PolymorphicTypeValidator to implement strict allow-listing of deserializable types
  • Implement input validation to reject JSON payloads containing unexpected type information
  • Remove javax.servlet.jsp.jstl from the classpath if not required by the application
  • Apply network-level controls to prevent outbound JNDI protocol connections
bash
# Verify jackson-databind version in Maven projects
mvn dependency:tree -Dincludes=com.fasterxml.jackson.core:jackson-databind

# Check for vulnerable versions in Gradle projects  
./gradlew dependencies --configuration runtimeClasspath | grep jackson-databind

# Update to patched version in Maven pom.xml
# Change version to 2.9.10.8 or later

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

  • Vulnerability Details
  • TypeRCE

  • Vendor/TechFasterxml Jackson Databind

  • SeverityHIGH

  • CVSS Score8.1

  • EPSS Probability39.67%

  • Known ExploitedNo
  • CVSS Vector
  • CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Impact Assessment
  • ConfidentialityHigh
  • IntegrityNone
  • AvailabilityHigh
  • CWE References
  • CWE-502
  • Technical References
  • Debian LTS Announcement

  • Medium Blog on Jackson CVEs

  • NetApp Security Advisory

  • Oracle Security Alert April 2021

  • Oracle Security Alert July 2022
  • Vendor Resources
  • GitHub Issue Discussion

  • Oracle Security Alert July 2021

  • Oracle Security Alert April 2022

  • Oracle Security Alert January 2022

  • Oracle Security Alert October 2021
  • Related CVEs
  • CVE-2022-42003: Jackson-databind DOS Vulnerability

  • CVE-2020-36187: Jackson-databind Deserialization Flaw

  • CVE-2020-25649: Fasterxml Jackson-databind XXE Vulnerability
Experience the World’s Most Advanced Cybersecurity Platform

Experience the World’s Most Advanced Cybersecurity Platform

See how our intelligent, autonomous cybersecurity platform can protect your organization now and into the future.

Try SentinelOne
  • Get Started
  • Get a Demo
  • Product Tour
  • Why SentinelOne
  • Pricing & Packaging
  • FAQ
  • Contact
  • Contact Us
  • Customer Support
  • SentinelOne Status
  • Language
  • Platform
  • Singularity Platform
  • Singularity Endpoint
  • Singularity Cloud
  • Singularity AI-SIEM
  • Singularity Identity
  • Singularity Marketplace
  • Purple AI
  • Services
  • Wayfinder TDR
  • SentinelOne GO
  • Technical Account Management
  • Support Services
  • Verticals
  • Energy
  • Federal Government
  • Finance
  • Healthcare
  • Higher Education
  • K-12 Education
  • Manufacturing
  • Retail
  • State and Local Government
  • Cybersecurity for SMB
  • Resources
  • Blog
  • Labs
  • Case Studies
  • Videos
  • Product Tours
  • Events
  • Cybersecurity 101
  • eBooks
  • Webinars
  • Whitepapers
  • Press
  • News
  • Ransomware Anthology
  • Company
  • About Us
  • Our Customers
  • Careers
  • Partners
  • Legal & Compliance
  • Security & Compliance
  • Investor Relations
  • S Foundation
  • S Ventures

©2026 SentinelOne, All Rights Reserved.

Privacy Notice Terms of Use

English