Security
Headlines
HeadlinesLatestCVEs

Headline

GHSA-wc9j-gc65-3cm7: DDFFileParser is vulnerable to XXE Attacks

Impact

DDFFileParser and DefaultDDFFileValidator (and so ObjectLoader) are vulnerable to XXE Attacks.

DDF file is a LWM2M format used to store LWM2M object description.
Leshan users are impacted only if they parse untrusted DDF files (e.g. if they let external users provide their own model), in that case they MUST upgrade to fixed version. If you parse only trusted DDF file and validate only with trusted xml schema, upgrading is not mandatory.

Patches

This is fixed in v1.5.0 and 2.0.0-M13.

Workarounds

No easy way. Eventually writing your own DDFFileParser/DefaultDDFFileValidator (and so ObjectLoader) creating a DocumentBuilderFactory with :

// For DDFFileParser
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); // Disable DTDs
factory.setXIncludeAware(false); // Disable XML Inclusions
factory.setExpandEntityReferences(false); // disable expand entity reference nodes

// For DefaultDDFFileValidator
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
factory.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, "");
factory.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "");

References

  • https://owasp.org/www-community/vulnerabilities/XML_External_Entity_(XXE)_Processing
  • https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html
  • https://semgrep.dev/docs/cheat-sheets/java-xxe/
  • https://community.veracode.com/s/article/Java-Remediation-Guidance-for-XXE
ghsa
#vulnerability#apache#git#java#maven

Package

maven org.eclipse.leshan:leshan-core (Maven)

Affected versions

< 1.5.0

>= 2.0.0-M1, < 2.0.0-M13

Patched versions

1.5.0

2.0.0-M13

Description

Impact

DDFFileParser and DefaultDDFFileValidator (and so ObjectLoader) are vulnerable to XXE Attacks.

DDF file is a LWM2M format used to store LWM2M object description.
Leshan users are impacted only if they parse untrusted DDF files (e.g. if they let external users provide their own model), in that case they MUST upgrade to fixed version.
If you parse only trusted DDF file and validate only with trusted xml schema, upgrading is not mandatory.

Patches

This is fixed in v1.5.0 and 2.0.0-M13.

Workarounds

No easy way. Eventually writing your own DDFFileParser/DefaultDDFFileValidator (and so ObjectLoader) creating a DocumentBuilderFactory with :

// For DDFFileParser DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); // Disable DTDs factory.setXIncludeAware(false); // Disable XML Inclusions factory.setExpandEntityReferences(false); // disable expand entity reference nodes

// For DefaultDDFFileValidator SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); factory.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, “”); factory.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, “”);

References

  • https://owasp.org/www-community/vulnerabilities/XML_External_Entity_(XXE)_Processing
  • https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html
  • https://semgrep.dev/docs/cheat-sheets/java-xxe/
  • https://community.veracode.com/s/article/Java-Remediation-Guidance-for-XXE

References

  • GHSA-wc9j-gc65-3cm7
  • https://nvd.nist.gov/vuln/detail/CVE-2023-41034
  • eclipse-leshan/leshan@29577d2
  • eclipse-leshan/leshan@4d3e63a
  • https://github.com/eclipse-leshan/leshan/wiki/Adding-new-objects#the-lwm2m-model
  • https://owasp.org/www-community/vulnerabilities/XML_External_Entity_(XXE)_Processing

sbernard31 published to eclipse-leshan/leshan

Aug 31, 2023

Published to the GitHub Advisory Database

Aug 31, 2023

Reviewed

Aug 31, 2023

Last updated

Aug 31, 2023

Related news

CVE-2023-41034: Make DDFFileParser and DefaultDDFFileValidator safer. · eclipse-leshan/leshan@4d3e63a

Eclipse Leshan is a device management server and client Java implementation. In affected versions DDFFileParser` and `DefaultDDFFileValidator` (and so `ObjectLoader`) are vulnerable to `XXE Attacks`. A DDF file is a LWM2M format used to store LWM2M object description. Leshan users are impacted only if they parse untrusted DDF files (e.g. if they let external users provide their own model), in that case they MUST upgrade to fixed version. If you parse only trusted DDF file and validate only with trusted xml schema, upgrading is not mandatory. This issue has been fixed in versions 1.5.0 and 2.0.0-M13. Users are advised to upgrade. There are no known workarounds for this vulnerability.