CWE

常见的弱点枚举

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

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

cwe - 909:失踪的初始化的资源

弱点ID: 909
抽象:基地
结构:简单的
视图定制的信息:
+描述
产品不初始化一个临界资源。
+扩展描述
许多资源需要初始化之前可以正常使用。如果没有初始化资源,它可以包含不可预知的或过期的数据,也可能是初始化为默认值是无效的。这可以有安全的影响当资源预计将有特定属性或值。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 665年 不适当的初始化
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 456年 失踪的初始化一个变量
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1271年 未初始化的值重置为注册安全设置
CanPrecede 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 908年 使用未初始化资源
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 399年 资源管理错误
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 665年 不适当的初始化
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
实现
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

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

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

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

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

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

资源可能包含未初始化的值导致程序流的方式改变程序员无意。
+利用的可能性
媒介
+示范例子

示例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)如果一个空终结者不是发现在年底前达到内存段,导致段错误和崩溃。

示例4

这个例子将在一个未知的条件下,当我离开test_string err_val是相同的值,因为test_string不是初始化(cwe - 456)。根据这个代码段出现(如在一个函数体),test_string可能是随机的,如果是存储在堆或堆栈。如果中声明的变量是静态内存,它可能是零个或NULL。编译器优化这个地址的不可预知性。

(坏的代码)
例如语言:C
char * test_string;
如果(我! = err_val)
{
test_string =“Hello World !”;
}
printf (" % s ", test_string);

当printf (), test_string可能是一个意想不到的地址,所以printf可能打印垃圾字符串(cwe - 457)。

修复这段代码中,有一些方法来确保已正确设置test_string一旦它到达printf ()。

一个解决方案是集test_string前可以接受默认的条件:

(好的代码)
例如语言:C
char * test_string =初“完成”;
如果(我! = err_val)
{
test_string =“Hello World !”;
}
printf (" % s ", test_string);

另一个解决方案是确保每个分支的条件,包括默认的/ else分支,可以确保test_string设置:

(好的代码)
例如语言:C
char * test_string;
如果(我! = err_val)
{
test_string =“Hello World !”;
}
其他{
test_string = "做另一边!”;
}
printf (" % s ", test_string);
+观察到的例子
参考 描述
一个变量,它的值中设置一个条件语句时有时使用条件失败,有时造成数据泄漏
链:旁路的访问限制由于不恰当的授权(cwe - 862)的用户从一个结果不正确初始化(cwe - 909位图)I / O许可
+潜在的缓解措施

实施阶段:

显式初始化资源使用前。如果这是通过一个API函数或标准执行过程中,遵循指定的所有步骤。

实施阶段:

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

实施阶段:

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

阶段:构建和编译

运行或编译您的产品设置生成警告未初始化的变量或数据。
+弱点Ordinalities
Ordinality 描述
(其他弱点的弱点存在独立的)
合成
(缺点是通常与其他弱点的存在)
+内容的历史
+提交
提交日期 提交者 组织
2012-12-21 CWE内容团队 主教法冠
新的基于讨论的弱点CWE的研究在2012年12月上市。
+修改
修改日期 修饰符 组织
2019-06-20 CWE内容团队 主教法冠
更新的关系
2020-02-24 CWE内容团队 主教法冠
更新的关系
2021-03-15 CWE内容团队 主教法冠
更新Demonstrative_Examples Observed_Examples
2023-01-31 CWE内容团队 主教法冠
更新描述、Potential_Mitigations关系
更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2023年1月31日