Applying patch to RCE flaws in Xalan-J (CVE-2014-0107)

The Xalan-Java library is a popular XSLT processor from the Apache Software Foundation.

The library implements the Java API for XML Processing (JAXP) which supports a secure processing feature for interpretive and XSLCT processors. The intent of this feature is to limit XSLT/XML processing behaviours to "make the XSLT processor behave in a secure fashion".

It has been discovered that the secure processing features suffers from several limitations that undermine its purpose. The enabling of the secure processing feature in fact still allows the following processing to take place:

Java properties, bound to XSLT 1.0 system-property(), are accessible.
output properties that allow to load arbitrary classes or resources are allowed (XALANJ-2435).
arbitrary code can be executed if the Bean Scripting Framework (BSF) is in the classpath, as it allows to spawn available JARs with secure processing disabled, effectively bypassing the intended protection.
Affected version:

Xalan-Java >= 2.7.0

Fixed version:

Xalan-Java >= r1581058 (see references)

Credit: vulnerability report received from Nicolas Gregoire <nicolas.gregoire AT agarri.fr>.

CVE: CVE-2014-0107

Timeline:
2014-02-05: vulnerability report received
2014-02-05: reporter provides disclosure date set to 2014-03-21
2014-02-06: contacted Apache Security Team
2014-03-17: maintainer provides patch for review
2014-03-17: reporter confirms patch
2014-03-21: assigned CVE
2014-03-24: maintainer commits patch
2014-03-24: advisory release
References:
http://xml.apache.org/xalan-j
https://issues.apache.org/jira/browse/XALANJ-2435
http://svn.apache.org/viewvc?view=revision&revision=1581058
http://www.ocert.org/advisories/ocert-2014-002.html