MPSB03-07 Security Patch available for ColdFusion MX and JRun 4.0 Web Services DoS
Originally posted: December 9, 2003
Last updated: June 24, 2004
Summary
ColdFusion MX and JRun 4 Web Services may be vulnerable to a Denial-of-Service attack because they use the default Apache Crimson XML parser to process Web Service SOAP requests.
ColdFusion Version 5 and earlier versions do not support Web Services and are not vulnerable.
If using Web Services with ColdFusion MX or JRun 4, this fix should be applied if either:
- the Web Services are available publicly
- the Web Services may be accessed by a potential attacker
NOTE: This fix is NOT required if ColdFusion MX or JRun 4.0 is used only to consume Web Services provided by others.
This fix supplies a replacement Crimson XML parser in crimson.jar. This replacement parser is not vulnerable to the Denial-of-Service attack.
Severity Rating
Macromedia categorizes this issue as a critical update and recommends users immediately patch their ColdFusion MX or JRun 4.0 installation.
Issues
ColdFusion MX 6.1 running in the Java 1.4.2 (or 1.4.1 for HP-UX) runtime environment uses the vulnerable Crimson XML parser included with the Java Runtime Environment.
ColdFusion MX 6.1 for J2EE running in a 3rd-party J2EE server which uses a JRE version 1.4.0 or lower will use the vulnerable Crimson XML parser supplied with ColdFusion MX in crimson.jar.
ColdFusion 6.0 Standalone uses the vulnerable Crimson XML parser supplied with ColdFusion MX in /runtime/lib/jrun.jar. ColdFusion MX 6.0 customers should upgrade to 6.1, then apply the patch.
JRun 4.0 includes the vulnerable Crimson XML parser in /lib/jrun.jar
Affected Software Versions
- JRun 4.0 (all editions)
- ColdFusionMX 6.0, 6.1
- ColdFusionMX 6.0, 6.1 J2EE (all editions)
What Macromedia is Doing
Macromedia has published this bulletin including patches and notified customers using affected versions.
What Customers Should Do
Download the security update patches from the location specified below
| ColdFusion MX 6.0,6.1/JRun 4 | Crimson XML parser patch |
| ColdFusion MX J2EE IBM WebSphere | Crimson XML parser patch (Websphere only) |
Making the Changes
NOTE: Back up your existing files before making changes. As always, test the changes in a non-production environment before applying the changes to production servers.
Unzip the patch and replace the Crimson parser (crimson.jar) based on the version and edition of ColdFusion MX and JRun.
ColdFusion MX 6.1 STANDALONE
Add the following JVM initialization options (case-sensitive) to the JVM Arguments in the ColdFusion Administrator "Java and JVM Settings" page. These are added to the end of the existing JVM arguments. JVM arguments are separated by a single space.
-Djavax.xml.parsers.SAXParserFactory=com.macromedia.crimson.jaxp.SAXParserFactoryImpl -Djavax.xml.parsers.DocumentBuilderFactory=com.macromedia.crimson.jaxp.DocumentBuilderFactoryImpl
- Stop ColdFusion MX
- Replace the crimson.jar in the {cf_root}/lib directory with the downloaded replacement crimson.jar
- Start ColdFusion MX
ColdFusion MX 6.1 J2EE on OTHER J2EE SERVERS
If the J2EE server runs JRE 1.4.0 or earlier, NO JVM initialization option is needed
- Stop ColdFusion MX
- Replace the crimson.jar in the {cf_root}/lib directory with the downloaded replacement crimson.jar
- Start ColdFusion MX
If the J2EE server runs JRE 1.4.1 or later, JVM initialization options may be needed.
ColdFusion MX uses the default XML SAX parser for your J2EE environment. Usually this is the vulnerable Crimson parser which is in the JRE-supplied jre/lib/rt.jar for JRE version 1.4.1 or higher.
Contact your J2EE vendor to learn if this vulnerability applies to your environment, and for instructions for configuring a non-vulnerable replacement. If no other solution is available from your J2EE vendor, the following steps can be used to protect ColdFusion MX. Note that these steps may interefere with XML processing of other applications running in the same instance with ColdFusion MX.
- Stop your J2EE server
- Replace the crimson.jar in the {cf_root}/lib directory with the downloaded replacement crimson.jar
- Add the following two JVM initialization options (case-sensitive) to the JVM Arguments as documented for your J2EE server. These are added to the end of the existing JVM arguments. JVM arguments are separated by a single space.
- Make sure that the new {cf_root}/lib/crimson.jar is in your CLASSPATH. Check your J2EE documentation to see how to do this for your J2EE server.
- Start your J2EE server.
-Djavax.xml.parsers.SAXParserFactory=com.macromedia.crimson.jaxp.SAXParserFactoryImpl -Djavax.xml.parsers.DocumentBuilderFactory=com.macromedia.crimson.jaxp.DocumentBuilderFactoryImpl
ColdFusion MX 6.0—STANDALONE
- Upgrade to ColdFusion 6.1.
- Follow the instructions for ColdFusion MX 6.1 STANDALONE above
ColdFusion MX 6.1 with JRun 4.0
Follow the JRun 4.0 instructions for correcting this vulnerability below.
JRun 4.0
- Add the following JVM initialization options (case-sensitive) to the VM Arguments in the JRun Management Console "Settings/JVM Settings" page. These are added to the end of the existing JVM arguments in the jvm.config. JVM arguments are separated by a single space.
- Stop JRun
- Place the crimson.jar in the {jrun_root}/servers/lib directory.
NOTE: If the /lib doesn't exist, create it. - Start JRun
-Djavax.xml.parsers.SAXParserFactory=com.macromedia.crimson.jaxp.SAXParserFactoryImpl -Djavax.xml.parsers.DocumentBuilderFactory=com.macromedia.crimson.jaxp.DocumentBuilderFactoryImpl
Acknowledgements
Macromedia would like to thank Amit Klein (Amit.Klein@sanctuminc.com) from Sanctum, Inc for reporting this vulnerability and for working with us to help protect our customers from security attacks.
Revisions
June 24, 2004 — Bulletin updated.
December 9, 2003 — Bulletin first created.
Reporting Security Issues
Macromedia is committed to addressing security issues and providing customers with the information on how they can protect themselves. If you identify what you believe may be a security issue with a Macromedia product, please send an email to secure@macromedia.com. We will work to appropriately address and communicate the issue.
Receiving Security Bulletins
When Macromedia becomes aware of a security issue that we believe significantly affects our products or customers, we will notify customers when appropriate. Typically this notification will be in the form of a security bulletin explaining the issue and the response. Macromedia customers who would like to receive notification of new security bulletins when they are released can sign up for our security notification service.
For additional information on security issues at Macromedia, please visit: http://www.macromedia.com/security.
ANY INFORMATION, PATCHES, DOWNLOADS, WORKAROUNDS OR FIXES PROVIDED BY MACROMEDIA IN THIS BULLETIN ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MACROMEDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED OR OTHERWISE, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ALSO, THERE IS NO WARRANTY OF NON-INFRINGEMENT, TITLE OR QUIET ENJOYMENT. (USA ONLY) SOME STATES DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY NOT APPLY TO YOU.
IN NO EVENT SHALL MACROMEDIA, INC. OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING, WITHOUT LIMITATION, DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, SPECIAL, PUNITIVE, COVER, LOSS OF PROFITS, BUSINESS INTERRUPTION OR THE LIKE, OR LOSS OF BUSINESS DAMAGES, BASED ON ANY THEORY OF LIABILITY INCLUDING BREACH OF CONTRACT, BREACH OF WARRANTY, TORT(INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR OTHERWISE, EVEN IF MACROMEDIA, INC. OR ITS SUPPLIERS OR THEIR REPRESENTATIVES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. (USA ONLY) SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, SO THE ABOVE EXCLUSION OR LIMITATION MAY NOT APPLY TO YOU AND YOU MAY ALSO HAVE OTHER LEGAL RIGHTS THAT VARY FROM STATE TO STATE.
Macromedia reserves the right, from time to time, to update the information in this document with current information.