18
Nature Type ID Name Page
MemberOf 371 State Issues 2321
Relevant to the view "Seven Pernicious Kingdoms" (CWE-700)
Nature Type ID Name Page
ChildOf 20 Improper Input Validation 20
Applicable Platforms
Technology : Not Technology-Specific (Prevalence = Undetermined)
Technology : ICS/OT (Prevalence = Undetermined)
Common Consequences
Scope Impact Likelihood
Other Varies by Context
Detection Methods
Automated Static Analysis
Automated static analysis, commonly referred to as Static Application Security Testing (SAST),
can find some instances of this weakness by analyzing source code (or binary/compiled code)
without having to execute it. Typically, this is done by building a model of data flow and control
flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input)
with "sinks" (destinations where the data interacts with external components, a lower layer such
as the OS, etc.)
Effectiveness = High
Potential Mitigations
Phase: Architecture and Design
Strategy = Separation of Privilege
Compartmentalize the system to have "safe" areas where trust boundaries can be
unambiguously drawn. Do not allow sensitive data to go outside of the trust boundary and always
be careful when interfacing with a compartment outside of the safe area. Ensure that appropriate
compartmentalization is built into the system design, and the compartmentalization allows for and
reinforces privilege separation functionality. Architects and designers should rely on the principle
of least privilege to decide the appropriate time to use privileges and the time to drop privileges.
Phase: Implementation
Phase: Architecture and Design
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.
Phase: Implementation
Phase: Architecture and Design
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 the attacker.
Demonstrative Examples
Example 1:
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.
CWE Version 4.14
CWE-15: External Control of System or Configuration Setting
CWE-15: External Control of System or Configuration Setting