The vulnerable system is bound to the network stack and the set of possible attackers extends beyond the other options listed below, up to and including the entire Internet. Such a vulnerability is often termed “remotely exploitable” and can be thought of as an attack being exploitable at the protocol level one or more network hops away (e.g., across one or more routers). An example of a network attack is an attacker causing a denial of service by sending a specially crafted TCP packet across a wide area network (e.g., CVE-2004-0230).
Attack Complexity
Low
AC
The attacker must take no measurable action to exploit the vulnerability. The attack requires no target-specific circumvention to exploit the vulnerability. An attacker can expect repeatable success against the vulnerable system.
Privileges Required
Low
PR
The attacker requires privileges that provide basic capabilities that are typically limited to settings and resources owned by a single low-privileged user. Alternatively, an attacker with Low privileges has the ability to access only non-sensitive resources.
Scope
Unchanged
S
An exploited vulnerability can only affect resources managed by the same security authority. In the case of a vulnerability in a virtualized environment, an exploited vulnerability in one guest instance would not affect neighboring guest instances.
Confidentiality
High
C
There is total information disclosure, resulting in all data on the system being revealed to the attacker, or there is a possibility of the attacker gaining control over confidential data.
Integrity
High
I
There is a total compromise of system integrity. There is a complete loss of system protection, resulting in the attacker being able to modify any file on the target system.
Availability
High
A
There is a total shutdown of the affected resource. The attacker can deny access to the system or data, potentially causing significant loss to the organization.
Background
==========
Struts is an open source framework for building web applications. The
core of the Struts framework is a flexible control layer based on
standard technologies such as Java Servlets, JavaBeans, resource
bundles, and the Extensible Markup Language (XML). Struts can be used
with different Java engines, such as WebLogic, TomCat, JRun, etc.
Scope
=====
After identifying in Struts an error message echoing the path back to
the user, Hacktics has conducted a research of identifying a cross site
scripting vulnerability in the implementation of this error on different
application servers.
The Finding
===========
When attempting to access a non existent Struts action URL (including
the Struts URL suffix, e.g. .do), the struts request handler generates
an error echoing the path of the requested action. The mechanism
generating this error does not perform sufficient input validation nor
perform HTML encoding of the output, thus exposing the system, in some
environments, to a Cross Site Scripting attack.
For detailed description and exploit please visit
http://www.hacktics.com/AdvStrutsNov05.html
Versions Tested
===============
Vulnerable
Struts 1.2.7 Running on WebLogic 8.1 SP4
Struts 1.2.7 Running on WebLogic 8.1 SP5
Struts 1.2.7 Running on Resin Web Server
Non Vulnerable
Struts Running on Apache Tomcat 5.5.9
Struts Running on Apache Tomcat 5.5.12
Solution
========
The Apache Struts group has been notified of this vulnerability on
November 3rd, and has fixed the problem in the new Struts release
(1.2.8). Upgrading to the new version will eliminate the threat.
Alternatively, a work around is available on existing versions by
configuring the web server to display custom error messages rather than
the default ones.
-----------------------
Irene Abezgauz
Application Security Consultant
Hacktics Ltd.
Mobile: +972-54-6545405
Web: http://www.hacktics.com
This information is provided for TESTING and LEGAL RESEARCH purposes only. All trademarks used are properties of their respective owners. By visiting this website you agree to Terms of Use and Privacy Policy and Impressum