FixVibe
Research notecritical

Spring Web Services XXE Vulnerability CVE-2019-3773

CVE-2019-3773 is a critical XML External Entity vulnerability in older Spring Web Services releases that process untrusted XML. Spring advises upgrading the spring-ws and spring-xml components to 2.4.4, 3.0.6, or later.

CVE-2019-3773CWE-611

What happened

Spring disclosed CVE-2019-3773 as an XML External Entity (XXE) vulnerability in Spring Web Services when affected components receive XML from untrusted sources [S1]. The vendor identifies Spring Web Services 2.4.3, 3.0.4, and older releases as affected [S1].

NVD maps the issue to CWE-611 and scores it 9.8 Critical under CVSS 3.1 [S2]. The advisory was first published in January 2019, but the relevant question for an application remains whether its resolved Spring Web Services components are still within the affected release lines [S1].

Exposure and impact

The vulnerability matters when an application uses affected Spring Web Services components to process XML from an untrusted source [S1]. In that configuration, external-entity processing can cross the intended boundary between an XML document and resources available to the parser, which is why the issue is classified as CWE-611 [S2].

A dependency declaration alone does not prove that an application exposes a reachable SOAP or XML endpoint, accepts attacker-controlled XML, or enables the affected parser path [S1]. Teams should treat an affected-version match as a version-based advisory and confirm runtime reachability and parser configuration separately [S1].

Remediation and verification

Spring directs users to upgrade the spring-ws and spring-xml JARs to 2.4.4, 3.0.6, or later [S1]. The fixed components disable the relevant XML features by default, while still allowing explicit configuration when XML comes from a trusted source [S1].

After upgrading, inspect the resolved dependency graph rather than only the top-level build file. Confirm that deployed JARs, application images, and every supported service have moved off the affected Spring Web Services versions [S1]. Review custom XML parser settings and ensure untrusted XML cannot re-enable DTD or external-entity resolution [S1].

Use benign regression documents that do not reference local files, internal services, or external callback infrastructure. Validate that the application rejects prohibited document types or external-entity declarations without retrieving any external resource.

Evidence boundaries

Repository manifests and dependency locks can establish that a project resolves an affected Spring Web Services version, but they cannot prove that the vulnerable code path is deployed or reachable [S1]. Conversely, a public endpoint fingerprint cannot reliably establish the effective JAR version or parser configuration [S1].

Conclusive exploit-style validation could cause the target parser to access files or network resources [S2]. Safe review should therefore combine dependency inventory, configuration inspection, and non-invasive regression tests rather than attempting out-of-band callbacks or sensitive-resource retrieval.

Spring Web Services XXE Vulnerability CVE-2019-3773 β€” FixVibe research Β· FixVibe