Details
Description
The Derby XMLPARSE operator ultimately makes a call to an external JAXP parser (ex. Xerces or Crimson) to parse an XML value. If the XML value that is being parsed references an external DTD, then the JAXP parser will need to read the DTD file to complete parsing. However, the current code in SqlXmlUtil.java does not use a privileged block when it calls out to the JAXP parser. As a result, when a user who is running with a security manager tries to insert a document that references an external DTD, the call to XMLPARSE will fail with a security exception--even if the JAXP parser has the required "read" permissions.
Attachments
Attachments
Issue Links
- blocks
-
DERBY-1758 Enable xmlSuite to run as part of derbyall in environments that have the required external jars.
- Closed
- relates to
-
DERBY-6807 XXE attack possible by using XmlVTI and the XML datatype
- Closed