When the product encounters an error condition or failure, its design requires it to fall back to a state that is less secure than other options that are available, such as selecting the weakest encryption algorithm or using the most permissive access control restrictions.
By entering a less secure state, the product inherits the weaknesses associated with that state, making it easier to compromise. At the least, it causes administrators to have a false sense of security. This weakness typically occurs as a result of wanting to "fail functional" to minimize administration and support costs, instead of "failing safe."
Time of Introduction
Architecture and Design
Technical Impact: Bypass protection
Intended access restrictions can be bypassed, which is often
contradictory to what the product's administrator expects.
Switches may revert their functionality to that of hubs when the
table used to map ARP information to the switch interface overflows, such as
when under a spoofing attack. This results in traffic being broadcast to an
eavesdropper, instead of being sent only on the relevant switch interface.
To mitigate this type of problem, the developer could limit the number of
ARP entries that can be recorded for a given switch interface, while other
interfaces may keep functioning normally. Configuration options can be
provided on the appropriate actions to be taken in case of a detected
failure, but safe defaults should be used.
The failure of connection attempts in a web
browser resets DNS pin restrictions. An attacker can then bypass the same
origin policy by rebinding a domain name to a different IP address. This was
an attempt to "fail functional."
Incorrect prioritization leads to the selection of
a weaker cipher. Although it is not known whether this issue occurred in
implementation or design, it is feasible that a poorly designed algorithm
could be a factor.
Phase: Architecture and Design
Subdivide and allocate resources and components so that a failure in
one part does not affect the entire product.
the weakness exists independent of other weaknesses)
Since design issues are hard to fix, they are rarely publicly reported, so
there are few CVE examples of this problem as of January 2008. Most publicly
reported issues occur as the result of an implementation error instead of
design, such as CVE-2005-3177 (Improper handling of large numbers of
resources) or CVE-2005-2969 (inadvertently disabling a verification step,
leading to selection of a weaker protocol).