Issues » dotCMS template permissions allow arbitrary code execution

Issue: SI-3
Date: Apr 12, 2012, 8:00:00 PM
Severity: Medium
Requires Admin Access: Yes
Fix Version: 1.9.5.1
Credit: Cert.org / Ben Murphy
Description:

Overview

The dotCMS content management system version 1.9 and possibly earlier versions, contains a vulnerability that allows users with admin access the appropriate permissions to create a malicious template with arbitrary code. An authenticated dotCMS user with the permissions required to author and upload templates may create a malicious XSLT or Velocity template that can execute arbitrary java code. The arbitrary java code will run with the permissions of the web service account.

Impact

An authenticated attacker with the permissions to create a template may upload a malicious XSLT or Velocity template that can run arbitrary java code. In some cases, the attacker may be able to exploit this vulnerability to obtain a shell on the web server.

Mitigation:

dotCMS version 1.9.5.1 or 2.0.1 and later address these vulnerabilities. If you are unable to upgrade please consider the following workarounds.

Workarounds

Unmap the XSLT Tool in the toolbox.xml file or apply this XSLT Tool which is backported from 2.0 to 1.9

Add to system.properties the property: runtime.introspector.uberspect = org.apache.velocity.util.introspection.SecureUberspector

References
  • https://github.com/dotCMS/dotCMS/issues/261
  • https://github.com/dotCMS/dotCMS/issues/281
  • https://velocity.apache.org/engine/devel/apidocs/org/apache/velocity/util/introspection/SecureUberspector.html
  • http://www.kb.cert.org/vuls/id/898083