CWEweakness

CWE-478 Missing Default Case in Multiple Condition Expression

Official page ↗
Abstraction
Base
Structure
Simple
Status
Draft
Languages
C, C#, C++, Java, JavaScript, Python
CWE version
5.0

Description

The code does not have a default case in an expression with multiple conditions, such as a switch statement.

Common consequences

• Integrity: Varies by Context, Alter Execution Logic — If a multiple-condition expression (such as a switch in C) omits the default case but does not consider or handle all possible values that could occur, then this might lead to complex logical errors and resultant weaknesses. Because of this, further decisions are made based on poor information, and cascading failure results. Depending on the context in which the expression is used, any consequences may result: e.g., issues of confidentiality, authentication, authorization, availability, integrity, accountability, or non-repudiation.

Potential mitigations

• [Implementation] Ensure that there are no cases unaccounted for when adjusting program flow or values based on the value of a given variable. In the case of switch style statements, the very simple act of creating a default case can, if done correctly, mitigate this situation. Often however, the default case is used simply to represent an assumed option, as opposed to working as a check for invalid input. This is poor practice and in some cases is as bad as omitting a default case entirely.

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.)

Related

Child of · CWE (1)

  • CWE-1023 Incomplete Comparison with Missing Factors weakness

Referenced by CVE · weakness (1)

  • CVE-2026-33064 Free5GC is an open-source Linux Foundation project for 5th generation (5G) mobile core networks. vulnerability

Referenced by CWE · has member (1)

Referenced by OWASP · mapped cwe (1)

  • A10:2025 Mishandling of Exceptional Conditions Top 10 2025