CVE-2019-13990
XXE vulnerability in quartz (Maven)

XXE Proof of concept Fixable By Resolved Security

What is CVE-2019-13990 About?

This vulnerability in Terracotta Quartz Scheduler allows XML External Entity (XXE) attacks via a job description. The flaw in `initDocumentParser` permits attackers to disclose sensitive local files or perform server-side request forgery. Exploitation requires the ability to provide a malicious job description.

Affected Software

org.quartz-scheduler:quartz <2.3.2

Technical Details

In Terracotta Quartz Scheduler through version 2.3.0, the initDocumentParser function within xml/XMLSchedulingDataProcessor.java is vulnerable to XXE attacks. When the scheduler processes a job description, it uses an XML parser that does not properly disable external entity resolution. An attacker can craft a malicious job description XML containing external entity declarations (e.g., <!ENTITY xxe SYSTEM "file:///etc/passwd">). When this XML is parsed, the system will attempt to resolve the external entity, leading to the disclosure of local files, the execution of arbitrary code (if DTD-based XXE is possible with specific configurations), or the initiation of server-side requests.

What is the Impact of CVE-2019-13990?

Successful exploitation may allow attackers to disclose sensitive local files, perform server-side request forgery (SSRF), or potentially execute arbitrary code, leading to data exposure or system compromise.

What is the Exploitability of CVE-2019-13990?

Exploitation involves crafting a malicious job description XML and submitting it to the Terracotta Quartz Scheduler. This requires the ability to interact with the scheduler's job submission mechanism. The complexity is moderate, necessitating knowledge of XML and XXE attack vectors. Authentication requirements depend on how job descriptions are submitted; if an unauthenticated endpoint allows job submission, then no authentication is needed. Access can be remote or local. Special conditions include the scheduler processing XML input without disabling DTDs or external entities. The risk increases for applications that allow untrusted users to define or import job schedules.

What are the Known Public Exploits?

PoC Author Link Commentary
epicosy Link quartz with CVE-2019-13990

What are the Available Fixes for CVE-2019-13990?

A Fix by Resolved Security Exists!
See how we help you strengthen security with automated backported fixes for your libraries.

About the Fix from Resolved Security

The patch mitigates CVE-2019-13990 by configuring the XML parser to disallow DOCTYPE declarations, disable loading of external DTDs, and prevent expansion of external entities, effectively blocking XML External Entity (XXE) attacks. This prevents attackers from injecting malicious XML data that could lead to information disclosure or remote file access when processing untrusted XML input.

Available Upgrade Options

  • org.quartz-scheduler:quartz
    • <2.3.2 → Upgrade to 2.3.2

Struggling with dependency upgrades?

See how Resolved Security's drop-in replacements make it simple.

Book a demo

Additional Resources

What are Similar Vulnerabilities to CVE-2019-13990?

Similar Vulnerabilities: CVE-2019-10080 , CVE-2020-25658 , CVE-2021-43297 , CVE-2022-23439 , CVE-2023-28825