[
https://issues.apache.org/struts/browse/WW-3142?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Musachy Barroso resolved WW-3142.
---------------------------------
Resolution: Fixed
Fix Version/s: (was: 2.1.9)
2.1.8
merged into trunk, thanks for the patch!(and sorry it took me so long to merge)
> Convention plugin support for default actionless dispatcher results exposes
> raw source code of index.jsp files on Google AppEngine
> ----------------------------------------------------------------------------------------------------------------------------------
>
> Key: WW-3142
> URL: https://issues.apache.org/struts/browse/WW-3142
> Project: Struts 2
> Issue Type: Bug
> Components: Plugin - Convention
> Affects Versions: 2.1.6
> Environment: Google AppEngine Java SDK v1.2.1, Struts
> v2.1.7-SNAPSHOT, xwork-2.1.4
> Reporter: Kent R. Spillner
> Assignee: Musachy Barroso
> Fix For: 2.1.8
>
> Attachments: struts2-plugin-convention-default-actionless-result.diff
>
>
> As initially documented in [WW-3114], a bug exists in either Struts or
> AppEngine which causes the raw source code of JSP files under WEB-INF to be
> served to clients as plain/text. This potentially is a very serious security
> hole, although limited in scope. Although potentially a bug in AppEngine
> only, I'm logging this as a separate JIRA issue with Struts because I believe
> Struts can easily be improved to avoid the bug altogether.
> The problem is caused by an extra path separator character at the beginning
> of the filename "/index.jsp"
> Assume the file WEB-INF/content/index.jsp exists and a request for the URL
> http://<app>.appspot.com/ then:
> ConventionUnknownHandler#handleUnknownAction() line 136 explicitly sets
> "/index" as the last path component before the file extension, but that's ok
> because servletContext.getResource(path) on line 194 returns a non-null value
> on AppEngine even with the double slash. The if block beginning on line 141
> is skipped because the action name is empty, but line 172 is executed because
> resource isn't null. At this point, resource.path still includes the double
> slash and resource.ext is "jsp"
> This behavior seems correct to me, and nothing explicitly uses the path in
> ConventionUnknownHandler#buildActionConfig() lines 206-224. I guess the code
> that has difficulty with the double slash is buried somewhere in
> ResultConfig.Builder or ActionConfig.Builder, but I haven't looked into the
> xwork source yet.
> If anyone has any pointers or suggestions for further promising areas of the
> code to look into to in order to correctly solve this, I'd greatly appreciate
> it!
> Thanks in advance!
> Best,
> Kent
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.