 描述
产品调用一个函数,程序,或常规参数不正确地指定,导致always-incorrect行为和合成的弱点。
 扩展描述
有多种方式可以介绍这个弱点,包括:
- 错误的变量或引用;
- 一个不正确的数量的参数;
- 不正确的参数;
- 错误的类型的参数;或
- 错误的值。
 的关系
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
 相关的视图”研究概念”(cwe - 1000)
自然 |
类型 |
ID |
的名字 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
573年 |
不当的规范由调用者 |
ParentOf |
变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 |
683年 |
函数调用与不正确的参数 |
ParentOf |
变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 |
685年 |
函数调用的参数的数量不正确 |
ParentOf |
变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 |
686年 |
函数调用与不正确的参数类型 |
ParentOf |
变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 |
687年 |
函数调用与指定参数值不正确 |
ParentOf |
变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 |
688年 |
与不正确的变量或函数调用引用作为参数 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
 相关观点“软件开发”(cwe - 699)
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1006年 |
糟糕的编码实践 |
 模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
 常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
其他 访问控制
|
这个弱点可能导致意想不到的行为,可能会导致额外的弱点如允许攻击者获得意想不到的对系统资源的访问。 |
|
 示范例子
示例1
下面的PHP方法鉴定了一个特定的用户名/密码组合但叫做参数在相反的顺序。
功能验证(用户名、密码)美元{ }
验证($ _POST['密码'],$ _POST['用户名']);
示例2
这个Perl代码打算记录用户是否认证成功与否,并退出,如果用户无法进行身份验证。然而,当它调用ReportAuth(),第三个参数是指定为0,而不是1,所以它不会退出。
子ReportAuth {
我的(用户名,因此,美元致命的美元)= @ _; PrintLog(“身份验证:用户名= % s,结果= % d”,用户名美元,美元的结果); 如果(($结果不“成功”)& & $致命){
死”失败! \ n”; } }
子PrivilegedFunc {
结果= CheckAuth美元($用户名); ReportAuth(用户名,因此,美元0); DoReallyImportantStuff (); }
示例3
下面的Java片段,accessGranted()方法不小心被称为静态ADMIN_ROLES数组而不是用户角色。
私有静态最终String [] ADMIN_ROLES =…; 公共布尔空白accessGranted(字符串资源,字符串用户){
String [] userRoles = getUserRoles(用户); 返回accessGranted(资源、ADMIN_ROLES); }
私人布尔空白accessGranted(字符串资源,String [] userRoles) { }
 观察到的例子
参考 |
描述 |
|
方法调用函数的参数顺序,它允许远程攻击者绕过访问限制。 |
 潜在的缓解措施
阶段:构建和编译
一旦发现,这些问题很容易解决。使用代码检查工具和相关的编译器特性来识别潜在的侵犯。特别注意的代码不可能行使在QA严重。 |
阶段:体系结构和设计
之前确保你的API是稳定在生产代码中使用它们。 |
 弱点Ordinalities
Ordinality |
描述 |
主 |
(缺点是一个质量问题,可能会间接更容易引入的安全相关的弱点或使他们更难检测)
这通常是主要的其他缺点,但它可以合成功能的API或函数原型变化。 |
 检测方法
其他
因为这些错误通常引入错误的行为明显的用户,他们很快发现,除非他们发生在rarely-tested代码路径。管理的正确数量的参数可以更困难的情况下使用格式字符串,或者当变量数目的参数支持。 |
 会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
736年 |
CERT C安全编码标准(2008)第3章-声明和初始化(DCL) |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
737年 |
CERT C安全编码标准(2008)第4章-表达式(EXP) |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
742年 |
CERT C安全编码标准(2008)第9章-内存管理(MEM) |
MemberOf |
视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 |
884年 |
CWE横截面 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
998年 |
SFP二级集群:故障计算 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1157年 |
SEI CERT C编码标准- 03指导方针。表达式(EXP) |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1180年 |
02 SEI CERT Perl编码标准,指导方针。声明和初始化(DCL) |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1181年 |
03 SEI CERT Perl编码标准,指导方针。表达式(EXP) |
 分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
CERT C安全编码 |
DCL10-C |
|
维护作家之间的合同和可变函数的调用者 |
CERT C安全编码 |
EXP37-C |
CWE更抽象 |
使用正确的数目和类型的参数,调用函数 |
SEI CERT Perl编码标准 |
DCL00-PL |
CWE更抽象 |
不使用子程序的原型吗 |
SEI CERT Perl编码标准 |
EXP33-PL |
不精确的 |
不调用一个函数在一个上下文没有定义吗 |
|