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
Integrity
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.
Accountability
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
Phase
Description
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).
Other Notes
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.
Weakness Ordinalities
Ordinality
Description
Primary
(where the
weakness exists independent of other weaknesses)