CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-19032

CVE-2026-19032: Insecure Deserialization and Class Loading via java.nio.file.Path Resolution in FasterXML jackson-databind

Alon Barad
Alon Barad
Software Engineer

Sep 29, 2026·6 min read·2 visits

Executive Summary (TL;DR)

Unauthenticated remote attackers can trigger unsafe Java ServiceLoader class loading and execute arbitrary FileSystemProvider resolution logic by supplying crafted URIs in JSON properties deserialized as java.nio.file.Path fields.

An insecure deserialization vulnerability exists in FasterXML jackson-databind due to improper validation of URI schemes when resolving java.nio.file.Path properties. When binding untrusted JSON input to a Path field, the deserializer resolves attacker-supplied URIs without restriction. If the scheme is unrecognized by the default filesystem, the application falls back to querying registered SPI FileSystemProvider instances, causing class loading and potential side effects in environments with custom providers.

Vulnerability Overview

The FasterXML jackson-databind library is widely utilized across the Java ecosystem to serialize and deserialize Java objects to and from JSON format. Within the library, the deserialization routine for java.nio.file.Path objects converts string inputs directly into java.net.URI instances. Prior to the patch, the parser accepted arbitrary URI scheme values without sanitization, exposing a significant attack surface in applications parsing untrusted payload structures.

This vulnerability is categorized under CWE-470 (Use of Externally-Controlled Input to Select Classes or Code) and CWE-610 (Externally Controlled Reference to a Resource in Another Sphere). The core issue resides in the mechanism used to resolve non-standard URI schemes, which triggers automatic discovery of filesystem providers configured on the target's classpath.

