CVE-2026-15803 Overview
CVE-2026-15803 is an XML External Entity (XXE) vulnerability in Eclipse RDF4J. Several XML parser entry points fail to fully restrict XXE processing when parsing untrusted XML-based RDF data or query results. The flaw permits DOCTYPE declarations, external entity references, and external DTD loading. This condition results from an incomplete fix for CVE-2018-1000644, which did not cover all parser entry points. The vulnerability is tracked under [CWE-611] (Improper Restriction of XML External Entity Reference). Eclipse resolved the issue in RDF4J 5.3.2, which rejects or disables DOCTYPE declarations, external entities, and external DTD loading by default.
Critical Impact
A network-based, unauthenticated attacker can supply crafted XML-based RDF payloads to trigger external entity resolution, enabling confidential file disclosure from the server.
Affected Products
- Eclipse RDF4J versions prior to 5.3.2
- Applications parsing untrusted XML-based RDF data through affected RDF4J parser entry points
- Applications processing XML-formatted SPARQL query results with vulnerable RDF4J releases
Discovery Timeline
- 2026-08-12 - CVE-2026-15803 published to NVD
- 2026-08-12 - Last updated in NVD database
Technical Details for CVE-2026-15803
Vulnerability Analysis
Eclipse RDF4J is a Java framework for processing and storing Resource Description Framework (RDF) data. It parses several XML-based serializations, including RDF/XML and the SPARQL XML results format. When an application ingests untrusted XML through RDF4J parsers, the underlying XML reader accepts DOCTYPE declarations and resolves external entities. An attacker can reference local files or remote URIs, causing the parser to fetch and embed that content during parsing.
The issue is a regression scoped by the earlier remediation for CVE-2018-1000644. That fix hardened the primary parsing paths but omitted additional entry points that construct XML readers without applying the same secure-processing settings. Consumers that route RDF or query-result XML through those overlooked entry points remain exposed even on patched pre-5.3.2 lines.
Successful exploitation can disclose files readable by the RDF4J process, expose internal network resources through DTD or entity URIs, and enable server-side request forgery patterns against services reachable from the parsing host.
Root Cause
The root cause is inconsistent hardening of XML parser factories across RDF4J parser entry points. Certain code paths instantiate SAXParserFactory, DocumentBuilderFactory, or XMLInputFactory objects without setting features such as http://apache.org/xml/features/disallow-doctype-decl, external-general-entities, external-parameter-entities, and load-external-dtd. Because these parsers default to permissive XML 1.0 behavior, DOCTYPE declarations and entity resolution proceed against attacker-supplied input.
Attack Vector
Exploitation requires the target application to parse attacker-controlled XML with a vulnerable RDF4J entry point. An attacker submits an RDF/XML document or SPARQL XML results file containing a DOCTYPE and an external entity that references a local file, an internal URL, or a remote DTD. The parser resolves the entity during processing, and the resulting content is either returned in RDF query outputs, embedded in error messages, or exfiltrated through out-of-band DTD tricks. No authentication or user interaction is required when the ingestion endpoint is exposed to the network.
The vulnerability is described in prose only; consult the GitLab CVE Assignment Work Item and the RDF4J Release Notes 5.3.2 for authoritative technical details.
Detection Methods for CVE-2026-15803
Indicators of Compromise
- Inbound RDF/XML or SPARQL XML payloads containing <!DOCTYPE declarations or <!ENTITY SYSTEM references directed at RDF4J endpoints.
- Outbound HTTP or FTP requests from RDF4J processes to external hosts referenced in DTD or entity URIs, particularly during ingestion operations.
- Unexpected file read activity by the RDF4J JVM process against paths such as /etc/passwd, file:///, or Windows credential stores.
Detection Strategies
- Inspect HTTP request bodies routed to RDF4J parser endpoints for XML declarations combined with DOCTYPE or ENTITY tokens.
- Correlate JVM process network egress with parsing timestamps to surface out-of-band XXE exfiltration through parameter entities.
- Review application logs for XML parsing errors referencing external entity resolution failures or unresolved system identifiers.
Monitoring Recommendations
- Enable verbose logging on RDF4J ingestion services and forward parser exceptions to a centralized log platform for review.
- Baseline outbound connections from application servers running RDF4J and alert on new destinations coinciding with XML ingestion.
- Track deployed RDF4J versions across the estate to flag hosts still running releases prior to 5.3.2.
How to Mitigate CVE-2026-15803
Immediate Actions Required
- Upgrade Eclipse RDF4J to version 5.3.2 or later, which disables DOCTYPE, external entities, and external DTD loading by default.
- Inventory applications embedding RDF4J libraries and confirm transitive dependency versions in build manifests such as pom.xml or build.gradle.
- Restrict network egress from hosts running RDF4J parsers to prevent out-of-band exfiltration during any residual exposure window.
Patch Information
Eclipse RDF4J 5.3.2 rejects or disables DOCTYPE declarations, external entity references, and external DTD loading by default across the previously unhardened parser entry points. Refer to the RDF4J Release Notes 5.3.2 and the GitLab CVE Assignment Work Item for the complete change set.
Workarounds
- Reject XML payloads containing <!DOCTYPE declarations at an upstream gateway or web application firewall before they reach RDF4J parsers.
- Wrap RDF4J parser instantiation in application code and explicitly disable DOCTYPE, external general entities, external parameter entities, and external DTD loading on the underlying XML factories.
- Run RDF4J processes under least-privilege file system and network permissions to limit the impact of any residual XXE resolution.
# Configuration example: verify installed RDF4J version via Maven dependency tree
mvn dependency:tree -Dincludes=org.eclipse.rdf4j
# Upgrade RDF4J to the patched release in pom.xml
# <dependency>
# <groupId>org.eclipse.rdf4j</groupId>
# <artifactId>rdf4j-runtime</artifactId>
# <version>5.3.2</version>
# </dependency>
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

