CWE

常见的弱点枚举

一个由社区开发的软件&硬件缺陷类型的列表

2021 CWE最重要的硬件的弱点
CWE最危险的弱点
>CWE列表> CWE -个人字典定义(4.10)
ID

cwe - 768:不正确的短路评估

弱点ID: 768
抽象:变体
结构:简单的
视图定制的信息:
+描述
产品与多个逻辑表达式中包含一个条件语句的一个非起始表达式可能会产生副作用。这可能会导致一个意想不到的状态后的程序的执行条件,因为短路逻辑可能避免副作用的发生。
+扩展描述

短路的使用评价,尽管C标准定义良好的,可能改变控制流的方式介绍了很难发现的逻辑错误,可能导致错误后产品的执行期间。如果攻击者可以发现这样一个矛盾,它有可能被利用来获得任意控制系统。

如果第一个条件的”或“声明被认为是真正的在正常情况下,如果第一个条件的”和“声明被认为是假的,那么任何后续条件可能包含自己的逻辑错误,代码评审或测试过程中检测到。

最后,使用短路评估可能会降低代码的可维护性。

+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 支柱支柱——一个弱点是最抽象类型的弱点和代表一个主题类/基地/变体相关弱点。支柱是不同于一个类别作为支柱技术上仍然是一种弱点,描述了一个错误,而一个类别代表一个共同特征用于组相关的东西。 691年 控制流管理不足
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
实现
+常见的后果
部分帮助这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 影响 可能性
保密
完整性
可用性

技术的影响:

广泛多样的后果是可能的如果攻击者是意识到一个意想不到的国家有条件后的产品。它可能导致暴露信息,系统崩溃,甚至完整的攻击者的控制系统。
+利用的可能性
+示范例子

示例1

以下函数试图从用户价值大小,分配一个数组的大小(我们忽略边界检查为简单起见)。函数试图每个现货指数的值初始化,也就是说,一个[len-1] = len - 1;[len-2] = len - 2;…[1]= 1;[0]= 0;然而,由于程序员使用前缀减运算符,当条件评估我= = 1,衰减会导致0值谓词的第一部分,通过短路导致第二部分绕过评估。这意味着我们无法确定的值将在[0]当我们向用户返回数组。

(坏的代码)
例如语言:C
#定义PRIV_ADMIN 0
#定义PRIV_REGULAR 1
typedef struct {
int特权;
int id;
}user_t;
user_t * Add_Regular_Users (int num_users) {
user_t *用户= (user_t *) calloc (num_users sizeof (user_t));
int i = num_users;
虽然(我& &(用户[我]。特权= PRIV_REGULAR)) {
用户[我]。id =我;
}
返回用户;
}
int main () {
user_t *测试;
int我;
测试= Add_Regular_Users (25);
(我= 0;我< 25;我+ +)printf(“用户% d特权水平% d \ n”,测试[我]。id、测试[我].privileges);
}

编译和运行时,上面的代码将输出一个特权级别1,或为每个用户PRIV_REGULAR但用户id为0的if语句中使用的前缀增量运算符将达到零,短路前设置第0个用户的权限级别。因为我们使用calloc,这种特权将被设置为0,或者PRIV_ADMIN。

+潜在的缓解措施

实施阶段:

最小化的条件语句的数量产生的副作用将有助于防止短路的可能性评估以一种意想不到的方式来改变控制流。
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 871年 CERT c++安全编码部分03 -表达式(EXP)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 998年 SFP二级集群:故障计算
+分类法映射
映射分类名称 节点ID 适合 映射节点名
未能保护存储的数据修改
软件故障模式 SFP1只能 在计算故障
+内容的历史
+提交
提交日期 提交者 组织
2009-03-03 CWE内容团队 主教法冠
+修改
修改日期 修饰符 组织
2010-09-27 CWE内容团队 主教法冠
更新描述
2011-09-13 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2012-05-11 CWE内容团队 主教法冠
更新的关系
2014-07-30 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2017-11-08 CWE内容团队 主教法冠
更新Likelihood_of_Exploit Taxonomy_Mappings
2020-02-24 CWE内容团队 主教法冠
更新的关系
2023-01-31 CWE内容团队 主教法冠
更新Common_Consequences、描述
更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2023年1月31日