| Impact | Details |
|---|---|
|
Bypass Protection Mechanism; DoS: Crash, Exit, or Restart |
Scope: Access Control, Availability
Client-side validation checks can be easily bypassed, allowing malformed or unexpected input to pass into the application, potentially as trusted data. This may lead to unexpected states, behaviors and possibly a resulting crash.
|
|
Bypass Protection Mechanism; Gain Privileges or Assume Identity |
Scope: Access Control
Client-side checks for authentication can be easily bypassed, allowing clients to escalate their access levels and perform unintended actions.
|
| Phase(s) | Mitigation |
|---|---|
|
Architecture and Design |
For any security checks that are performed on the client side, ensure that these checks are duplicated on the server side. Attackers can bypass the client-side checks by modifying values after the checks have been performed, or by changing the client to remove the client-side checks entirely. Then, these modified values would be submitted to the server. Even though client-side checks provide minimal benefits with respect to server-side security, they are still useful. First, they can support intrusion detection. If the server receives input that should have been rejected by the client, then it may be an indication of an attack. Second, client-side error-checking can provide helpful feedback to the user about the expectations for valid input. Third, there may be a reduction in server-side processing time for accidental input errors, although this is typically a small savings. |
|
Architecture and Design |
If some degree of trust is required between the two entities, then use integrity checking and strong authentication to ensure that the inputs are coming from a trusted source. Design the product so that this trust is managed in a centralized fashion, especially if there are complex or numerous communication channels, in order to reduce the risks that the implementer will mistakenly omit a check in a single code path.
|
|
Testing |
Use dynamic tools and techniques that interact with the software using large test suites with many diverse inputs, such as fuzz testing (fuzzing), robustness testing, and fault injection. The software's operation may slow down, but it should not become unstable, crash, or generate incorrect results.
|
|
Testing |
Use tools and techniques that require manual (human) analysis, such as penetration testing, threat modeling, and interactive tools that allow the tester to record and modify an active session. These may be more effective than strictly automated techniques. This is especially the case with weaknesses that are related to design and business rules.
|
| Nature | Type | ID | Name |
|---|---|---|---|
| ChildOf | Pillar Pillar - a weakness that is the most abstract type of weakness and represents a theme for all class/base/variant weaknesses related to it. A Pillar is different from a Category as a Pillar is still technically a type of weakness that describes a mistake, while a Category represents a common characteristic used to group related things. | 693 | Protection Mechanism Failure |
| ParentOf | Base Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource. | 565 | Reliance on Cookies without Validation and Integrity Checking |
| ParentOf | Base Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource. | 603 | Use of Client-Side Authentication |
| PeerOf | Base Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource. | 290 | Authentication Bypass by Spoofing |
| PeerOf | Class Class - a weakness that is described in a very abstract fashion, typically independent of any specific language or technology. More specific than a Pillar Weakness, but more general than a Base Weakness. Class level weaknesses typically describe issues in terms of 1 or 2 of the following dimensions: behavior, property, and resource. | 300 | Channel Accessible by Non-Endpoint |
| PeerOf | Base Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource. | 836 | Use of Password Hash Instead of Password for Authentication |
| CanPrecede | Base Base - a weakness that is still mostly independent of a resource or technology, but with sufficient details to provide specific methods for detection and prevention. Base level weaknesses typically describe issues in terms of 2 or 3 of the following dimensions: behavior, property, technology, language, and resource. | 471 | Modification of Assumed-Immutable Data (MAID) |
| Nature | Type | ID | Name |
|---|---|---|---|
| MemberOf | Category Category - a CWE entry that contains a set of other entries that share a common characteristic. | 1012 | Cross Cutting |
| Phase | Note |
|---|---|
| Architecture and Design | COMMISSION: This weakness refers to an incorrect design related to an architectural security tactic. |
| Architecture and Design | Consider a product that consists of two or more processes or nodes that must interact closely, such as a client/server model. If the product uses protection schemes in the client in order to defend from attacks against the server, and the server does not use the same schemes, then an attacker could modify the client in a way that bypasses those schemes. This is a fundamental design flaw that is primary to many weaknesses. |
Class: Not Language-Specific (Undetermined Prevalence)
Class: ICS/OT (Undetermined Prevalence)
Class: Mobile (Undetermined Prevalence)
Example 1
This example contains client-side code that checks if the user authenticated successfully before sending a command. The server-side code performs the authentication in one step, and executes the command in a separate step.
CLIENT-SIDE (client.pl)
SERVER-SIDE (server.pl):
The server accepts 2 commands, "AUTH" which authenticates the user, and "CHANGE-ADDRESS" which updates the address field for the username. The client performs the authentication and only sends a CHANGE-ADDRESS for that user if the authentication succeeds. Because the client has already performed the authentication, the server assumes that the username in the CHANGE-ADDRESS is the same as the authenticated user. An attacker could modify the client by removing the code that sends the "AUTH" command and simply executing the CHANGE-ADDRESS.
Example 2
In 2022, the OT:ICEFALL study examined products by 10 different Operational Technology (OT) vendors. The researchers reported 56 vulnerabilities and said that the products were "insecure by design" [REF-1283]. If exploited, these vulnerabilities often allowed adversaries to change how the products operated, ranging from denial of service to changing the code that the products executed. Since these products were often used in industries such as power, electrical, water, and others, there could even be safety implications.
Multiple vendors used client-side authentication in their OT products.
Note: this is a curated list of examples for users to understand the variety of ways in which this weakness can be introduced. It is not a complete list of all CVEs that are related to this CWE entry.
| Reference | Description |
|---|---|
|
SCADA system only uses client-side authentication, allowing adversaries to impersonate other users.
|
|
|
ASP program allows upload of .asp files by bypassing client-side checks.
|
|
|
steganography products embed password information in the carrier file, which can be extracted from a modified client.
|
|
|
steganography products embed password information in the carrier file, which can be extracted from a modified client.
|
|
|
client allows server to modify client's configuration and overwrite arbitrary files.
|
| Ordinality | Description |
|---|---|
|
Primary
|
(where the weakness exists independent of other weaknesses)
|
| Nature | Type | ID | Name |
|---|---|---|---|
| MemberOf | CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic. | 722 | OWASP Top Ten 2004 Category A1 - Unvalidated Input |
| MemberOf | CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic. | 753 | 2009 Top 25 - Porous Defenses |
| MemberOf | ViewView - a subset of CWE entries that provides a way of examining CWE content. The two main view structures are Slices (flat lists) and Graphs (containing relationships between entries). | 884 | CWE Cross-section |
| MemberOf | CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic. | 975 | SFP Secondary Cluster: Architecture |
| MemberOf | CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic. | 1348 | OWASP Top Ten 2021 Category A04:2021 - Insecure Design |
| MemberOf | CategoryCategory - a CWE entry that contains a set of other entries that share a common characteristic. | 1413 | Comprehensive Categorization: Protection Mechanism Failure |
Rationale
This CWE entry is a Class and might have Base-level children that would be more appropriateComments
Examine children of this entry to see if there is a better fit| Mapped Taxonomy Name | Node ID | Fit | Mapped Node Name |
|---|---|---|---|
| OWASP Top Ten 2004 | A1 | CWE More Specific | Unvalidated Input |
| CAPEC-ID | Attack Pattern Name |
|---|---|
| CAPEC-162 | Manipulating Hidden Fields |
| CAPEC-202 | Create Malicious Client |
| CAPEC-207 | Removing Important Client Functionality |
| CAPEC-208 | Removing/short-circuiting 'Purse' logic: removing/mutating 'cash' decrements |
| CAPEC-21 | Exploitation of Trusted Identifiers |
| CAPEC-31 | Accessing/Intercepting/Modifying HTTP Cookies |
| CAPEC-383 | Harvesting Information via API Event Monitoring |
| CAPEC-384 | Application API Message Manipulation via Man-in-the-Middle |
| CAPEC-385 | Transaction or Event Tampering via Application API Manipulation |
| CAPEC-386 | Application API Navigation Remapping |
| CAPEC-387 | Navigation Remapping To Propagate Malicious Content |
| CAPEC-388 | Application API Button Hijacking |
| Submissions | |||
|---|---|---|---|
| Submission Date | Submitter | Organization | |
|
2007年05月07日
(CWE Draft 6, 2007年05月07日) |
CWE Community | ||
| Submitted by members of the CWE community to extend early CWE versions | |||
| Modifications | |||
| Modification Date | Modifier | Organization | |
|
2025年04月03日
(CWE 4.17, 2025年04月03日) |
CWE Content Team | MITRE | |
| updated Demonstrative_Examples | |||
| 2023年06月29日 | CWE Content Team | MITRE | |
| updated Mapping_Notes | |||
| 2023年04月27日 | CWE Content Team | MITRE | |
| updated Relationships | |||
| 2023年01月31日 | CWE Content Team | MITRE | |
| updated Applicable_Platforms, Relationships, Type | |||
| 2022年10月13日 | CWE Content Team | MITRE | |
| updated Demonstrative_Examples, Description, Observed_Examples, References, Relationships | |||
| 2022年04月28日 | CWE Content Team | MITRE | |
| updated Research_Gaps | |||
| 2021年10月28日 | CWE Content Team | MITRE | |
| updated Relationships | |||
| 2020年02月24日 | CWE Content Team | MITRE | |
| updated Applicable_Platforms, Relationships | |||
| 2019年06月20日 | CWE Content Team | MITRE | |
| updated Related_Attack_Patterns | |||
| 2018年03月27日 | CWE Content Team | MITRE | |
| updated References | |||
| 2017年11月08日 | CWE Content Team | MITRE | |
| updated Applicable_Platforms, Enabling_Factors_for_Exploitation, Modes_of_Introduction, References, Relationships | |||
| 2017年05月03日 | CWE Content Team | MITRE | |
| updated Related_Attack_Patterns | |||
| 2014年07月30日 | CWE Content Team | MITRE | |
| updated Relationships | |||
| 2012年05月11日 | CWE Content Team | MITRE | |
| updated Relationships | |||
| 2011年06月01日 | CWE Content Team | MITRE | |
| updated Common_Consequences | |||
| 2011年03月29日 | CWE Content Team | MITRE | |
| updated Relationships | |||
| 2010年12月13日 | CWE Content Team | MITRE | |
| updated Related_Attack_Patterns | |||
| 2010年04月05日 | CWE Content Team | MITRE | |
| updated Related_Attack_Patterns | |||
| 2010年02月16日 | CWE Content Team | MITRE | |
| updated References | |||
| 2009年10月29日 | CWE Content Team | MITRE | |
| updated Applicable_Platforms, Common_Consequences, Description | |||
| 2009年07月27日 | CWE Content Team | MITRE | |
| updated Related_Attack_Patterns, Relationships | |||
| 2009年05月27日 | CWE Content Team | MITRE | |
| updated Demonstrative_Examples | |||
| 2009年03月10日 | CWE Content Team | MITRE | |
| updated Potential_Mitigations | |||
| 2009年01月12日 | CWE Content Team | MITRE | |
| updated Demonstrative_Examples, Description, Likelihood_of_Exploit, Name, Observed_Examples, Other_Notes, Potential_Mitigations, Relationships, Research_Gaps, Time_of_Introduction | |||
| 2008年09月08日 | CWE Content Team | MITRE | |
| updated Relationships, Other_Notes, Taxonomy_Mappings, Weakness_Ordinalities | |||
| 2008年07月01日 | Eric Dalci | Cigital | |
| updated Time_of_Introduction | |||
| Previous Entry Names | |||
| Change Date | Previous Entry Name | ||
| 2008年04月11日 | Client-Side Enforcement of Server-Side Security | ||
| 2009年01月12日 | Design Principle Violation: Client-Side Enforcement of Server-Side Security | ||
Use of the Common Weakness Enumeration (CWE™) and the associated references from this website are subject to the Terms of Use. CWE is sponsored by the U.S. Department of Homeland Security (DHS) Cybersecurity and Infrastructure Security Agency (CISA) and managed by the Homeland Security Systems Engineering and Development Institute (HSSEDI) which is operated by The MITRE Corporation (MITRE). Copyright © 2006–2025, The MITRE Corporation. CWE, CWSS, CWRAF, and the CWE logo are trademarks of The MITRE Corporation.