cwe - 688:与不正确的变量或函数调用引用作为参数
描述
产品调用一个函数、过程或程序,但调用者指定了错误的变量或引用作为参数,这可能会导致未定义的行为和结果的弱点。
的关系
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 |
请注意 |
实现 |
这个问题通常发生在程序员输入错误,或复制和粘贴错误。 |
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
示范例子
示例1
下面的Java片段,accessGranted()方法不小心被称为静态ADMIN_ROLES数组而不是用户角色。
私有静态最终String [] ADMIN_ROLES =…; 公共布尔空白accessGranted(字符串资源,字符串用户){
String [] userRoles = getUserRoles(用户); 返回accessGranted(资源、ADMIN_ROLES); }
私人布尔空白accessGranted(字符串资源,String [] userRoles) { }
观察到的例子
参考 |
描述 |
|
内核代码指定了错误的变量在第一个参数中,导致合成NULL指针。 |
潜在的缓解措施
测试阶段:
因为这个函数调用通常产生不正确的行为,它将通常被发现在测试或产品的正常运行。在测试过程中所有可能的控制路径通常会公开这一弱点除了极少数情况下错误的函数调用时不小心产生正确的结果,或者提供的参数类型非常类似于预期的参数类型。 |
弱点Ordinalities
Ordinality |
描述 |
主 |
(其他弱点的弱点存在独立的) |
检测方法
其他
虽然这个弱点可能被一些语言的编译器,它可以更频繁地发生在案件中,被调用的函数接受变量数量的参数,如在c格式字符串也可以发生在松散类型语言或环境。这可能需要预定程序行为的理解或设计确定的值是不正确的。 |
脆弱性映射笔记
用法:允许
(CWE ID可以用来映射到现实世界的漏洞) |
原因:可接受的使用 |
理由是: 这个CWE条目是变体的抽象级别,这是一个首选的抽象级别映射到漏洞的根本原因。 |
评论: 仔细阅读这两个名称和描述,以确保此映射是一个适当的配合。不要试图“力”映射到底层基础/变体只是遵守这首选的抽象级别。 |
更多的信息是可用的,请编辑自定义过滤器或选择一个不同的过滤器。
|