CWE-481: Assigning instead of Comparing
CWE版本: 4.18
更新日期: 2025-09-09
弱点描述
The code uses an operator for assignment when the intention was to perform a comparison.
扩展描述
In many languages the compare statement is very close in appearance to the assignment statement and are often confused. This bug is generally the result of a typo and usually causes obvious problems with program execution. If the comparison is in an if statement, the if statement will usually evaluate the value of the right-hand side of the predicate.
常见后果
影响范围: Other
技术影响: Alter Execution Logic
潜在缓解措施
阶段: Testing
描述: Many IDEs and static analysis products will detect this problem.
阶段: Implementation
描述: Place constants on the left. If one attempts to assign a constant with a variable, the compiler will produce an error.
检测方法
方法: Automated Static Analysis
Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.)
有效性: High
引入模式
| 阶段 | 说明 |
|---|---|
| Implementation | - |
适用平台
编程语言
分类映射
| 分类名称 | 条目ID | 条目名称 | 映射适配度 |
|---|---|---|---|
| CLASP | - | Assigning instead of comparing | - |
| Software Fault Patterns | SFP1 | Glitch in computation | - |
| CERT C Secure Coding | EXP45-C | Do not perform assignments in selection statements | CWE More Abstract |