Description Summary The software initializes critical internal variables using
inputs that can come from externally controlled sources.
Extended Description A software system should be reluctant to trust variables that have been initialized outside of its trust boundary, especially if they are initialized by users. They may have been initialized incorrectly. If an attacker can initialize the variable, then he/she can influence what the vulnerable system will do. Languages PHP: (Sometimes) All Platform Notes This is often found in PHP due to register_globals and the common practice of storing library/include files under the web document root so that they are available using a direct request. Example 1 In the Java example below, a system property controls the debug level of the application. If an attacker is able to modify the system property, he may be able to coax the application into divulging sensitive information by virtue of the fact that additional debug information is printed/exposed as the debug level increases. (Bad Code) Java int debugLevel =
Integer.getInteger("com.domain.application.debugLevel").intValue();
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Page Last Updated:
October 29, 2009
|
|
CWE is a Software Assurance strategic initiative sponsored by the National Cyber Security Division of the U.S. Department of Homeland Security. This Web site is hosted by The MITRE Corporation. Contact cwe@mitre.org for more information. |
|||
