JSTL TransformSupport XSL import not finding relative path after apply EAP 6.4 CP6 : MalformedURLException: unknown protocol: jstl
Environment
Red Hat JBoss Enterprise Application Platform (EAP) 6.4 CP6
Issue
After applying Cumulative Patch 6 to EAP 6.4, our jstl transform is not finding relative paths in our XSL import
test.jsp:
<c:import var="xslStylesheet" url="/xsl/ident/style.xsl" charEncoding="UTF-8" />
<c:import url="http://localhost:8080/test/test.xml" var="doc"/>
<x:transform xml="${doc}" xslt="${xslStylesheet}" xsltSystemId="/xsl/">
</x:transform>
style3.xsl
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="1.0">
<xsl:import href="parent.xsl"/>
...
We are seeing this error:
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/test2].[jsp]] (http-127.0.0.1:8080-1) JBWEB000236: Servlet.service() for servlet jsp threw exception: java.net.MalformedURLException: unknown protocol: jstl
at java.net.URL.<init>(URL.java:592) [rt.jar:1.7.0_51]
at java.net.URL.<init>(URL.java:482) [rt.jar:1.7.0_51]
at java.net.URL.<init>(URL.java:431) [rt.jar:1.7.0_51]
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:959)
at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:143)
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:802)
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:768)
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108)
at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1196)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:555)
at org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:312)
at org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:158)
at org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:626)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:496)
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:180)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:275)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1653)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:324)
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:845)
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:768)
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108)
at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1196)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:555)
at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:926)
at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:780)
at __redirected.__TransformerFactory.newTransformer(__TransformerFactory.java:132) [jboss-modules.jar:1.3.7.Final-redhat-1]
at org.apache.taglibs.standard.util.XmlUtil.newTransformer(XmlUtil.java:195) [jboss-jstl-api_1.2_spec-1.0.9.Final-redhat-1.jar:1.0.9.Final]
at org.apache.taglibs.standard.tag.common.xml.TransformSupport.doStartTag(TransformSupport.java:124) [jboss-jstl-api_1.2_spec-1.0.9.Final-redhat-1.jar:1.0.9.Final]
at org.apache.jsp.test3_jsp._jspx_meth_x_005ftransform_005f0(test3_jsp.java:230)
at org.apache.jsp.test3_jsp._jspService(test3_jsp.java:91)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:69) [jbossweb-7.5.15.Final-redhat-1.jar:7.5.15.Final-redhat-1]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-2.jar:1.0.2.Final-redhat-2]
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:365) [jbossweb-7.5.15.Final-redhat-1.jar:7.5.15.Final-redhat-1]
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:309) [jbossweb-7.5.15.Final-redhat-1.jar:7.5.15.Final-redhat-1]
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:242) [jbossweb-7.5.15.Final-redhat-1.jar:7.5.15.Final-redhat-1]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-2.jar:1.0.2.Final-redhat-2]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.5.15.Final-redhat-1.jar:7.5.15.Final-redhat-1]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.5.15.Final-redhat-1.jar:7.5.15.Final-redhat-1]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231) [jbossweb-7.5.15.Final-redhat-1.jar:7.5.15.Final-redhat-1]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.5.15.Final-redhat-1.jar:7.5.15.Final-redhat-1]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.5.7.Final-redhat-2.jar:7.5.7.Final-redhat-2]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:150) [jbossweb-7.5.15.Final-redhat-1.jar:7.5.15.Final-redhat-1]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.5.15.Final-redhat-1.jar:7.5.15.Final-redhat-1]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.5.15.Final-redhat-1.jar:7.5.15.Final-redhat-1]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) [jbossweb-7.5.15.Final-redhat-1.jar:7.5.15.Final-redhat-1]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:854) [jbossweb-7.5.15.Final-redhat-1.jar:7.5.15.Final-redhat-1]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654) [jbossweb-7.5.15.Final-redhat-1.jar:7.5.15.Final-redhat-1]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926) [jbossweb-7.5.15.Final-redhat-1.jar:7.5.15.Final-redhat-1]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
Resolution
Apply JBoss EAP 6.4 Cumulative Patch (CP) 8
Root Cause
The CVE-2015-0254 security fix caused BZ-1320747
This content is not included.BZ-1320747: JSTL TransformSupport XSL import not finding relative path
CVE-2015-0254 - Java Standard Tag Library (JSTL) allows processing of untrusted XML documents
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.