CWE

Common Weakness Enumeration

A Community-Developed List of Software Weakness Types

CWE/SANS Top 25 Most Dangerous Software Errors
Home > CWE List > CWE- Individual Dictionary Definition (3.1)  
ID

CWE VIEW: Architectural Concepts

View ID: 1008
Type: Graph
Status: Incomplete
Downloads: Booklet | CSV | XML
+ Objective
This view organizes weaknesses according to common architectural security tactics. It is intended to assist architects in identifying potential mistakes that can be made when designing software.
+ Audience
StakeholderDescription
Software DesignersSoftware designers may find this view useful as the weaknesses are organized by known security tactics, aiding the designer in embedding security throughout the design process instead of discovering weaknesses after the software has been built.
EducatorsEducators may use this view as reference material when discussing security by design or architectural weaknesses, and the types of mistakes that can be made.
+ Relationships
The following graph shows the tree-like relationships between weaknesses that exist at different levels of abstraction. At the highest level, categories and classes exist to group weaknesses. A category is a CWE entry that contains a set of other entries that share a common characteristic. Classes are weaknesses that is described in a very abstract fashion, typically independent of any specific language or technology and are more general than a base weakness. Within classes, base level weaknesses are used to present a more specific type of weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. A variant is a weakness that is described at a very low level of detail, typically limited to a specific language or technology. A chain is a set of weaknesses that must be reachable consecutively in order to produce an exploitable vulnerability. A composite is a set of weaknesses that must all be present simultaneously in order to produce an exploitable vulnerability.
Show Details:
1008 - Architectural Concepts
+CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic.Audit - (1009)
1008 (Architectural Concepts) > 1009 (Audit)
Weaknesses in this category are related to the design and architecture of audit-based components of the system. Frequently these deal with logging user activities in order to identify attackers and modifications to the system. The weaknesses in this category could lead to a degradation of the quality of the audit capability if they are not addressed when designing or implementing a secure architecture.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Output Neutralization for Logs - (117)
1008 (Architectural Concepts) > 1009 (Audit) > 117 (Improper Output Neutralization for Logs)
The software does not neutralize or incorrectly neutralizes output that is written to logs.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Omission of Security-relevant Information - (223)
1008 (Architectural Concepts) > 1009 (Audit) > 223 (Omission of Security-relevant Information)
The application does not record or display information that would be important for identifying the source or nature of an attack, or determining if an action is safe.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Obscured Security-relevant Information by Alternate Name - (224)
1008 (Architectural Concepts) > 1009 (Audit) > 224 (Obscured Security-relevant Information by Alternate Name)
The software records security-relevant information according to an alternate name of the affected entity, instead of the canonical name.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Information Exposure Through Log Files - (532)
1008 (Architectural Concepts) > 1009 (Audit) > 532 (Information Exposure Through Log Files)
Information written to log files can be of a sensitive nature and give valuable guidance to an attacker or expose sensitive user information.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Insufficient Logging - (778)
1008 (Architectural Concepts) > 1009 (Audit) > 778 (Insufficient Logging)
When a security-critical event occurs, the software either does not record the event or omits important details about the event when logging it.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Logging of Excessive Data - (779)
1008 (Architectural Concepts) > 1009 (Audit) > 779 (Logging of Excessive Data)
The software logs too much information, making log files hard to process and possibly hindering recovery efforts or forensic analysis after an attack.
+CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic.Authenticate Actors - (1010)
1008 (Architectural Concepts) > 1010 (Authenticate Actors)
Weaknesses in this category are related to the design and architecture of authentication components of the system. Frequently these deal with verifying the entity is indeed who it claims to be. The weaknesses in this category could lead to a degradation of the quality of authentication if they are not addressed when designing or implementing a secure architecture.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Empty Password in Configuration File - (258)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 258 (Empty Password in Configuration File)
Using an empty string as a password is insecure.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Use of Hard-coded Password - (259)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 259 (Use of Hard-coded Password)
The software contains a hard-coded password, which it uses for its own inbound authentication or for outbound communication to external components.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Not Using Password Aging - (262)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 262 (Not Using Password Aging)
If no mechanism is in place for managing password aging, users will have no incentive to update passwords in a timely manner.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Password Aging with Long Expiration - (263)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 263 (Password Aging with Long Expiration)
Allowing password aging to occur unchecked can result in the possibility of diminished password integrity.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Authentication - (287)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 287 (Improper Authentication)
When an actor claims to have a given identity, the software does not prove or insufficiently proves that the claim is correct.authentificationAuthC
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Authentication Bypass Using an Alternate Path or Channel - (288)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 288 (Authentication Bypass Using an Alternate Path or Channel)
A product requires authentication, but the product has an alternate path or channel that does not require authentication.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Authentication Bypass by Alternate Name - (289)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 289 (Authentication Bypass by Alternate Name)
The software performs authentication based on the name of a resource being accessed, or the name of the actor performing the access, but it does not properly check all possible names for that resource or actor.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Authentication Bypass by Spoofing - (290)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 290 (Authentication Bypass by Spoofing)
This attack-focused weakness is caused by improperly implemented authentication schemes that are subject to spoofing attacks.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Reliance on IP Address for Authentication - (291)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 291 (Reliance on IP Address for Authentication)
The software uses an IP address for authentication.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Using Referer Field for Authentication - (293)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 293 (Using Referer Field for Authentication)
The referer field in HTTP requests can be easily modified and, as such, is not a valid means of message integrity checking.referrer
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Authentication Bypass by Capture-replay - (294)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 294 (Authentication Bypass by Capture-replay)
A capture-replay flaw exists when the design of the software makes it possible for a malicious user to sniff network traffic and bypass authentication by replaying it to the server in question to the same effect as the original message (or with minor changes).
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Reflection Attack in an Authentication Protocol - (301)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 301 (Reflection Attack in an Authentication Protocol)
Simple authentication protocols are subject to reflection attacks if a malicious user can use the target machine to impersonate a trusted user.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Authentication Bypass by Assumed-Immutable Data - (302)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 302 (Authentication Bypass by Assumed-Immutable Data)
The authentication scheme or implementation uses key data elements that are assumed to be immutable, but can be controlled or modified by the attacker.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Incorrect Implementation of Authentication Algorithm - (303)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 303 (Incorrect Implementation of Authentication Algorithm)
The requirements for the software dictate the use of an established authentication algorithm, but the implementation of the algorithm is incorrect.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Missing Critical Step in Authentication - (304)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 304 (Missing Critical Step in Authentication)
The software implements an authentication technique, but it skips a step that weakens the technique.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Authentication Bypass by Primary Weakness - (305)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 305 (Authentication Bypass by Primary Weakness)
The authentication algorithm is sound, but the implemented mechanism can be bypassed as the result of a separate weakness that is primary to the authentication error.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Missing Authentication for Critical Function - (306)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 306 (Missing Authentication for Critical Function)
The software does not perform any authentication for functionality that requires a provable user identity or consumes a significant amount of resources.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Restriction of Excessive Authentication Attempts - (307)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 307 (Improper Restriction of Excessive Authentication Attempts)
The software does not implement sufficient measures to prevent multiple failed authentication attempts within in a short time frame, making it more susceptible to brute force attacks.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Use of Single-factor Authentication - (308)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 308 (Use of Single-factor Authentication)
The use of single-factor authentication can lead to unnecessary risk of compromise when compared with the benefits of a dual-factor authentication scheme.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Key Exchange without Entity Authentication - (322)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 322 (Key Exchange without Entity Authentication)
The software performs a key exchange with an actor without verifying the identity of that actor.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Weak Password Requirements - (521)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 521 (Weak Password Requirements)
The product does not require that users should have strong passwords, which makes it easier for attackers to compromise user accounts.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Authentication Bypass: OpenSSL CTX Object Modified after SSL Objects are Created - (593)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 593 (Authentication Bypass: OpenSSL CTX Object Modified after SSL Objects are Created)
The software modifies the SSL context after connection creation has begun.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Use of Client-Side Authentication - (603)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 603 (Use of Client-Side Authentication)
A client/server product performs authentication within client code but not in server code, allowing server-side authentication to be bypassed via a modified client that omits the authentication check.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Unverified Password Change - (620)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 620 (Unverified Password Change)
When setting a new password for a user, the product does not require knowledge of the original password, or using another form of authentication.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Weak Password Recovery Mechanism for Forgotten Password - (640)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 640 (Weak Password Recovery Mechanism for Forgotten Password)
The software contains a mechanism for users to recover or change their passwords without knowing the original password, but the mechanism is weak.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Use of Hard-coded Credentials - (798)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 798 (Use of Hard-coded Credentials)
The software contains hard-coded credentials, such as a password or cryptographic key, which it uses for its own inbound authentication, outbound communication to external components, or encryption of internal data.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Use of Password Hash Instead of Password for Authentication - (836)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 836 (Use of Password Hash Instead of Password for Authentication)
The software records password hashes in a data store, receives a hash of a password from a client, and compares the supplied hash to the hash obtained from the data store.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Use of Password Hash With Insufficient Computational Effort - (916)
1008 (Architectural Concepts) > 1010 (Authenticate Actors) > 916 (Use of Password Hash With Insufficient Computational Effort)
The software generates a hash for a password, but it uses a scheme that does not provide a sufficient level of computational effort that would make password cracking attacks infeasible or expensive.
+CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic.Authorize Actors - (1011)
1008 (Architectural Concepts) > 1011 (Authorize Actors)
Weaknesses in this category are related to the design and architecture of a system's authorization components. Frequently these deal with enforcing that agents have the required permissions before performing certain operations, such as modifying data. The weaknesses in this category could lead to a degredation of quality of the authorization capability if they are not addressed when designing or implementing a secure architecture.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Process Control - (114)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 114 (Process Control)
Executing commands or loading libraries from an untrusted source or in an untrusted environment can cause an application to execute malicious commands (and payloads) on behalf of an attacker.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.External Control of System or Configuration Setting - (15)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 15 (External Control of System or Configuration Setting)
One or more system settings or configuration elements can be externally controlled by a user.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Sensitive Data Under Web Root - (219)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 219 (Sensitive Data Under Web Root)
The application stores sensitive data under the web document root with insufficient access control, which might make it accessible to untrusted parties.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Sensitive Data Under FTP Root - (220)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 220 (Sensitive Data Under FTP Root)
The application stores sensitive data under the FTP document root with insufficient access control, which might make it accessible to untrusted parties.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Incorrect Privilege Assignment - (266)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 266 (Incorrect Privilege Assignment)
A product incorrectly assigns a privilege to a particular actor, creating an unintended sphere of control for that actor.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Privilege Defined With Unsafe Actions - (267)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 267 (Privilege Defined With Unsafe Actions)
A particular privilege, role, capability, or right can be used to perform unsafe actions that were not intended, even when it is assigned to the correct entity.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Privilege Chaining - (268)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 268 (Privilege Chaining)
Two distinct privileges, roles, capabilities, or rights can be combined in a way that allows an entity to perform unsafe actions that would not be allowed without that combination.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Privilege Management - (269)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 269 (Improper Privilege Management)
The software does not properly assign, modify, track, or check privileges for an actor, creating an unintended sphere of control for that actor.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Privilege Context Switching Error - (270)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 270 (Privilege Context Switching Error)
The software does not properly manage privileges while it is switching between different contexts that have different privileges or spheres of control.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Privilege Dropping / Lowering Errors - (271)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 271 (Privilege Dropping / Lowering Errors)
The software does not drop privileges before passing control of a resource to an actor that does not have those privileges.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Least Privilege Violation - (272)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 272 (Least Privilege Violation)
The elevated privilege level required to perform operations such as chroot() should be dropped immediately after the operation is performed.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Check for Dropped Privileges - (273)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 273 (Improper Check for Dropped Privileges)
The software attempts to drop privileges but does not check or incorrectly checks to see if the drop succeeded.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Handling of Insufficient Privileges - (274)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 274 (Improper Handling of Insufficient Privileges)
The software does not handle or incorrectly handles when it has insufficient privileges to perform an operation, leading to resultant weaknesses.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Incorrect Default Permissions - (276)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 276 (Incorrect Default Permissions)
The software, upon installation, sets incorrect permissions for an object that exposes it to an unintended actor.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Insecure Inherited Permissions - (277)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 277 (Insecure Inherited Permissions)
A product defines a set of insecure permissions that are inherited by objects that are created by the program.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Incorrect Execution-Assigned Permissions - (279)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 279 (Incorrect Execution-Assigned Permissions)
While it is executing, the software sets the permissions of an object in a way that violates the intended permissions that have been specified by the user.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Handling of Insufficient Permissions or Privileges - (280)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 280 (Improper Handling of Insufficient Permissions or Privileges )
The application does not handle or incorrectly handles when it has insufficient privileges to access resources or functionality as specified by their permissions. This may cause it to follow unexpected code paths that may leave the application in an invalid state.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Preservation of Permissions - (281)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 281 (Improper Preservation of Permissions)
The software does not preserve permissions or incorrectly preserves permissions when copying, restoring, or sharing objects, which can cause them to have less restrictive permissions than intended.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Ownership Management - (282)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 282 (Improper Ownership Management)
The software assigns the wrong ownership, or does not properly verify the ownership, of an object or resource.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Unverified Ownership - (283)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 283 (Unverified Ownership)
The software does not properly verify that a critical resource is owned by the proper entity.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Access Control - (284)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 284 (Improper Access Control)
The software does not restrict or incorrectly restricts access to a resource from an unauthorized actor.Authorization
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Authorization - (285)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 285 (Improper Authorization)
The software does not perform or incorrectly performs an authorization check when an actor attempts to access a resource or perform an action.AuthZ
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Incorrect User Management - (286)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 286 (Incorrect User Management)
The software does not properly manage a user within its environment.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Channel Accessible by Non-Endpoint ('Man-in-the-Middle') - (300)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 300 (Channel Accessible by Non-Endpoint ('Man-in-the-Middle'))
The product does not adequately verify the identity of actors at both ends of a communication channel, or does not adequately ensure the integrity of the channel, in a way that allows the channel to be accessed or influenced by an actor that is not an endpoint.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Predictable from Observable State - (341)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 341 (Predictable from Observable State)
A number or object is predictable based on observations that the attacker can make about the state of the system or network, such as time, process ID, etc.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Exposure of Private Information ('Privacy Violation') - (359)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 359 (Exposure of Private Information ('Privacy Violation'))
The software does not properly prevent private data (such as credit card numbers) from being accessed by actors who either (1) are not explicitly authorized to access the data or (2) do not have the implicit consent of the people to which the data is related.Privacy leakPrivacy leakage
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Exposure of File Descriptor to Unintended Control Sphere ('File Descriptor Leak') - (403)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 403 (Exposure of File Descriptor to Unintended Control Sphere ('File Descriptor Leak'))
A process does not close sensitive file descriptors before invoking a child process, which allows the child to perform unauthorized I/O operations using those descriptors.File descriptor leak
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Unprotected Primary Channel - (419)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 419 (Unprotected Primary Channel)
The software uses a primary channel for administration or restricted functionality, but it does not properly protect the channel.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Unprotected Alternate Channel - (420)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 420 (Unprotected Alternate Channel)
The software protects a primary channel, but it does not use the same level of protection for an alternate channel.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Direct Request ('Forced Browsing') - (425)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 425 (Direct Request ('Forced Browsing'))
The web application does not adequately enforce appropriate authorization on all restricted URLs, scripts, or files.forced browsing
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Untrusted Search Path - (426)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 426 (Untrusted Search Path)
The application searches for critical resources using an externally-supplied search path that can point to resources that are not under the application's direct control.Untrusted Path
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Unrestricted Upload of File with Dangerous Type - (434)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 434 (Unrestricted Upload of File with Dangerous Type)
The software allows the attacker to upload or transfer files of dangerous types that can be automatically processed within the product's environment.Unrestricted File Upload
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Exposure of CVS Repository to an Unauthorized Control Sphere - (527)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 527 (Exposure of CVS Repository to an Unauthorized Control Sphere)
The product stores a CVS repository in a directory or other container that is accessible to actors outside of the intended control sphere.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Exposure of Core Dump File to an Unauthorized Control Sphere - (528)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 528 (Exposure of Core Dump File to an Unauthorized Control Sphere)
The product generates a core dump file in a directory that is accessible to actors outside of the intended control sphere.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Exposure of Access Control List Files to an Unauthorized Control Sphere - (529)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 529 (Exposure of Access Control List Files to an Unauthorized Control Sphere)
The product stores access control list files in a directory or other container that is accessible to actors outside of the intended control sphere.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Exposure of Backup File to an Unauthorized Control Sphere - (530)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 530 (Exposure of Backup File to an Unauthorized Control Sphere)
A backup file is stored in a directory that is accessible to actors outside of the intended control sphere.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.File and Directory Information Exposure - (538)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 538 (File and Directory Information Exposure)
The product stores sensitive information in files or directories that are accessible to actors outside of the intended control sphere.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Incorrect Behavior Order: Authorization Before Parsing and Canonicalization - (551)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 551 (Incorrect Behavior Order: Authorization Before Parsing and Canonicalization)
If a web server does not fully parse requested URLs before it examines them for authorization, it may be possible for an attacker to bypass authorization protection.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Files or Directories Accessible to External Parties - (552)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 552 (Files or Directories Accessible to External Parties)
Files or directories are accessible in the environment that should not be.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Authorization Bypass Through User-Controlled SQL Primary Key - (566)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 566 (Authorization Bypass Through User-Controlled SQL Primary Key)
The software uses a database table that includes records that should not be accessible to an actor, but it executes a SQL statement with a primary key that can be controlled by that actor.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Authorization Bypass Through User-Controlled Key - (639)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 639 (Authorization Bypass Through User-Controlled Key)
The system's authorization functionality does not prevent one user from gaining access to another user's data or record by modifying the key value identifying the data.Insecure Direct Object ReferenceHorizontal Authorization
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.External Control of Critical State Data - (642)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 642 (External Control of Critical State Data)
The software stores security-critical state information about its users, or the software itself, in a location that is accessible to unauthorized actors.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Use of Non-Canonical URL Paths for Authorization Decisions - (647)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 647 (Use of Non-Canonical URL Paths for Authorization Decisions)
The software defines policy namespaces and makes authorization decisions based on the assumption that a URL is canonical. This can allow a non-canonical URL to bypass the authorization.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Insufficient Compartmentalization - (653)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 653 (Insufficient Compartmentalization)
The product does not sufficiently compartmentalize functionality or processes that require different privilege levels, rights, or permissions.Separation of Privilege
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Reliance on Security Through Obscurity - (656)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 656 (Reliance on Security Through Obscurity)
The software uses a protection mechanism whose strength depends heavily on its obscurity, such that knowledge of its algorithms or key data is sufficient to defeat the mechanism.Never Assuming your secrets are safe
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Exposure of Resource to Wrong Sphere - (668)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 668 (Exposure of Resource to Wrong Sphere)
The product exposes a resource to the wrong control sphere, providing unintended actors with inappropriate access to the resource.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Incorrect Resource Transfer Between Spheres - (669)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 669 (Incorrect Resource Transfer Between Spheres)
The product does not properly transfer a resource/behavior to another sphere, or improperly imports a resource/behavior from another sphere, in a manner that provides unintended control over that resource.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Lack of Administrator Control over Security - (671)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 671 (Lack of Administrator Control over Security)
The product uses security features in a way that prevents the product's administrator from tailoring security settings to reflect the environment in which the product is being used. This introduces resultant weaknesses or prevents it from operating at a level of security that is desired by the administrator.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.External Influence of Sphere Definition - (673)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 673 (External Influence of Sphere Definition)
The product does not prevent the definition of control spheres from external actors.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Incorrect Ownership Assignment - (708)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 708 (Incorrect Ownership Assignment)
The software assigns an owner to a resource, but the owner is outside of the intended control sphere.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Incorrect Permission Assignment for Critical Resource - (732)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 732 (Incorrect Permission Assignment for Critical Resource)
The software specifies permissions for a security-critical resource in a way that allows that resource to be read or modified by unintended actors.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Allocation of Resources Without Limits or Throttling - (770)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 770 (Allocation of Resources Without Limits or Throttling)
The software allocates a reusable resource or group of resources on behalf of an actor without imposing any restrictions on how many resources can be allocated, in violation of the intended security policy for that actor.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Exposed IOCTL with Insufficient Access Control - (782)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 782 (Exposed IOCTL with Insufficient Access Control)
The software implements an IOCTL with functionality that should be restricted, but it does not properly enforce access control for the IOCTL.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Control of Document Type Definition - (827)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 827 (Improper Control of Document Type Definition)
The software does not restrict a reference to a Document Type Definition (DTD) to the intended control sphere. This might allow attackers to reference arbitrary DTDs, possibly causing the software to expose files, consume excessive system resources, or execute arbitrary http requests on behalf of the attacker.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Missing Authorization - (862)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 862 (Missing Authorization)
The software does not perform an authorization check when an actor attempts to access a resource or perform an action.AuthZ
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Incorrect Authorization - (863)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 863 (Incorrect Authorization)
The software performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check. This allows attackers to bypass intended access restrictions.AuthZ
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Storage of Sensitive Data in a Mechanism without Access Control - (921)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 921 (Storage of Sensitive Data in a Mechanism without Access Control)
The software stores sensitive information in a file system or device that does not have built-in access control.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Restriction of Communication Channel to Intended Endpoints - (923)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 923 (Improper Restriction of Communication Channel to Intended Endpoints)
The software establishes a communication channel to (or from) an endpoint for privileged or protected operations, but it does not properly ensure that it is communicating with the correct endpoint.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Authorization in Handler for Custom URL Scheme - (939)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 939 (Improper Authorization in Handler for Custom URL Scheme)
The software uses a handler for a custom URL scheme, but it does not properly restrict which actors can invoke the handler using the scheme.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Overly Permissive Cross-domain Whitelist - (942)
1008 (Architectural Concepts) > 1011 (Authorize Actors) > 942 (Overly Permissive Cross-domain Whitelist)
The software uses a cross-domain policy file that includes domains that should not be trusted.
+CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic.Cross Cutting - (1012)
1008 (Architectural Concepts) > 1012 (Cross Cutting)
Weaknesses in this category are related to the design and architecture of multiple security tactics and how they affect a system. For example, information exposure can impact the Limit Access and Limit Exposure security tactics. The weaknesses in this category could lead to a degradation of the quality of many capabilities if they are not addressed when designing or implementing a secure architecture.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Information Exposure Through Timing Discrepancy - (208)
1008 (Architectural Concepts) > 1012 (Cross Cutting) > 208 (Information Exposure Through Timing Discrepancy)
Two separate operations in a product require different amounts of time to complete, in a way that is observable to an actor and reveals security-relevant information about the state of the product, such as whether a particular operation was successful or not.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Missing Report of Error Condition - (392)
1008 (Architectural Concepts) > 1012 (Cross Cutting) > 392 (Missing Report of Error Condition)
The software encounters an error but does not provide a status code or return value to indicate that an error has occurred.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Improper Cleanup on Thrown Exception - (460)
1008 (Architectural Concepts) > 1012 (Cross Cutting) > 460 (Improper Cleanup on Thrown Exception)
The product does not clean up its state or incorrectly cleans up its state when an exception is thrown, leading to unexpected state or control flow.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Missing Standardized Error Handling Mechanism - (544)
1008 (Architectural Concepts) > 1012 (Cross Cutting) > 544 (Missing Standardized Error Handling Mechanism)
The software does not use a standardized method for handling errors throughout the code, which might introduce inconsistent error handling and resultant weaknesses.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Client-Side Enforcement of Server-Side Security - (602)
1008 (Architectural Concepts) > 1012 (Cross Cutting) > 602 (Client-Side Enforcement of Server-Side Security)
The software is composed of a server that relies on the client to implement a mechanism that is intended to protect the server.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Check or Handling of Exceptional Conditions - (703)
1008 (Architectural Concepts) > 1012 (Cross Cutting) > 703 (Improper Check or Handling of Exceptional Conditions)
The software does not properly anticipate or handle exceptional conditions that rarely occur during normal operation of the software.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Check for Unusual or Exceptional Conditions - (754)
1008 (Architectural Concepts) > 1012 (Cross Cutting) > 754 (Improper Check for Unusual or Exceptional Conditions)
The software does not check or improperly checks for unusual or exceptional conditions that are not expected to occur frequently during day to day operation of the software.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Reliance on Cookies without Validation and Integrity Checking in a Security Decision - (784)
1008 (Architectural Concepts) > 1012 (Cross Cutting) > 784 (Reliance on Cookies without Validation and Integrity Checking in a Security Decision)
The application uses a protection mechanism that relies on the existence or values of a cookie, but it does not properly ensure that the cookie is valid for the associated user.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Reliance on Untrusted Inputs in a Security Decision - (807)
1008 (Architectural Concepts) > 1012 (Cross Cutting) > 807 (Reliance on Untrusted Inputs in a Security Decision)
The application uses a protection mechanism that relies on the existence or values of an input, but the input can be modified by an untrusted actor in a way that bypasses the protection mechanism.
+CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic.Encrypt Data - (1013)
1008 (Architectural Concepts) > 1013 (Encrypt Data)
Weaknesses in this category are related to the design and architecture of data confidentiality in a system. Frequently these deal with the use of encryption libraries. The weaknesses in this category could lead to a degradation of the quality data encyprtion if they are not addressed when designing or implementing a secure architecture.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Unprotected Storage of Credentials - (256)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 256 (Unprotected Storage of Credentials)
Storing a password in plaintext may result in a system compromise.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Storing Passwords in a Recoverable Format - (257)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 257 (Storing Passwords in a Recoverable Format)
The storage of passwords in a recoverable format makes them subject to password reuse attacks by malicious users. In fact, it should be noted that recoverable encrypted passwords provide no significant benefit over plaintext passwords since they are subject not only to reuse by malicious attackers but also by malicious insiders. If a system administrator can recover a password directly, or use a brute force search on the available information, the administrator can use the password on other accounts.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Password in Configuration File - (260)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 260 (Password in Configuration File)
The software stores a password in a configuration file that might be accessible to actors who do not know the password.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Weak Cryptography for Passwords - (261)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 261 (Weak Cryptography for Passwords)
Obscuring a password with a trivial encoding does not protect the password.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Missing Encryption of Sensitive Data - (311)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 311 (Missing Encryption of Sensitive Data)
The software does not encrypt sensitive or critical information before storage or transmission.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Cleartext Storage of Sensitive Information - (312)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 312 (Cleartext Storage of Sensitive Information)
The application stores sensitive information in cleartext within a resource that might be accessible to another control sphere.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Cleartext Storage in a File or on Disk - (313)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 313 (Cleartext Storage in a File or on Disk)
The application stores sensitive information in cleartext in a file, or on disk.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Cleartext Storage in the Registry - (314)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 314 (Cleartext Storage in the Registry)
The application stores sensitive information in cleartext in the registry.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Cleartext Storage of Sensitive Information in a Cookie - (315)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 315 (Cleartext Storage of Sensitive Information in a Cookie)
The application stores sensitive information in cleartext in a cookie.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Cleartext Storage of Sensitive Information in Memory - (316)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 316 (Cleartext Storage of Sensitive Information in Memory)
The application stores sensitive information in cleartext in memory.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Cleartext Storage of Sensitive Information in GUI - (317)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 317 (Cleartext Storage of Sensitive Information in GUI)
The application stores sensitive information in cleartext within the GUI.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Cleartext Storage of Sensitive Information in Executable - (318)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 318 (Cleartext Storage of Sensitive Information in Executable)
The application stores sensitive information in cleartext in an executable.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Cleartext Transmission of Sensitive Information - (319)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 319 (Cleartext Transmission of Sensitive Information)
The software transmits sensitive or security-critical data in cleartext in a communication channel that can be sniffed by unauthorized actors.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Use of Hard-coded Cryptographic Key - (321)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 321 (Use of Hard-coded Cryptographic Key)
The use of a hard-coded cryptographic key significantly increases the possibility that encrypted data may be recovered.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Reusing a Nonce, Key Pair in Encryption - (323)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 323 (Reusing a Nonce, Key Pair in Encryption)
Nonces should be used for the present occasion and only once.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Use of a Key Past its Expiration Date - (324)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 324 (Use of a Key Past its Expiration Date)
The product uses a cryptographic key or password past its expiration date, which diminishes its safety significantly by increasing the timing window for cracking attacks against that key.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Missing Required Cryptographic Step - (325)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 325 (Missing Required Cryptographic Step)
The software does not implement a required step in a cryptographic algorithm, resulting in weaker encryption than advertised by that algorithm.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Inadequate Encryption Strength - (326)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 326 (Inadequate Encryption Strength)
The software stores or transmits sensitive data using an encryption scheme that is theoretically sound, but is not strong enough for the level of protection required.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Use of a Broken or Risky Cryptographic Algorithm - (327)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 327 (Use of a Broken or Risky Cryptographic Algorithm)
The use of a broken or risky cryptographic algorithm is an unnecessary risk that may result in the exposure of sensitive information.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Reversible One-Way Hash - (328)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 328 (Reversible One-Way Hash)
The product uses a hashing algorithm that produces a hash value that can be used to determine the original input, or to find an input that can produce the same hash, more efficiently than brute force techniques.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Use of Insufficiently Random Values - (330)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 330 (Use of Insufficiently Random Values)
The software may use insufficiently random numbers or values in a security context that depends on unpredictable numbers.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Insufficient Entropy - (331)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 331 (Insufficient Entropy)
The software uses an algorithm or scheme that produces insufficient entropy, leaving patterns or clusters of values that are more likely to occur than others.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Insufficient Entropy in PRNG - (332)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 332 (Insufficient Entropy in PRNG)
The lack of entropy available for, or used by, a Pseudo-Random Number Generator (PRNG) can be a stability and security threat.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Improper Handling of Insufficient Entropy in TRNG - (333)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 333 (Improper Handling of Insufficient Entropy in TRNG)
True random number generators (TRNG) generally have a limited source of entropy and therefore can fail or block.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Small Space of Random Values - (334)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 334 (Small Space of Random Values)
The number of possible random values is smaller than needed by the product, making it more susceptible to brute force attacks.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Incorrect Usage of Seeds in Pseudo-Random Number Generator (PRNG) - (335)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 335 (Incorrect Usage of Seeds in Pseudo-Random Number Generator (PRNG))
The software uses a Pseudo-Random Number Generator (PRNG) that does not correctly manage seeds.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Same Seed in Pseudo-Random Number Generator (PRNG) - (336)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 336 (Same Seed in Pseudo-Random Number Generator (PRNG))
A Pseudo-Random Number Generator (PRNG) uses the same seed each time the product is initialized.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Predictable Seed in Pseudo-Random Number Generator (PRNG) - (337)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 337 (Predictable Seed in Pseudo-Random Number Generator (PRNG))
A Pseudo-Random Number Generator (PRNG) is initialized from a predictable seed, such as the process ID or system time.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG) - (338)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 338 (Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG))
The product uses a Pseudo-Random Number Generator (PRNG) in a security context, but the PRNG's algorithm is not cryptographically strong.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Small Seed Space in PRNG - (339)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 339 (Small Seed Space in PRNG)
A PRNG uses a relatively small space of seeds.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Verification of Cryptographic Signature - (347)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 347 (Improper Verification of Cryptographic Signature)
The software does not verify, or incorrectly verifies, the cryptographic signature for data.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Insufficiently Protected Credentials - (522)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 522 (Insufficiently Protected Credentials)
This weakness occurs when the application transmits or stores authentication credentials and uses an insecure method that is susceptible to unauthorized interception and/or retrieval.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Unprotected Transport of Credentials - (523)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 523 (Unprotected Transport of Credentials)
Login pages not using adequate measures to protect the user name and password while they are in transit from the client to the server.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Selection of Less-Secure Algorithm During Negotiation ('Algorithm Downgrade') - (757)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 757 (Selection of Less-Secure Algorithm During Negotiation ('Algorithm Downgrade'))
A protocol or its implementation supports interaction between multiple actors and allows those actors to negotiate which algorithm should be used as a protection mechanism such as encryption or authentication, but it does not select the strongest algorithm that is available to both parties.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Use of a One-Way Hash without a Salt - (759)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 759 (Use of a One-Way Hash without a Salt)
The software uses a one-way cryptographic hash against an input that should not be reversible, such as a password, but the software does not also use a salt as part of the input.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Use of a One-Way Hash with a Predictable Salt - (760)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 760 (Use of a One-Way Hash with a Predictable Salt)
The software uses a one-way cryptographic hash against an input that should not be reversible, such as a password, but the software uses a predictable salt as part of the input.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Use of RSA Algorithm without OAEP - (780)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 780 (Use of RSA Algorithm without OAEP)
The software uses the RSA algorithm but does not incorporate Optimal Asymmetric Encryption Padding (OAEP), which might weaken the encryption.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Insecure Storage of Sensitive Information - (922)
1008 (Architectural Concepts) > 1013 (Encrypt Data) > 922 (Insecure Storage of Sensitive Information)
The software stores sensitive information without properly limiting read or write access by unauthorized actors.
+CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic.Identify Actors - (1014)
1008 (Architectural Concepts) > 1014 (Identify Actors)
Weaknesses in this category are related to the design and architecture of a system's identification management components. Frequently these deal with verifying that external agents provide inputs into the system. The weaknesses in this category could lead to a degradation of the quality of identification maangment if they are not addressed when designing or implementing a secure architecture.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Certificate Validation - (295)
1008 (Architectural Concepts) > 1014 (Identify Actors) > 295 (Improper Certificate Validation)
The software does not validate, or incorrectly validates, a certificate.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Following of a Certificate's Chain of Trust - (296)
1008 (Architectural Concepts) > 1014 (Identify Actors) > 296 (Improper Following of a Certificate's Chain of Trust)
The software does not follow, or incorrectly follows, the chain of trust for a certificate back to a trusted root certificate, resulting in incorrect trust of any resource that is associated with that certificate.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Improper Validation of Certificate with Host Mismatch - (297)
1008 (Architectural Concepts) > 1014 (Identify Actors) > 297 (Improper Validation of Certificate with Host Mismatch)
The software communicates with a host that provides a certificate, but the software does not properly ensure that the certificate is actually associated with that host.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Improper Validation of Certificate Expiration - (298)
1008 (Architectural Concepts) > 1014 (Identify Actors) > 298 (Improper Validation of Certificate Expiration)
A certificate expiration is not validated or is incorrectly validated, so trust may be assigned to certificates that have been abandoned due to age.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Check for Certificate Revocation - (299)
1008 (Architectural Concepts) > 1014 (Identify Actors) > 299 (Improper Check for Certificate Revocation)
The software does not check or incorrectly checks the revocation status of a certificate, which may cause it to use a certificate that has been compromised.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Insufficient Verification of Data Authenticity - (345)
1008 (Architectural Concepts) > 1014 (Identify Actors) > 345 (Insufficient Verification of Data Authenticity)
The software does not sufficiently verify the origin or authenticity of data, in a way that causes it to accept invalid data.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Origin Validation Error - (346)
1008 (Architectural Concepts) > 1014 (Identify Actors) > 346 (Origin Validation Error)
The software does not properly verify that the source of data or communication is valid.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Missing Check for Certificate Revocation after Initial Check - (370)
1008 (Architectural Concepts) > 1014 (Identify Actors) > 370 (Missing Check for Certificate Revocation after Initial Check)
The software does not check the revocation status of a certificate after its initial revocation check, which can cause the software to perform privileged actions even after the certificate is revoked at a later time.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Unintended Proxy or Intermediary ('Confused Deputy') - (441)
1008 (Architectural Concepts) > 1014 (Identify Actors) > 441 (Unintended Proxy or Intermediary ('Confused Deputy'))
The software receives a request, message, or directive from an upstream component, but the software does not sufficiently preserve the original source of the request before forwarding the request to an external actor that is outside of the software's control sphere. This causes the software to appear to be the source of the request, leading it to act as a proxy or other intermediary between the upstream component and the external actor.Confused Deputy
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Missing Validation of OpenSSL Certificate - (599)
1008 (Architectural Concepts) > 1014 (Identify Actors) > 599 (Missing Validation of OpenSSL Certificate)
The software uses OpenSSL and trusts or uses a certificate without using the SSL_get_verify_result() function to ensure that the certificate satisfies all necessary security requirements.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Verification of Source of a Communication Channel - (940)
1008 (Architectural Concepts) > 1014 (Identify Actors) > 940 (Improper Verification of Source of a Communication Channel)
The software establishes a communication channel to handle an incoming request that has been initiated by an actor, but it does not properly verify that the request is coming from the expected origin.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Incorrectly Specified Destination in a Communication Channel - (941)
1008 (Architectural Concepts) > 1014 (Identify Actors) > 941 (Incorrectly Specified Destination in a Communication Channel)
The software creates a communication channel to initiate an outgoing request to an actor, but it does not correctly specify the intended destination for that actor.
+CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic.Limit Access - (1015)
1008 (Architectural Concepts) > 1015 (Limit Access)
Weaknesses in this category are related to the design and architecture of system resources. Frequently these deal with restricting the amount of resources that are accessed by actors, such as memory, network connections, CPU or access points. The weaknesses in this category could lead to a degradation of the quality of authentication if they are not addressed when designing or implementing a secure architecture.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Information Exposure Through Sent Data - (201)
1008 (Architectural Concepts) > 1015 (Limit Access) > 201 (Information Exposure Through Sent Data)
The accidental exposure of sensitive information through sent data refers to the transmission of data which are either sensitive in and of itself or useful in the further exploitation of the system through standard data channels.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Information Exposure Through an Error Message - (209)
1008 (Architectural Concepts) > 1015 (Limit Access) > 209 (Information Exposure Through an Error Message)
The software generates an error message that includes sensitive information about its environment, users, or associated data.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Cross-boundary Removal of Sensitive Data - (212)
1008 (Architectural Concepts) > 1015 (Limit Access) > 212 (Improper Cross-boundary Removal of Sensitive Data)
The software uses a resource that contains sensitive data, but it does not properly remove that data before it stores, transfers, or shares the resource with actors in another control sphere.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Creation of chroot Jail Without Changing Working Directory - (243)
1008 (Architectural Concepts) > 1015 (Limit Access) > 243 (Creation of chroot Jail Without Changing Working Directory)
The program uses the chroot() system call to create a jail, but does not change the working directory afterward. This does not prevent access to files outside of the jail.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Execution with Unnecessary Privileges - (250)
1008 (Architectural Concepts) > 1015 (Limit Access) > 250 (Execution with Unnecessary Privileges)
The software performs an operation at a privilege level that is higher than the minimum level required, which creates new weaknesses or amplifies the consequences of other weaknesses.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Externally Controlled Reference to a Resource in Another Sphere - (610)
1008 (Architectural Concepts) > 1015 (Limit Access) > 610 (Externally Controlled Reference to a Resource in Another Sphere)
The product uses an externally controlled name or reference that resolves to a resource that is outside of the intended control sphere.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Improper Restriction of XML External Entity Reference ('XXE') - (611)
1008 (Architectural Concepts) > 1015 (Limit Access) > 611 (Improper Restriction of XML External Entity Reference ('XXE'))
The software processes an XML document that can contain XML entities with URIs that resolve to documents outside of the intended sphere of control, causing the product to embed incorrect documents into its output.XXE
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.External Control of File Name or Path - (73)
1008 (Architectural Concepts) > 1015 (Limit Access) > 73 (External Control of File Name or Path)
The software allows user input to control or influence paths or file names that are used in filesystem operations.
+CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic.Limit Exposure - (1016)
1008 (Architectural Concepts) > 1016 (Limit Exposure)
Weaknesses in this category are related to the design and architecture of the entry points to a system. Frequently these deal with minimizing the attack surface through designing the system with the least needed amount of entry points. The weaknesses in this category could lead to a degradation of a system's defenses if they are not addressed when designing or implementing a secure architecture.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Information Exposure Through Self-generated Error Message - (210)
1008 (Architectural Concepts) > 1016 (Limit Exposure) > 210 (Information Exposure Through Self-generated Error Message)
The software identifies an error condition and creates its own diagnostic or error messages that contain sensitive information.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Information Exposure Through Externally-Generated Error Message - (211)
1008 (Architectural Concepts) > 1016 (Limit Exposure) > 211 (Information Exposure Through Externally-Generated Error Message)
The software performs an operation that triggers an external diagnostic or error message that is not directly generated by the software, such as an error generated by the programming language interpreter that the software uses. The error can contain sensitive system information.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Information Exposure Through Process Environment - (214)
1008 (Architectural Concepts) > 1016 (Limit Exposure) > 214 (Information Exposure Through Process Environment)
A process is invoked with sensitive arguments, environment variables, or other elements that can be seen by other processes on the operating system.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Information Exposure Through Server Error Message - (550)
1008 (Architectural Concepts) > 1016 (Limit Exposure) > 550 (Information Exposure Through Server Error Message)
Certain conditions, such as network failure, will cause a server error message to be displayed.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Inclusion of Functionality from Untrusted Control Sphere - (829)
1008 (Architectural Concepts) > 1016 (Limit Exposure) > 829 (Inclusion of Functionality from Untrusted Control Sphere)
The software imports, requires, or includes executable functionality (such as a library) from a source that is outside of the intended control sphere.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Inclusion of Web Functionality from an Untrusted Source - (830)
1008 (Architectural Concepts) > 1016 (Limit Exposure) > 830 (Inclusion of Web Functionality from an Untrusted Source)
The software includes web functionality (such as a web widget) from another domain, which causes it to operate within the domain of the software, potentially granting total access and control of the software to the untrusted source.
+CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic.Lock Computer - (1017)
1008 (Architectural Concepts) > 1017 (Lock Computer)
Weaknesses in this category are related to the design and architecture of a system's lockout mechanism. Frequently these deal with scenarios that take effect in case of multiple failed attempts to access a given resource. The weaknesses in this category could lead to a degradation of access to system assets if they are not addressed when designing or implementing a secure architecture.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Overly Restrictive Account Lockout Mechanism - (645)
1008 (Architectural Concepts) > 1017 (Lock Computer) > 645 (Overly Restrictive Account Lockout Mechanism)
The software contains an account lockout protection mechanism, but the mechanism is too restrictive and can be triggered too easily, which allows attackers to deny service to legitimate users by causing their accounts to be locked out.
+CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic.Manage User Sessions - (1018)
1008 (Architectural Concepts) > 1018 (Manage User Sessions)
Weaknesses in this category are related to the design and architecture of session managment. Frequently these deal with the information or status about each user and their access rights for the duration of multiple requests. The weaknesses in this category could lead to a degradation of the quality of session managment if they are not addressed when designing or implementing a secure architecture.
*CompositeComposite - a Compound Element that consists of two or more distinct weaknesses, in which all weaknesses must be present at the same time in order for a potential vulnerability to arise. Removing any of the weaknesses eliminates or sharply reduces the risk. One weakness, X, can be "broken down" into component weaknesses Y and Z. There can be cases in which one weakness might not be essential to a composite, but changes the nature of the composite when it becomes a vulnerability.Session Fixation - (384)
1008 (Architectural Concepts) > 1018 (Manage User Sessions) > 384 (Session Fixation)
Authenticating a user, or otherwise establishing a new user session, without invalidating any existing session identifier gives an attacker the opportunity to steal authenticated sessions.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Exposure of Data Element to Wrong Session - (488)
1008 (Architectural Concepts) > 1018 (Manage User Sessions) > 488 (Exposure of Data Element to Wrong Session)
The product does not sufficiently enforce boundaries between the states of different sessions, causing data to be provided to, or used by, the wrong session.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.J2EE Bad Practices: Non-serializable Object Stored in Session - (579)
1008 (Architectural Concepts) > 1018 (Manage User Sessions) > 579 (J2EE Bad Practices: Non-serializable Object Stored in Session)
The application stores a non-serializable object as an HttpSession attribute, which can hurt reliability.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.J2EE Misconfiguration: Insufficient Session-ID Length - (6)
1008 (Architectural Concepts) > 1018 (Manage User Sessions) > 6 (J2EE Misconfiguration: Insufficient Session-ID Length)
The J2EE application is configured to use an insufficient session ID length.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Insufficient Session Expiration - (613)
1008 (Architectural Concepts) > 1018 (Manage User Sessions) > 613 (Insufficient Session Expiration)
According to WASC, "Insufficient Session Expiration is when a web site permits an attacker to reuse old session credentials or session IDs for authorization."
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Enforcement of Behavioral Workflow - (841)
1008 (Architectural Concepts) > 1018 (Manage User Sessions) > 841 (Improper Enforcement of Behavioral Workflow)
The software supports a session in which more than one behavior must be performed by an actor, but it does not properly ensure that the actor performs the behaviors in the required sequence.
+CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic.Validate Inputs - (1019)
1008 (Architectural Concepts) > 1019 (Validate Inputs)
Weaknesses in this category are related to the design and architecture of a system's input validation components. Frequently these deal with sanitizing, neutralizing and validating any externally provided inputs to minimize malformed data from entering the system and preventing code injection in the input data. The weaknesses in this category could lead to a degradation of the quality of data flow in a system if they are not addressed when designing or implementing a secure architecture.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Neutralization of Special Elements - (138)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 138 (Improper Neutralization of Special Elements)
The software receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as control elements or syntactic markers when they are sent to a downstream component.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Improper Neutralization of Escape, Meta, or Control Sequences - (150)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 150 (Improper Neutralization of Escape, Meta, or Control Sequences)
The software receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as escape, meta, or control character sequences when they are sent to a downstream component.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Input Validation - (20)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 20 (Improper Input Validation)
The product does not validate or incorrectly validates input that can affect the control flow or data flow of a program.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Acceptance of Extraneous Untrusted Data With Trusted Data - (349)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 349 (Acceptance of Extraneous Untrusted Data With Trusted Data)
The software, when processing trusted data, accepts any untrusted data that is also included with the trusted data, treating the untrusted data as if it were trusted.
*CompositeComposite - a Compound Element that consists of two or more distinct weaknesses, in which all weaknesses must be present at the same time in order for a potential vulnerability to arise. Removing any of the weaknesses eliminates or sharply reduces the risk. One weakness, X, can be "broken down" into component weaknesses Y and Z. There can be cases in which one weakness might not be essential to a composite, but changes the nature of the composite when it becomes a vulnerability.Cross-Site Request Forgery (CSRF) - (352)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 352 (Cross-Site Request Forgery (CSRF))
The web application does not, or can not, sufficiently verify whether a well-formed, valid, consistent request was intentionally provided by the user who submitted the request.Session RidingCross Site Reference ForgeryXSRF
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.External Control of Assumed-Immutable Web Parameter - (472)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 472 (External Control of Assumed-Immutable Web Parameter)
The web application does not sufficiently verify inputs that are assumed to be immutable but are actually externally controllable, such as hidden form fields.Assumed-Immutable Parameter Tampering
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.PHP External Variable Modification - (473)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 473 (PHP External Variable Modification)
A PHP application does not properly protect against the modification of variables from external sources, such as query parameters or cookies. This can expose the application to numerous weaknesses that would not exist otherwise.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Deserialization of Untrusted Data - (502)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 502 (Deserialization of Untrusted Data)
The application deserializes untrusted data without sufficiently verifying that the resulting data will be valid.Marshaling, UnmarshalingPickling, Unpickling
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Link Resolution Before File Access ('Link Following') - (59)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 59 (Improper Link Resolution Before File Access ('Link Following'))
The software attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.insecure temporary file
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.URL Redirection to Untrusted Site ('Open Redirect') - (601)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 601 (URL Redirection to Untrusted Site ('Open Redirect'))
A web application accepts a user-controlled input that specifies a link to an external site, and uses that link in a Redirect. This simplifies phishing attacks.Open RedirectCross-site RedirectCross-domain Redirect
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Restriction of Names for Files and Other Resources - (641)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 641 (Improper Restriction of Names for Files and Other Resources)
The application constructs the name of a file or other resource using input from an upstream component, but it does not restrict or incorrectly restricts the resulting name.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Neutralization of Data within XPath Expressions ('XPath Injection') - (643)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 643 (Improper Neutralization of Data within XPath Expressions ('XPath Injection'))
The software uses external input to dynamically construct an XPath expression used to retrieve data from an XML database, but it does not neutralize or incorrectly neutralizes that input. This allows an attacker to control the structure of the query.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Neutralization of Data within XQuery Expressions ('XQuery Injection') - (652)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 652 (Improper Neutralization of Data within XQuery Expressions ('XQuery Injection'))
The software uses external input to dynamically construct an XQuery expression used to retrieve data from an XML database, but it does not neutralize or incorrectly neutralizes that input. This allows an attacker to control the structure of the query.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') - (74)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 74 (Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection'))
The software constructs all or part of a command, data structure, or record using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify how it is parsed or interpreted when it is sent to a downstream component.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Failure to Sanitize Special Elements into a Different Plane (Special Element Injection) - (75)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 75 (Failure to Sanitize Special Elements into a Different Plane (Special Element Injection))
The software does not adequately filter user-controlled input for special elements with control implications.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Neutralization of Equivalent Special Elements - (76)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 76 (Improper Neutralization of Equivalent Special Elements)
The software properly neutralizes certain special elements, but it improperly neutralizes equivalent special elements.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Neutralization of Special Elements used in a Command ('Command Injection') - (77)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 77 (Improper Neutralization of Special Elements used in a Command ('Command Injection'))
The software constructs all or part of a command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended command when it is sent to a downstream component.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') - (78)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 78 (Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection'))
The software constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component.Shell injectionShell metacharacters
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') - (79)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 79 (Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'))
The software does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.XSSHTML InjectionCSS
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Filtering of Special Elements - (790)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 790 (Improper Filtering of Special Elements)
The software receives data from an upstream component, but does not filter or incorrectly filters special elements before sending it to a downstream component.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Incomplete Filtering of Special Elements - (791)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 791 (Incomplete Filtering of Special Elements)
The software receives data from an upstream component, but does not completely filter special elements before sending it to a downstream component.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Incomplete Filtering of One or More Instances of Special Elements - (792)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 792 (Incomplete Filtering of One or More Instances of Special Elements)
The software receives data from an upstream component, but does not completely filter one or more instances of special elements before sending it to a downstream component.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Only Filtering One Instance of a Special Element - (793)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 793 (Only Filtering One Instance of a Special Element)
The software receives data from an upstream component, but only filters a single instance of a special element before sending it to a downstream component.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Incomplete Filtering of Multiple Instances of Special Elements - (794)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 794 (Incomplete Filtering of Multiple Instances of Special Elements)
The software receives data from an upstream component, but does not filter all instances of a special element before sending it to a downstream component.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Only Filtering Special Elements at a Specified Location - (795)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 795 (Only Filtering Special Elements at a Specified Location)
The software receives data from an upstream component, but only accounts for special elements at a specified location, thereby missing remaining special elements that may exist before sending it to a downstream component.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Only Filtering Special Elements Relative to a Marker - (796)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 796 (Only Filtering Special Elements Relative to a Marker)
The software receives data from an upstream component, but only accounts for special elements positioned relative to a marker (e.g. "at the beginning/end of a string; the second argument"), thereby missing remaining special elements that may exist before sending it to a downstream component.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Only Filtering Special Elements at an Absolute Position - (797)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 797 (Only Filtering Special Elements at an Absolute Position)
The software receives data from an upstream component, but only accounts for special elements at an absolute position (e.g. "byte number 10"), thereby missing remaining special elements that may exist before sending it to a downstream component.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Argument Injection or Modification - (88)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 88 (Argument Injection or Modification)
The software does not sufficiently delimit the arguments being passed to a component in another control sphere, allowing alternate arguments to be provided, leading to potentially security-relevant changes.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') - (89)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 89 (Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection'))
The software constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Neutralization of Special Elements used in an LDAP Query ('LDAP Injection') - (90)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 90 (Improper Neutralization of Special Elements used in an LDAP Query ('LDAP Injection'))
The software constructs all or part of an LDAP query using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended LDAP query when it is sent to a downstream component.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.XML Injection (aka Blind XPath Injection) - (91)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 91 (XML Injection (aka Blind XPath Injection))
The software does not properly neutralize special elements that are used in XML, allowing attackers to modify the syntax, content, or commands of the XML before it is processed by an end system.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Neutralization of CRLF Sequences ('CRLF Injection') - (93)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 93 (Improper Neutralization of CRLF Sequences ('CRLF Injection'))
The software uses CRLF (carriage return line feeds) as a special element, e.g. to separate lines or records, but it does not neutralize or incorrectly neutralizes CRLF sequences from inputs.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Control of Generation of Code ('Code Injection') - (94)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 94 (Improper Control of Generation of Code ('Code Injection'))
The software constructs all or part of a code segment using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the syntax or behavior of the intended code segment.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Neutralization of Special Elements in Data Query Logic - (943)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 943 (Improper Neutralization of Special Elements in Data Query Logic)
The application generates a query intended to access or manipulate data in a data store such as a database, but it does not neutralize or incorrectly neutralizes special elements that can modify the intended logic of the query.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection') - (95)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 95 (Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection'))
The software receives input from an upstream component, but it does not neutralize or incorrectly neutralizes code syntax before using the input in a dynamic evaluation call (e.g. "eval").
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Neutralization of Directives in Statically Saved Code ('Static Code Injection') - (96)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 96 (Improper Neutralization of Directives in Statically Saved Code ('Static Code Injection'))
The software receives input from an upstream component, but it does not neutralize or incorrectly neutralizes code syntax before inserting the input into an executable resource, such as a library, configuration file, or template.
*VariantVariant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.Improper Neutralization of Server-Side Includes (SSI) Within a Web Page - (97)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 97 (Improper Neutralization of Server-Side Includes (SSI) Within a Web Page)
The software generates a web page, but does not neutralize or incorrectly neutralizes user-controllable input that could be interpreted as a server-side include (SSI) directive.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Control of Filename for Include/Require Statement in PHP Program ('PHP Remote File Inclusion') - (98)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 98 (Improper Control of Filename for Include/Require Statement in PHP Program ('PHP Remote File Inclusion'))
The PHP application receives input from an upstream component, but it does not restrict or incorrectly restricts the input before its usage in "require," "include," or similar functions.Remote file includeRFILocal file inclusion
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Control of Resource Identifiers ('Resource Injection') - (99)
1008 (Architectural Concepts) > 1019 (Validate Inputs) > 99 (Improper Control of Resource Identifiers ('Resource Injection'))
The software receives input from an upstream component, but it does not restrict or incorrectly restricts the input before it is used as an identifier for a resource that may be outside the intended sphere of control.Insecure Direct Object Reference
+CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic.Verify Message Integrity - (1020)
1008 (Architectural Concepts) > 1020 (Verify Message Integrity)
Weaknesses in this category are related to the design and architecture of a system's data integrity components. Frequently these deal with ensuring integrity of data, such as messages, resource files, deployment files, and configuration files. The weaknesses in this category could lead to a degradation of data integrity quality if they are not addressed when designing or implementing a secure architecture.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Missing Support for Integrity Check - (353)
1008 (Architectural Concepts) > 1020 (Verify Message Integrity) > 353 (Missing Support for Integrity Check)
The software uses a transmission protocol that does not include a mechanism for verifying the integrity of the data during transmission, such as a checksum.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Improper Validation of Integrity Check Value - (354)
1008 (Architectural Concepts) > 1020 (Verify Message Integrity) > 354 (Improper Validation of Integrity Check Value)
The software does not validate or incorrectly validates the integrity check values or "checksums" of a message. This may prevent it from detecting if the data has been modified or corrupted in transmission.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Detection of Error Condition Without Action - (390)
1008 (Architectural Concepts) > 1020 (Verify Message Integrity) > 390 (Detection of Error Condition Without Action)
The software detects a specific error, but takes no actions to handle the error.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Unchecked Error Condition - (391)
1008 (Architectural Concepts) > 1020 (Verify Message Integrity) > 391 (Unchecked Error Condition)
Ignoring exceptions and other error conditions may allow an attacker to induce unexpected behavior unnoticed.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Download of Code Without Integrity Check - (494)
1008 (Architectural Concepts) > 1020 (Verify Message Integrity) > 494 (Download of Code Without Integrity Check)
The product downloads source code or an executable from a remote location and executes the code without sufficiently verifying the origin and integrity of the code.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Reliance on Cookies without Validation and Integrity Checking - (565)
1008 (Architectural Concepts) > 1020 (Verify Message Integrity) > 565 (Reliance on Cookies without Validation and Integrity Checking)
The application relies on the existence or values of cookies when performing security-critical operations, but it does not properly ensure that the setting is valid for the associated user.
*BaseBase - a weakness that is described in an abstract fashion, but with sufficient details to infer specific methods for detection and prevention. More general than a Variant weakness, but more specific than a Class weakness.Reliance on Obfuscation or Encryption of Security-Relevant Inputs without Integrity Checking - (649)
1008 (Architectural Concepts) > 1020 (Verify Message Integrity) > 649 (Reliance on Obfuscation or Encryption of Security-Relevant Inputs without Integrity Checking)
The software uses obfuscation or encryption of inputs that should not be mutable by an external actor, but the software does not use integrity checks to detect if those inputs have been modified.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Enforcement of Message or Data Structure - (707)
1008 (Architectural Concepts) > 1020 (Verify Message Integrity) > 707 (Improper Enforcement of Message or Data Structure)
The software does not enforce or incorrectly enforces that structured messages or data are well-formed before being read from an upstream component or sent to a downstream component.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Handling of Exceptional Conditions - (755)
1008 (Architectural Concepts) > 1020 (Verify Message Integrity) > 755 (Improper Handling of Exceptional Conditions)
The software does not handle or incorrectly handles an exceptional condition.
*ClassClass - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More general than a Base weakness.Improper Enforcement of Message Integrity During Transmission in a Communication Channel - (924)
1008 (Architectural Concepts) > 1020 (Verify Message Integrity) > 924 (Improper Enforcement of Message Integrity During Transmission in a Communication Channel)
The software establishes a communication channel with an endpoint and receives a message from that endpoint, but it does not sufficiently ensure that the message was not modified during transmission.
+ Notes

