Category: OWASP Top Ten 2021 Category A04:2021 - Insecure Design

Incomplete
Summary

Weaknesses in this category are related to the A04 "Insecure Design" category in the OWASP Top Ten 2021.

Membership
IDNameDescription
CWE-1021Improper Restriction of Rendered UI Layers or FramesThis vulnerability occurs when a web application fails to properly control whether its pages can be embedded within frames or UI layers from other websites, potentially misleading users about which site they are interacting with.
CWE-1173Improper Use of Validation FrameworkThis vulnerability occurs when a software application either fails to use or incorrectly implements a built-in or library-provided input validation framework.
CWE-183Permissive List of Allowed InputsThis vulnerability occurs when an application's security filter uses an allowlist that is too broad, mistakenly permitting dangerous inputs that should have been blocked. The flawed assumption that everything on the list is safe creates a direct path for attackers to exploit the system.
CWE-209Generation of Error Message Containing Sensitive InformationThis vulnerability occurs when an application reveals sensitive details about its internal systems, user data, or environment within error messages shown to users.
CWE-213Exposure of Sensitive Information Due to Incompatible PoliciesThis vulnerability occurs when a system's data handling aligns with the developer's security rules but accidentally reveals information that other stakeholders—like users or administrators—consider confidential. Essentially, the developer's policy conflicts with the security expectations of the people who use or manage the product.
CWE-235Improper Handling of Extra ParametersThis vulnerability occurs when a system fails to properly manage situations where it receives more parameters, fields, or arguments with the same name than it was designed to handle.
CWE-256Plaintext Storage of a PasswordThis vulnerability occurs when an application stores user passwords as readable text instead of using secure, one-way hashing. This insecure practice exposes credentials in memory, files, or databases where attackers can easily retrieve them.
CWE-257Storing Passwords in a Recoverable FormatThis vulnerability occurs when an application stores user passwords in a format that can be easily reversed or decrypted back to their original plaintext form. This practice, often called storing 'recoverable' passwords, defeats the core purpose of password protection. It allows anyone with access to the stored data—including attackers who breach the system or even malicious insiders—to obtain and reuse the actual passwords on other accounts, offering no real security advantage over storing them in plain text.
CWE-266Incorrect Privilege AssignmentThis vulnerability occurs when a system mistakenly grants a user, process, or entity a specific permission or privilege they should not have. This error creates an unintended level of access, allowing the actor to perform actions beyond their intended authority.
CWE-269Improper Privilege ManagementThis vulnerability occurs when an application fails to correctly manage user permissions, allowing someone to perform actions or access data beyond their intended authority.
CWE-280Improper Handling of Insufficient Permissions or Privileges This vulnerability occurs when a system fails to properly manage situations where it lacks the necessary permissions to perform an action or access a resource. This flawed handling can force the application into unintended states or error paths, potentially leading to crashes, data corruption, or security bypasses.
CWE-311Missing Encryption of Sensitive DataThis vulnerability occurs when an application stores or sends sensitive information without first encrypting it, leaving the data exposed.
CWE-312Cleartext Storage of Sensitive InformationThis vulnerability occurs when an application stores sensitive data like passwords, credit card numbers, or personal information in plain text, without any encryption. This unsecured data is kept in files, databases, caches, or logs that could be accessed by unauthorized users or systems.
CWE-313Cleartext Storage in a File or on DiskThis vulnerability occurs when an application writes sensitive data, such as passwords or personal information, directly to a file or disk without using encryption.
CWE-316Cleartext Storage of Sensitive Information in MemoryThis vulnerability occurs when an application stores sensitive data, such as passwords or encryption keys, in memory without any form of encryption or protection.
CWE-419Unprotected Primary ChannelThis vulnerability occurs when an application exposes a privileged administrative interface or restricted functionality through a primary channel (like a specific port, endpoint, or protocol) without implementing adequate security controls to protect it.
CWE-430Deployment of Wrong HandlerThis vulnerability occurs when a system incorrectly assigns or routes an object to the wrong processing component.
CWE-434Unrestricted Upload of File with Dangerous TypeThis vulnerability occurs when an application accepts file uploads without properly restricting the file types, allowing attackers to upload and execute malicious files on the server.
CWE-444Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')This weakness occurs when a proxy, firewall, or other intermediary HTTP agent interprets a malformed HTTP request or response differently than the final destination server or client. This inconsistency allows an attacker to craft messages that bypass the intermediary's security checks.
CWE-451User Interface (UI) Misrepresentation of Critical InformationThis vulnerability occurs when a user interface fails to accurately display or highlight crucial information, potentially misleading users about the true state of the system or the source of data. Attackers exploit this weakness to trick users into performing unintended actions, often as part of phishing campaigns or other deception-based attacks.
CWE-472External Control of Assumed-Immutable Web ParameterThis vulnerability occurs when a web application incorrectly trusts data that appears to be fixed or hidden from the user, such as values in hidden form fields, cookies, or URL parameters. Because this data is actually controllable by the client, attackers can modify it to bypass security checks or corrupt application logic.
CWE-501Trust Boundary ViolationThis vulnerability occurs when an application incorrectly stores or processes trusted and untrusted data together within the same structure, such as an object, array, or message.
CWE-522Insufficiently Protected CredentialsThis vulnerability occurs when an application handles sensitive credentials like passwords or API keys in an insecure way, making them easy for attackers to steal during transmission or while stored.
CWE-525Use of Web Browser Cache Containing Sensitive InformationThis vulnerability occurs when a web application fails to implement secure caching directives, allowing sensitive user data or pages to be stored in the browser's cache where unauthorized parties could retrieve them.
CWE-539Use of Persistent Cookies Containing Sensitive InformationThis vulnerability occurs when a web application stores sensitive data, like authentication details or personal information, within persistent cookies that remain on a user's device.
CWE-579J2EE Bad Practices: Non-serializable Object Stored in SessionThis vulnerability occurs when a Java application stores an object in the user's session that cannot be serialized, which can break critical application features and hurt reliability.
CWE-598Use of GET Request Method With Sensitive Query StringsThis vulnerability occurs when a web application handles sensitive data, like passwords or session tokens, by passing them within the URL's query string using an HTTP GET request.
CWE-602Client-Side Enforcement of Server-Side SecurityThis vulnerability occurs when a server incorrectly trusts the client to enforce critical security rules, such as input validation or access controls, instead of performing these checks itself.
CWE-642External Control of Critical State DataThis vulnerability occurs when an application stores security-sensitive state data in locations that unauthorized users can access and modify.
CWE-646Reliance on File Name or Extension of Externally-Supplied FileThis vulnerability occurs when an application uses the name or extension of an uploaded file to decide how to handle it. Attackers can manipulate this by uploading files with deceptive names, causing the application to process them incorrectly and potentially dangerously.
CWE-650Trusting HTTP Permission Methods on the Server SideThis vulnerability occurs when a server incorrectly assumes that HTTP GET requests are always safe and cannot change server-side data. Attackers can exploit this flawed assumption to bypass security controls and perform unauthorized actions like modifying or deleting resources.
CWE-653Improper Isolation or CompartmentalizationThis vulnerability occurs when an application fails to enforce strong boundaries between components that operate at different security levels, allowing lower-privileged functions to improperly interact with higher-privileged ones.
CWE-656Reliance on Security Through ObscurityThis weakness occurs when a system's primary defense relies on hiding how it works, rather than using a robust, well-tested security mechanism. If an attacker discovers the hidden details—like a secret algorithm or hardcoded key—the protection fails completely.
CWE-657Violation of Secure Design PrinciplesThis weakness occurs when a system's architecture or design fails to follow fundamental security principles, creating a flawed foundation that can lead to multiple vulnerabilities.
CWE-73External Control of File Name or PathThis vulnerability occurs when an application uses unvalidated user input to construct file or directory paths for filesystem operations.
CWE-799Improper Control of Interaction FrequencyThis vulnerability occurs when an application fails to properly restrict how often or how many times a user or automated system can interact with it.
CWE-807Reliance on Untrusted Inputs in a Security DecisionThis vulnerability occurs when an application's security check depends on user-controlled data that can be manipulated to bypass protection mechanisms, such as authentication or authorization gates.
CWE-841Improper Enforcement of Behavioral WorkflowThis weakness occurs when an application requires a user to follow a specific sequence of actions, but fails to enforce that order. Attackers can exploit this by skipping steps, performing actions out of sequence, or interrupting the flow, which can corrupt the business logic or put the system into an invalid state.
CWE-927Use of Implicit Intent for Sensitive CommunicationThis vulnerability occurs when an Android app uses an implicit intent to send sensitive data, allowing any other app on the device to potentially intercept and read that information.
CWE-1344Weaknesses in OWASP Top Ten (2021)CWE entries in this view (graph) are associated with the OWASP Top Ten, as released in 2021.
CWE-840Business Logic ErrorsWeaknesses in this category identify some of the underlying problems that commonly allow attackers to manipulate the business logic of an application. Errors in business logic can be devastating to an entire application. They can be difficult to find automatically, since they typically involve legitimate use of the application's functionality. However, many business logic errors can exhibit patterns that are similar to well-understood implementation and design weaknesses.
Vulnerability Mapping Notes
Usage: Prohibited
Reasons: Category
Rationale:
This entry is a Category. Using categories for mapping has been discouraged since 2019. Categories are informal organizational groupings of weaknesses that can help CWE users with data aggregation, navigation, and browsing. However, they are not weaknesses in themselves.
Comment:
See member weaknesses of this category.