CVE-2026-127031 · Package
NO FIX YET · SEE WHAT TO DO
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.
first public Nov 13, 2026 · 1 source
Check it with your coding agent
It reads this page and tells you if your code or app is affected.
Any application that uses the AAS4J library before 3.0.1 to validate AAS XML or AASX packages from untrusted sources is exposed, because the validator resolves external DTDs and entities by default. Applications that only deserialize trusted files with XmlDeserializer are not affected, since DTD support is off there by default. Systems that never validate untrusted input can skip it.
Not affected if trusted-input-only, xml-deserializer-only
Who cares aas4j, aasx, industrial-digital-twin, java
pom.xml or build.gradle) for org.eclipse.digitaltwin.aas4j below 3.0.1.XmlSchemaValidator.validateSchema() or AASXValidator.validateSchema() on uploaded or external AAS XML or AASX files.3.0.1 or later.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.
Are you affected?
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
InfraStack checks it against your stack and answers on your report, with the evidence and the fix.
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.
This page as .md · .json · CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.