While standard local file schemes (file://) resolve safely on default JVM installations, the presence of specialized library dependencies on the runtime classpath—such as S3, Google Cloud Storage, FTP, or custom virtual filesystem providers—allows attackers to manipulate remote requests, initialize unauthorized network connections, or run static initializers of target classes.

Root Cause Analysis

To understand the root cause, we must trace how jackson-databind handles the transition of a JSON string literal into a java.nio.file.Path object. When a class containing a Path property is deserialized, the framework invokes its path deserialization logic. The input string is parsed as a java.net.URI object, which is then fed into Paths.get(uri) or Path.of(uri) to get a reference to the resource.

If the URI specifies a scheme that is not natively registered within the default filesystem context (for example, s3:// or custom://), the standard lookup fails and throws a java.nio.file.FileSystemNotFoundException. Rather than propagating this exception to abort deserialization immediately, the vulnerable implementation catches it and attempts an open-ended fallback search via the Java Service Provider Interface (SPI).

The vulnerable code runs ServiceLoader.load(FileSystemProvider.class) using the thread context class loader. It then loops through all discovered implementations, checking if provider.getScheme().equalsIgnoreCase(scheme) evaluates to true. This lookup triggers the JVM to load the class definition and execute any static initialization blocks associated with providers residing on the application's classpath. If a match is found, the application immediately invokes the custom provider's getPath(uri) method using the attacker's completely controlled URI value.

Code Analysis and Patch Robustness

The vulnerability was addressed in commit cc6756b61ed90b6b9227f670e0408d5d9bd48551 by introducing strict validation inside NioPathDeserializer before any filesystem resolution or class-loading logic can take place.

Prior to the patch, the deserializer blindly processed the input string and initiated the SPI search on failure. The updated version implements a strict URI scheme allowlist that defaults only to the 'file' scheme. Local paths (which do not specify a scheme, causing uri.getScheme() to return null) bypass the validation check, maintaining backward compatibility.

// Patched logic in NioPathDeserializer
public final static Collection<String> DEFAULT_ALLOWED_SCHEMES = Collections.singletonList("file");
protected final Collection<String> _allowedSchemes;
 
public NioPathDeserializer() {
    this(DEFAULT_ALLOWED_SCHEMES);
}
 
// During deserialization of the Path value:
final String scheme = uri.getScheme();
if (scheme != null && !_isSchemeAllowed(scheme)) {
    return (Path) ctxt.handleWeirdStringValue(Path.class, value,
            "scheme '%s' not allowed for Path deserialization (allowed: %s)",
            scheme, _allowedSchemesDesc());
}

The check is performed case-insensitively, preventing bypasses using alternative casing (such as FiLe://). By enforcing this verification up front, jackson-databind avoids calling Paths.get(uri) or triggering ServiceLoader.load(FileSystemProvider.class) for untrusted, arbitrary protocols. This fix is highly robust because it adopts an allowlist model rather than attempting to blocklist dangerous schemes.

Exploitation Methodology

An attacker can exploit this vulnerability under specific environmental conditions. The primary prerequisite is that the target application must expose a deserialization endpoint that accepts a JSON object with a field mapped to java.nio.file.Path. Additionally, the application classpath must contain a third-party FileSystemProvider library supporting remote or virtual resources.

For example, if the application classpath includes a library containing a Google Cloud Storage (gs://) or Amazon S3 (s3://) file system provider, the attacker can submit a structured payload targeting those schemes. An example payload looks like this:

{
  "jobName": "Backup Task",
  "sourcePath": "s3://attacker-controlled-bucket.s3.amazonaws.com/payload"
}

When the application processes this payload, the vulnerable deserializer fails the local lookup, queries the SPI registry, loads the matching S3 provider class, and invokes s3Provider.getPath(uri). Depending on the exact provider implementation, this can trigger a Server-Side Request Forgery (SSRF) attempt as the provider contacts the remote endpoint, or execute specialized initialization code that impacts application availability.

Impact Assessment

The security impact of CVE-2026-19032 is evaluated at CVSS 5.3 (Medium Severity). While the vulnerability allows unauthenticated remote input to drive backend code execution, it does not directly lead to arbitrary code execution (RCE) in a standard, vanilla JVM environment without side-effecting classes on the classpath.

The real-world consequence depends heavily on the libraries deployed alongside jackson-databind. In complex enterprise environments, the forced loading of classes via the ServiceLoader and the invocation of getPath can be chained with other classpath-based vulnerabilities to achieve broader impact, probe network configurations, or perform unauthorized resource requests inside secure network boundaries.

To date, there are no known public exploits or evidence of active exploitation in the wild. The EPSS score remains low at approximately 0.529%, reflecting a limited immediate threat landscape, though legacy and complex container deployments are at elevated risk due to dense classpaths.

Remediation and Defensive Configurations

The most effective remediation is upgrading to the patched versions of jackson-databind. For the 2.x branch, users should transition to 2.18.10, 2.21.6, or 2.22.2. For the 3.x branch, users must upgrade to 3.1.6 or 3.2.2.

If upgrading is not immediately possible, applications should avoid deserializing untrusted inputs directly into java.nio.file.Path properties. Developers can bind the property as a standard String and manually perform strict schema validation before programmatically constructing the Path instance.

If non-file schemes (like s3 or gs) are legitimately required by the application, developers should securely register a custom instance of NioPathDeserializer on their ObjectMapper. This allows explicit, controlled authorization of chosen protocols while keeping the core protection intact:

SimpleModule module = new SimpleModule();
module.addDeserializer(Path.class, new NioPathDeserializer(Arrays.asList("file", "s3", "gs")));
objectMapper.registerModule(module);

Official Patches

FasterXMLOfficial Security Advisory
FasterXMLGitHub Pull Request addressing CVE-2026-19032

Fix Analysis (3)

Technical Appendix

CVSS Score
5.3/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
EPSS Probability
0.53%
Top 100% most exploited

Affected Systems

Applications deploying com.fasterxml.jackson.core:jackson-databind between 2.8.0 and 2.18.9Applications deploying com.fasterxml.jackson.core:jackson-databind between 2.19.0 and 2.21.5Applications deploying com.fasterxml.jackson.core:jackson-databind between 2.22.0 and 2.22.1Applications deploying tools.jackson.core:jackson-databind between 3.0.0 and 3.1.5Applications deploying tools.jackson.core:jackson-databind between 3.2.0 and 3.2.1

Affected Versions Detail

Product
Affected Versions
Fixed Version
jackson-databind (2.x)
FasterXML
>= 2.8.0, < 2.18.102.18.10
jackson-databind (2.x)
FasterXML
>= 2.19.0, < 2.21.62.21.6
jackson-databind (2.x)
FasterXML
>= 2.22.0, < 2.22.22.22.2
jackson-databind (3.x)
FasterXML
>= 3.0.0, < 3.1.63.1.6
jackson-databind (3.x)
FasterXML
>= 3.2.0, < 3.2.23.2.2
AttributeDetail
CWE IDCWE-470, CWE-610
Attack VectorNetwork
CVSS v3.1 Score5.3 (Medium)
EPSS Score0.00529 (0.529%)
Exploit Statuspoc
CISA KEV StatusNot Listed
ImpactLow (Unsafe Class Loading / Resource Querying / SSRF)

MITRE ATT&CK Mapping

T1129Shared Modules
Execution
T1106Native API
Execution
T1190Exploit Public-Facing Application
Initial Access
CWE-470
Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection')

The product uses external input to determine which class to load, allowing attackers to force loading of classes with potential side effects.

References & Sources

  • [1]FasterXML Security Advisory GHSA-wjgm-6hv5-3cvf

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•15 minutes ago•CVE-2026-77310
5.3

CVE-2026-77310: Server-Side Request Forgery via DNS Resolution in jackson-databind

A Server-Side Request Forgery (SSRF) vulnerability exists in FasterXML jackson-databind before versions 2.18.9, 2.21.5, 2.22.1, 3.1.5, and 3.2.1. The flaw occurs during the deserialization of java.net.InetAddress fields, where the library implicitly triggers eager DNS lookups. Unauthenticated remote attackers can exploit this behavior by passing arbitrary hostnames in JSON fields, forcing target servers to make outbound DNS lookup requests.

Alon Barad
Alon Barad
1 views•4 min read
•about 2 hours ago•CVE-2026-68497
7.5

CVE-2026-68497: CPU Denial of Service via XML Datatype Deserialization in FasterXML jackson-databind

CVE-2026-68497 is a high-severity CPU Denial of Service (DoS) vulnerability in jackson-databind. It arises because the library bypasses default input constraint checks when parsing stringified XML datatypes, subsequently passing arbitrary-length inputs to JDK constructors with quadratic execution complexity.

Alon Barad
Alon Barad
5 views•6 min read
•about 3 hours ago•CVE-2026-92905
5.3

CVE-2026-92905: Denial of Service in Zoho ManageEngine EventLog Analyzer and Log360 Log Collector

ZohoCorp ManageEngine EventLog Analyzer and Log360 before build 13071 were vulnerable to a denial-of-service (DoS) vulnerability that allowed unauthenticated remote attackers to crash the log collector service using malformed syslog packets.

Alon Barad
Alon Barad
7 views•5 min read
•about 3 hours ago•CVE-2026-88773
10.0

CVE-2026-88773: Critical HTTP Request Smuggling in Citrix NetScaler ADC and Gateway

A critical HTTP request/response smuggling vulnerability (CWE-444) exists in Citrix NetScaler ADC and Citrix NetScaler Gateway. This flaw arises from inconsistent request boundary parsing between NetScaler appliances and backend web servers, allowing remote, unauthenticated attackers to bypass security boundaries, access restricted resources, or hijack active user sessions on multiplexed TCP connections.

Amit Schendel
Amit Schendel
6 views•6 min read
•about 3 hours ago•CVE-2026-88058
8.6

CVE-2026-88058: Cross-Site Scripting via Server-Side Serialization Discrepancy in @angular/platform-server

A high-severity Cross-Site Scripting (XSS) vulnerability in Angular server-side rendering (SSR) component allows unauthenticated attackers to execute arbitrary client-side JavaScript. The flaw is caused by a parsing discrepancy between the server-side DOM emulator, Domino, and standard client-side browser HTML5 parsers. When serializing ProcessingInstruction nodes inside raw-content fallback elements, Domino fails to escape matching ancestor closing tags, causing the client-side parser to transition out of raw-text mode prematurely and execute subsequent sibling elements as active HTML.

Alon Barad
Alon Barad
5 views•9 min read
•about 4 hours ago•CVE-2026-101910
6.9

CVE-2026-101910: Server-Side Request Forgery Bypass via NAT64 Local-Use Address Range in ip-address Library

A validation bypass vulnerability exists in the npm package `ip-address` from version 10.2.0 to 10.5.1. The library's `Address6.isPrivate()` classifier fails to recognize the NAT64 local-use prefix range 64:ff9b:1::/48 as a restricted, private subnet. In networks implementing NAT64 routing configurations, an attacker can exploit this flaw to execute Server-Side Request Forgery (SSRF) and bypass local trust-boundary validations.

Alon Barad
Alon Barad
5 views•6 min read