CVE-2013-4152 XML External Entity (XXE) injection in Spring Framework

Severity

Important

Vendor

Spring by Pivotal

Versions Affected
  • 3.0.0 to 3.2.3
  • 4.0.0.M1
  • Earlier unsupported versions may also be affected
Description

The Spring OXM wrapper did not expose any property for disabling entity resolution when using the JAXB unmarshaller. There are four possible source implementations passed to the unmarshaller:

  • DOMSource
  • StAXSource
  • SAXSource
  • StreamSource

For a DOMSource, the XML has already been parsed by user code and that code is responsible for protecting against XXE.

For a StAXSource, the XMLStreamReader has already been created by user code and that code is responsible for protecting against XXE.

For SAXSource and StreamSource instances, Spring processed external entities by default thereby creating this vulnerability.

The issue was resolved by disabling external entity processing by default and adding an option to enable it for those users that need to use this feature when processing XML from a trusted source.

Mitigation

Users of affected versions should apply the following mitigation:

  • Users of 3.x should upgrade to 3.2.4 or later
  • Users of 4.x should upgrade to 4.0.0.M2 or later
Credit

These issues were identified by Alvaro Munoz of the HP Enterprise Security Team.

References

https://github.com/SpringSource/spring-framework/pull/317 (Spring OXM)

History

2013-Aug-22: Initial vulnerability report published.
2014-Jun-19: Updated to remove Spring MVC aspects which have been split off into CVE-2013-7315

RELATED RESOURCES

News and events, blog posts, videos, case studies, whitepapers, and other related resources.

SEE ALL RESOURCES

Chances are good that if you're reading this post you're well aware th...


Blog Post | Oct 24, 2013

Contact Pivotal
Pivotal Support