|
|
|
|
CWE-15 Individual Dictionary Definition (Draft 9)
Weakness ID
| Status: Incomplete 15 (Weakness Base) | | Description | Summary One or more system settings or configuration elements can be externally controlled by a user. Allowing external control of system settings can disrupt service or cause an application to behave in unexpected, and potentially malicious, ways. | | Potential Mitigations | Compartmentalize your system and determine where the trust boundaries exist. Any
input/control outside the trust boundary should be treated as potentially hostile. Because setting manipulation covers a diverse set of functions, any attempt at
illustrating it will inevitably be incomplete. Rather than searching for a tight-knit
relationship between the functions addressed in the setting manipulation category, take a step
back and consider the sorts of system values that an attacker should not be allowed to
control. In general, do not allow user-provided or otherwise untrusted data to control
sensitive values. The leverage that an attacker gains by controlling these values is not
always immediately obvious, but do not underestimate the creativity of your
attacker. | Demonstrative Examples | The following C code accepts a number as one of its command line parameters and sets
it as the host ID of the current machine. C Example: ... sethostid(argv[1]); ... Although a process must be privileged to successfully invoke sethostid(),
unprivileged users may be able to invoke the program. The code in this example allows user
input to directly control the value of a system setting. If an attacker provides a
malicious value for host ID, the attacker can misidentify the affected machine on the
network or cause other unintended behavior.
The following Java code snippet reads a string from an HttpServletRequest and sets it
as the active catalog for a database Connection. Java Example: ... conn.setCatalog(request.getParamter("catalog")); ... In this example, an attacker could cause an error by providing a nonexistent catalog
name or connect to an unauthorized portion of the database. | | Context Notes | Setting manipulation vulnerabilities occur when an attacker can control values that
govern the behavior of the system, manage specific resources, or in some way affect the
functionality of the application. | | Relationships | | | Source Taxonomies | 7 Pernicious Kingdoms - Setting Manipulation | | Related Attack Patterns | | CAPEC-ID | Attack Pattern Name |
|---|
| 13 | Subverting Environment Variable Values | | 76 | Manipulating Input to File System Calls | | 77 | Manipulating User-Controlled Variables | | 69 | Target Programs with Elevated Privileges |
|
|