CWE

常见的弱点枚举

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

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

cwe - 665:不适当的初始化

弱点ID: 665
抽象:
结构:简单的
视图定制的信息:
+描述
产品不初始化或不正确地初始化一个资源,这可能会让资源在一个意想不到的状态时访问或使用。
+扩展描述
这可能有安全隐患时,相关资源预计将有一定的属性或值,如一个变量决定是否用户已经通过身份验证。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 支柱支柱——一个弱点是最抽象类型的弱点和代表一个主题类/基地/变体相关弱点。支柱是不同于一个类别作为支柱技术上仍然是一种弱点,描述了一个错误,而一个类别代表一个共同特征用于组相关的东西。 664年 资源的不当控制通过它的生命周期
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 454年 可信的外部初始化变量或数据存储
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 455年 出口在初始化失败
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 770年 资源配置没有限制或节流
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 908年 使用未初始化资源
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 909年 失踪的初始化资源
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1051年 用硬编码的网络资源配置数据初始化
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1052年 过度使用硬编码文本初始化
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1188年 不安全的默认初始化资源
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1221年 错误的注册违约或模块参数
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1279年 密码操作之前运行支持单位是准备好了
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 908年 使用未初始化资源
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 909年 失踪的初始化资源
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1188年 不安全的默认初始化资源
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及质量的措施(2020)”(CWE-1305)
自然 类型 ID 的名字
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 456年 失踪的初始化一个变量
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 457年 使用未初始化的变量
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及数据保护措施”(cwe - 1340)
自然 类型 ID 的名字
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 456年 失踪的初始化一个变量
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 457年 使用未初始化的变量
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
实现 这个弱点可能发生在没有经过良好测试的代码路径,如罕见的错误条件。这是因为使用未初始化的数据将会发现一个错误在经常使用的功能。
操作
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

类:不是特定于语言的患病率(待定)

+常见的后果
部分帮助这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 影响 可能性
保密

技术的影响:读记忆;读取应用程序数据

当重用资源如内存或程序变量,该资源的原始内容可能不被清除之前,发送到一个不可信的聚会。
访问控制

技术的影响:旁路保护机制

如果强调安全的决策依赖于一个变量有一个“0”或同等价值,这个编程语言执行初始化代表程序员,然后绕过安全可能发生。
可用性

技术的影响:DoS:崩溃,退出或重新启动

未初始化的数据可能包含值,导致程序流改变程序员无意的方式。例如,如果使用未初始化的变量作为数组索引在C语言中,那么它可能产生以前的内容索引数组的范围外,在其他环境中可能导致崩溃或退出。
+利用的可能性
媒介
+示范例子

示例1

在这里,一个布尔initiailized领域咨询,以确保初始化任务只完成了一次。然而,该领域是在静态初始化错误地设置为true,所以从来没有达到初始化代码。

