CWE
Home > CWE List > CWE-472 Individual Dictionary Definition (Draft 9)   View the CWE List

CWE-472 Individual Dictionary Definition (Draft 9)

External Control of Assumed-Immutable Web Parameter
Weakness ID
Status: Draft

472 (Weakness Base)

Description

Summary

The web application does not sufficiently verify inputs that are assumed to be immutable but are actually externally controllable, such as hidden form fields.

Extended Description

If a web product does not properly protect assumed-immutable values from modification in hidden form fields, parameters, cookies, or URLs, this can lead to modification of critical data. Web applications often mistakenly make the assumption that data passed to the client in hidden fields or cookies is not susceptible to tampering. Failure to validate portions of data that are user-controllable can lead to the application processing incorrect, and often malicious, input.

Alternate Terms

Assumed-Immutable Parameter Tampering

Potential Mitigations

It is recommended not to pass hidden fields or cookies (apart from a session cookie) to the server. Furthermore, do not use parameters that are not from immediate user input.

Assume all input is malicious. Use an appropriate combination of black lists and white lists to ensure only valid and expected input is processed by the system.

Observed Examples
ReferenceDescription
CVE-2002-0108Forum product allows spoofed messages of other users via hidden form fields for name and e-mail address.
CVE-2000-0253Shopping cart allows price modification via hidden form field.
CVE-2000-0254Shopping cart allows price modification via hidden form field.
CVE-2000-0926Shopping cart allows price modification via hidden form field.
CVE-2000-0101Shopping cart allows price modification via hidden form field.
CVE-2000-0102Shopping cart allows price modification via hidden form field.
CVE-2000-0758Allows admin access by modifying value of form field.
CVE-2002-1880Read messages by modifying message ID parameter.
CVE-2000-1234Send email to arbitrary users by modifying email parameter.
CVE-2005-1652Authentication bypass by setting a parameter.
CVE-2005-1784Product does not check authorization for configuration change admin script, leading to password theft via modified e-mail address field.
CVE-2005-2314Logic error leads to password disclosure.
CVE-2005-1682Modification of message number parameter allows attackers to read other people's messages.
Context Notes

This is a primary weakness for many other weaknesses and functional consequences, including XSS, SQL injection, path disclosure, and file inclusion. For example, custom cookies commonly store session data or persistent data across sessions. This kind of session data is normally involved in security related decisions on the server side, such as user authentication and access control. Thus, the cookies might contain sensitive data such as user credentials and privileges. This is a dangerous practice, as it can often lead to improper reliance on the value of the client-provided cookie by the server side application. Without appropriate protection mechanisms, the client can easily tamper with cookies. Reliance on the cookies without detailed validation can lead to problems such as SQL injection. If you use cookie values for security related decisions on the server side, manipulating the cookies might lead to violations of security policies such as authentication bypassing, user impersonation and privilege escalation. In addition, storing sensitive data in the cookie without appropriate protection can also lead to disclosure of sensitive user data, especially data stored in persistent cookies.

Hidden fields should not be trusted as secure parameters. An attacker can intercept and alter hidden fields in a post to the server as easily as user input fields. An attacker can simply parse the HTML for the substring < input type "hidden" or even just "hidden". Hidden field values displayed later in the session, such as on the following page, can open a site up to cross-site scripting attacks.

This is a technology-specific MAID problem.

Relationships
NatureTypeIDName
ChildOfWeakness BaseWeakness BaseWeakness Base471Modification of Assumed-Immutable Data (MAID)
ChildOfViewView629
CanFollowWeakness BaseWeakness BaseWeakness Base656Design Principle Violation: Reliance on Security through Obscurity
IsRequiredByCompound Element: CompositeCompound Element: Composite384Session Fixation
Source Taxonomies

PLOVER - Web Parameter Tampering

Applicable Platforms

All

Related Attack Patterns
CAPEC-IDAttack Pattern Name
39Manipulating Opaque Client-based Data Tokens
31Accessing/Intercepting/Modifying HTTP Cookies
Page Last Updated: April 22, 2008