CVE-2014-0053 Information Disclosure when using Grails
Grails by Pivotal
- Grails Resources plugin 1.0.0 to 1.2.5
Products Known to Depend on the Affected Product
- Grails 2.0.0 to 2.3.6
The Grails resources plug-in, a default dependency of Grails since 2.0.0, does not block access to resources located under /WEB-INF or /META-INF by default. This means that both configuration files and class files are publicly accessible when they should be private. Further, the filtering mechanism that applies any configured block does not normalize the requested URI before filtering allowing the block to be bypassed via directory traversal.
Users of affected versions should apply the following mitigation:
- Upgrade the resources plug-in to 1.2.6, configure the resources plug-in to block access to resources under /WEB-INF and /META-INF and redeploy the application
- Prevent access to resources under /WEB-INF and /META-INF in the reverse proxy (if one is used)
- Possible configuration options to block access to /WEB-INF include adding the following to grails-app/conf/Config.groovy: grails.resources.adhoc.includes = ['/images/**', '/css/**', '/js/**', '/plugins/**'], grails.resources.adhoc.excludes = ['**/WEB-INF/**','**/META-INF/**']
The original /WEB-INF issue was identified by @Ramsharan065 but was reported publicly to the Grails team via Twitter. Pivotal strongly encourages responsible reporting of security vulnerabilities via email. The /META-INF aspects of this issue were identified by numerous individuals and reported responsibly to either the Grails team or to the Pivotal Security team. The directory traversal aspects of this vulnerability were reported to the Pivotal security team by Kristian Mattila.
2014-Feb-16: /WEB-INF issue made public
2014-Feb-19: Initial vulnerability report published
2014-Feb-27: Updated to include information on /META-INf and directory traversal aspects of this vulnerability. Separated out affected product and dependencies Extended affected Grails versions to include 2.3.6 Updated mitigations.