---
id: "CVE-2026-127031"
page: "https://infrastack.ai/live/CVE-2026-127031"
kind: "vulnerability"
aliases: ["CVE-2026-127031"]
title: "Eclipse AAS4J: XML validation reads local files and makes outbound requests"
severity: "high"
cvss: 7.7
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["aas4j", "aasx", "industrial-digital-twin", "java", "package"]
not_affected_if: ["trusted-input-only", "xml-deserializer-only"]
published_at: "2026-11-13T15:17:44+00:00"
first_seen_at: "2026-11-13T15:46:19+00:00"
updated_at: "2026-11-13T15:48:24+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-127031", "first_seen_at": "2026-11-13T15:46:19+00:00"}]
exploit_sources: []
---

# Eclipse AAS4J: XML validation reads local files and makes outbound requests

Link for people: https://infrastack.ai/live/CVE-2026-127031 (this .md is for agents)

Eclipse AAS4J's XML schema validator resolves external DTDs and entities when it checks an untrusted AAS XML document or AASX package. A crafted file can make the validating process read local files, send their contents to an attacker's server, and issue arbitrary outbound requests.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the AAS4J version in the project's dependency file (for example `pom.xml` or `build.gradle`) for `org.eclipse.digitaltwin.aas4j` below `3.0.1`.
- Check whether the application calls `XmlSchemaValidator.validateSchema()` or `AASXValidator.validateSchema()` on uploaded or external AAS XML or AASX files.

## Fix

- Eclipse AAS4J: upgrade to `3.0.1` or later.

## Timeline

- 2026-11-13T15:46:19+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-127031

## From the sources

In Eclipse AAS4J before 3.0.1, `XmlSchemaValidator.validateSchema()` (and `AASXValidator.validateSchema()`, which calls it) validates untrusted XML with a default JAXP `Validator` that resolves external DTDs and external entities. An attacker who supplies a crafted AAS XML document or AASX package can read local files from the host, send their contents out-of-band to an attacker-controlled server, and make the validating process send arbitrary outbound requests (SSRF). Validation still returns no errors.



Details:



- Vulnerable code: `dataformat-xml/src/main/java/org/eclipse/digitaltwin/aas4j/v3/dataformat/xml/XmlSchemaValidator.java`. `schema.newValidator().validate(new StreamSource(...))` runs without `ACCESS_EXTERNAL_DTD` / `ACCESS_EXTERNAL_SCHEMA` restrictions and without `disallow-doctype-decl`.



- Second entry point: `dataformat-aasx/src/main/java/org/eclipse/digitaltwin/aas4j/v3/dataformat/aasx/AASXValidator.java`. The AAS XML part of an `.aasx` package is passed unchanged to the vulnerable validator.



- `XmlDeserializer` (Jackson/Woodstox) is not affected, because DTD support is disabled by default there.



- Present since the initial import of the code base (commit `cc9da52`).



- Fix: harden the validator by setting `ACCESS_EXTERNAL_DTD` and `ACCESS_EXTERNAL_SCHEMA` to `""` and rejecting `DOCTYPE` declarations. The bundled `AAS.xsd` does not need DTDs, so no functionality is lost.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
