ID: 688 类型:变量 | 状态:草稿 |
描述
软件调用函数、过程或例程,但调用方指定错误的变量或引用作为参数之一,这可能导致未定义的行为和结果弱点。
相关视图
与“研究层面”视图(CWE-1000)相关
与“开发层面”视图(CWE-699)相关
引入模式
阶段 | 说明 |
实现 | 此问题通常在打字错误或是拷贝粘贴错误时发生。 |
应用平台
语言
C (出现的可能性不确定)
Perl (出现的可能性不确定)
后果
范围 | 冲击 | 可能性 |
其它 | 技术冲击: 质量下降 |
示例
例1
在下面的java代码段中,accessGranted()方法调用时候不小心以静态ADMIN_ROLES数组作为参数而没有使用user roles作为参数。
(问题代码)
Example Language: Java
private static final String[] ADMIN_ROLES = ...;
public boolean void accessGranted(String resource, String user) {
String[] userRoles = getUserRoles(user);
return accessGranted(resource, ADMIN_ROLES);
}
private boolean void accessGranted(String resource, String[] userRoles) {
// grant or deny access based on user roles
...
}
应对措施
阶段: 测试 由于此函数调用通常会产生不正确的行为,因此通常会在测试或软件正常运行期间检测到它。在测试过程中,所有可能的控制路径通常都会暴露出这个弱点,除非在极少数情况下,不正确的函数调用意外地产生正确的结果,或者如果提供的参数类型与预期的参数类型非常相似。 |
种属
关系 | 类型 | ID | 名称 |
属于 | 998 |