Maintenance

This view is under development, and subsequent releases will focus on reviewing the individual weaknesses to verify their inclusion in this view and adding any applicable ChildOf relationships. Comments about revisions are welcome.

Other

The top level categories in this view represent the individual tactics that are part of a secure-by-design approach to software development. The weaknesses that are members of each category contain information about how each is introduced relative to the software's architecture. Three different modes of introduction are used: Omission - caused by missing a security tactic when it is necessary. Commission - refers to incorrect choice of tactics which could result in undesirable consequences. Realization - appropriate security tactics are adopted but are incorrectly implemented.
+ References
[REF-9] Santos, J. C. S., Tarrit, K. and Mirakhorli, M.. "A Catalog of Security Architecture Weaknesses.". 2017 IEEE International Conference on Software Architecture (ICSA). 2017. <https://design.se.rit.edu/papers/cawe-paper.pdf>.
[REF-10] Santos, J. C. S., Peruma, A., Mirakhorli, M., Galster, M. and Sejfia, A.. "Understanding Software Vulnerabilities Related to Architectural Security Tactics: An Empirical Investigation of Chromium, PHP and Thunderbird.". pages 69 - 78. 2017 IEEE International Conference on Software Architecture (ICSA). 2017. <https://design.se.rit.edu/papers/TacticalVulnerabilities.pdf>.
+ View Metrics
CWEs in this viewTotal CWEs
Weaknesses223out of 716
Categories12out of 247
Views0out of 32
Total235out of995
+ Content History
Submissions
Submission DateSubmitterOrganization
2017-06-22Joanna C.S. Santos, Mehdi Mirakhorli
Provided the catalog, Common Architectural Weakness Enumeration (CAWE), and research papers for this view.
Modifications
Modification DateModifierOrganization
2018-03-27CWE Content TeamMITRE
updated Description, Other_Notes, View_Audience

More information is available — Please select a different filter.
Page Last Updated: March 29, 2018