(坏的代码)
例如语言:Java
私人布尔= true初始化;
公共空间someMethod () {
如果初始化(!){

/ /执行初始化任务


初始化= true;
}

示例2

下面的代码只打算限制某些操作管理员。

(坏的代码)
例如语言:Perl
用户名=美元GetCurrentUser ();
(状态= GetStateData美元用户名);
如果(定义(状态)美元){
(uid = ExtractUserID美元状态);
}

#做东西
如果(uid = = 0美元){
DoAdminThings ();
}

如果应用程序无法提取状态信息——比如说,由于数据库超时,那么$ uid变量将不会由程序员显式地设置。这将导致美元uid被视为等同于“0”条件,允许原始用户执行管理员操作。即使攻击者不能直接影响状态数据,意想不到的错误可能导致不正确的权限分配给一个用户只是偶然。

示例3

下面的代码将连接字符串变量并打印字符串。

(坏的代码)
例如语言:C
char str [20];
strcat (str,“hello world”);
printf (" % s ", str);

这可能看起来无辜的足够,但是str未初始化,所以它包含随机存储器。因此,str[0]可能不包含零终结者,所以复制可能开始一个偏移量0。结果可能会有所不同,这取决于底层的内存。

如果找到零终结者str[8]之前,一些字节的随机垃圾前将打印字符串“hello world”。从以前使用内存可能包含敏感信息,比如密码(这可能发生的结果CWE-14cwe - 244)。在这个例子中,它可能不是一个大问题,但考虑会发生什么如果大量内存输出零终结者。

如果没发现空终结者str[8]之前,可能会发生缓冲区溢出,因为strcat首先会查找零终结者,然后复制12字节从这个位置开始。此外,缓冲罩上可能发生(cwe - 126)如果一个空终结者不是发现在年底前达到内存段,导致段错误和崩溃。

+观察到的例子
参考 描述
链:无效的值可以防止一个库文件被包括在内,跳过初始化的关键变量,导致合成eval注入。
不当的错误检查保护机制产生未初始化的变量,允许安全旁路和代码的执行。
使用未初始化的内存可能会允许代码执行。
未初始化的指针会导致崩溃和可能的代码执行。
操作系统内核不重置一个端口,当开始一个setuid程序,允许本地用户访问端口和获得的特权。
产品不清楚内存内容时生成一个错误消息,导致信息泄漏。
没有初始化触发NULL指针或双重释放。
未初始化的变量导致流行的桌面应用程序的代码执行。
链:未初始化的变量会导致无限循环。
链:不适当的初始化会导致内存泄露。
综合:竞争条件允许攻击者修改一个对象虽然仍被初始化,导致软件访问未初始化的内存。
链:旁路的访问限制由于不恰当的授权(cwe - 862)的用户从一个结果不正确初始化(cwe - 909位图)I / O许可
链:游戏服务器可以访问玩家数据结构初始化之前发生了导致零废弃
链:可以解除引用未初始化的函数指针允许代码执行
链:初始化内存不当会导致零废弃
链:一些贫穷的ioctl不验证结构已经初始化之前调用,导致零废弃
+潜在的缓解措施

阶段:需求

策略:语言选择

使用一种语言,不允许这个弱点或发生提供了结构,使这个弱点更容易避免的。

例如,在Java中,如果程序员不显式初始化一个变量,然后代码可以产生一个编译时错误(如果变量是本地)或自动初始化变量的默认值变量的类型。在Perl中,如果没有执行显式的初始化,然后分配一个默认值undef,解释为0,假,或同等价值取决于上下文变量的访问。

阶段:体系结构和设计

识别所有的变量和数据存储,接收信息从外部来源,并应用输入验证以确保他们只是预期值初始化。

实施阶段:

显式初始化所有的变量和其他数据存储在声明或在第一次使用。

实施阶段:

密切关注复杂的条件,影响初始化,因为一些条件可能不执行初始化。

实施阶段:

避免竞态条件(cwe - 362在初始化例程)。

阶段:构建和编译

运行或编译您的产品设置生成警告未初始化的变量或数据。

测试阶段:

使用自动静态分析工具针对这种类型的弱点。许多现代技术利用数据流分析,减少假阳性的数量。这不是一个完美的解决方案,因为100%的准确率和覆盖率不可行。
+弱点Ordinalities
Ordinality 描述
(其他弱点的弱点存在独立的)
合成
(缺点是通常与其他弱点的存在)
+检测方法

自动动态分析

这个弱点能被探测到的使用动态交互的工具和技术的软件使用大型测试套件和许多不同的输入,如模糊测试(起毛)健壮性测试和故障注入。软件的操作可能慢下来,但它不应该成为不稳定,崩溃,或者产生不正确的结果。

初始化问题可以检测到压力测试通过调用软件同时从大量的线程或进程,并寻找任何意想不到的行为的证据。软件的操作可能慢下来,但它不应该成为不稳定,崩溃,或者产生不正确的结果。

有效性:温和

手动动态分析

识别错误情况不太可能发生在正常使用和触发器。例如,在低内存条件下运行程序,运行特权或权限不足,中断一个事务之前完成,或禁用连接DNS等基本网络服务。监控软件为任何意想不到的行为。如果你触发一个未处理的异常或类似的错误被发现,由应用程序的环境中,它仍可能表明意想不到的条件并不是由应用程序本身。
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 740年 CERT C安全编码标准(2008)第七章-数组(ARR)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 742年 CERT C安全编码标准(2008)第9章-内存管理(MEM)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 752年 2009年前25 -资源管理风险
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 846年 CERT甲骨文安全Java编码标准(2011)第3章-声明和初始化(DCL)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 874年 CERT c++安全编码部分06 -数组和STL (ARR)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 876年 CERT c++安全编码部分08 -内存管理(MEM)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 962年 SFP二级集群:未经检查的状态情况
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1003年 弱点简化映射的漏洞发布
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1135年 SEI CERT甲骨文安全编码标准Java - 01指导方针。声明和初始化(DCL)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1306年 方案及质量措施——可靠性
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1308年 方案及质量措施,安全
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 1340年 方案及数据保护措施
+分类法映射
映射分类名称 节点ID 适合 映射节点名
千鸟 不正确的初始化
CERT C安全编码 ARR02-C 显式地指定数组界限,即使隐式定义的初始化器
CERT甲骨文安全Java编码标准(2011) DCL00-J 防止类初始化周期
软件故障模式 SFP4 不受控制的状态条件
+引用
(ref - 436)怜悯。“利用未初始化的数据”。2006 - 01。<http://www.felinemenace.org/ /论文/ UBehavior / UBehavior.zip摆布>。
(ref - 437)微软安全漏洞研究和国防。“ms08 - 014:未初始化堆栈变量脆弱性”的情况下。2008-03-11。<http://blogs.technet.com/swi/archive/2008/03/11/the-case-of-the-uninitialized-stack-variable-vulnerability.aspx>。
(ref - 62)马克·多德约翰麦克唐纳和贾斯汀Schuh。“软件安全评估的艺术”。第七章“变量初始化”,312页。1版。艾迪生卫斯理》2006。
+内容的历史
+提交
提交日期 提交者 组织
2008-04-11 千鸟
+修改
修改日期 修饰符 组织
2008-07-01 肖恩Eidemiller Cigital
添加/更新示范例子
2008-07-01 Eric Dalci Cigital
更新Potential_Mitigations Time_of_Introduction
2008-09-08 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2008-11-24 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2009-01-12 CWE内容团队 主教法冠
更新Common_Consequences Demonstrative_Examples,描述、Likelihood_of_Exploit Modes_of_Introduction,名字,Observed_Examples, Potential_Mitigations,引用关系,Weakness_Ordinalities
2009-03-10 CWE内容团队 主教法冠
更新Potential_Mitigations
2009-05-27 CWE内容团队 主教法冠
更新描述、人际关系
2009-07-27 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2009-10-29 CWE内容团队 主教法冠
更新Common_Consequences
2010-02-16 CWE内容团队 主教法冠
更新Potential_Mitigations
2010-04-05 CWE内容团队 主教法冠
更新Applicable_Platforms
2010-06-21 CWE内容团队 主教法冠
更新Detection_Factors Potential_Mitigations
2010-09-27 CWE内容团队 主教法冠
更新Observed_Examples
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences、关系、Taxonomy_Mappings
2011-09-13 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2012-05-11 CWE内容团队 主教法冠
更新Demonstrative_Examples、引用关系,Taxonomy_Mappings
2013-02-21 CWE内容团队 主教法冠
更新Demonstrative_Examples、人际关系
2014-07-30 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2015-12-07 CWE内容团队 主教法冠
更新的关系
2017-01-19 CWE内容团队 主教法冠
更新的类型
2017-11-08 CWE内容团队 主教法冠
更新引用,Taxonomy_Mappings
2019-01-03 CWE内容团队 主教法冠
更新Related_Attack_Patterns、关系、Taxonomy_Mappings
2019-06-20 CWE内容团队 主教法冠
更新的关系
2020-02-24 CWE内容团队 主教法冠
更新的关系
2020-06-25 CWE内容团队 主教法冠
更新的关系
2020-08-20 CWE内容团队 主教法冠
更新的关系
2020-12-10 CWE内容团队 主教法冠
更新的关系
2021-03-15 CWE内容团队 主教法冠
更新Observed_Examples
2023-01-31 CWE内容团队 主教法冠
更新描述、Potential_Mitigations关系
+以前的条目名称
改变日期 以前的条目名称
2009-01-12 不正确或不完整的初始化
更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2023年1月31日