CWE-654: Reliance on a Single Factor in a Security Decision
Reliance on a Single Factor in a Security Decision
Weakness ID: 654 (Weakness Base)
Status: Draft
Description
Description Summary
A protection mechanism relies exclusively, or to a large extent, on the evaluation of a single condition or the integrity of a single object or entity in order to make a decision about granting access to restricted resources or functionality.
Alternate Terms
Separation of Privilege:
Some people and publications use the term "Separation of Privilege" to describe this weakness, but this term has dual meanings in current usage. While this node is closely associated with the original definition of "Separation of Privilege" by Saltzer and Schroeder, others use the same term to describe poor compartmentalization (CWE-653). Because there are multiple interpretations, use of the "Separation of Privilege" term is discouraged.
Time of Introduction
Architecture and Design
Implementation
Operation
Applicable Platforms
Languages
All
Common Consequences
Scope
Effect
Access Control
Technical Impact: Gain privileges / assume
identity
If the single factor is compromised (e.g. by theft or spoofing), then
the integrity of the entire security mechanism can be violated with
respect to the user that is identified by that factor.
Non-Repudiation
Technical Impact: Hide activities
It can become difficult or impossible for the product to be able to
distinguish between legitimate activities by the entity who provided the
factor, versus illegitimate activities by an attacker.
Demonstrative Examples
Example 1
Password-only authentication is perhaps the most well-known example
of use of a single factor. Anybody who knows a user's password can
impersonate that user.
Example 2
When authenticating, use multiple factors, such as "something you
know" (such as a password) and "something you have" (such as a
hardware-based one-time password generator, or a biometric
device).
Potential Mitigations
Use multiple simultaneous checks before granting access to critical
operations or granting critical privileges. A weaker but helpful
mitigation is to use several successive checks (multiple layers of
security).
Use redundant access rules on different choke points (e.g.,
firewalls).
Weakness Ordinalities
Ordinality
Description
Primary
(where
the weakness exists independent of other weaknesses)
This node is closely associated with the term "Separation of Privilege." This term is used in several different ways in the industry, but they generally combine two closely related principles: compartmentalization (CWE-653) and using only one factor in a security decision (this node). Proper compartmentalization implicitly introduces multiple factors into a security decision, but there can be cases in which multiple factors are required for authentication or other mechanisms that do not involve compartmentalization, such as performing all required checks on a submitted certificate. It is likely that CWE-653 and CWE-654 will provoke further discussion.