CWE

常见的弱点枚举

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

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

cwe - 825:过期的指针

弱点ID: 825
抽象:基地
结构:简单的
视图定制的信息:
+描述
产品取消引用指针包含一个内存位置之前有效,但不再有效。
+扩展描述
当一个产品释放内存,但它维护了一个指针,内存,那么在以后可能会重新分配的内存。如果原始指针访问读或写数据,那么这可能导致产品读取或修改数据的使用不同的函数或过程。取决于如何使用新内存,这可能会导致拒绝服务,信息曝光,或代码执行。
+替代条款
悬空指针
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 672年 过期或释放后操作资源
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 119年 不当的操作限制的范围内一个内存缓冲区
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 415年 双自由
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 416年 使用后免费
光束 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 562年 返回堆栈变量的地址
CanPrecede 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 125年 禁止入内的读
CanPrecede 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 787年 禁止入内的写
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 465年 指针的问题
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及质量的措施(2020)”(CWE-1305)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 119年 不当的操作限制的范围内一个内存缓冲区
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及数据保护措施”(cwe - 1340)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 119年 不当的操作限制的范围内一个内存缓冲区
+常见的后果
部分帮助这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 影响 可能性
保密

技术的影响:读记忆

如果使用过期的指针读操作,攻击者可以由应用程序控制数据读入。
可用性

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

如果过期指针引用的内存位置访问产品,或点的位置“畸形”(如零)或大于预期的读或写操作,就可能发生车祸。
完整性
保密
可用性

技术的影响:执行未经授权的代码或命令

如果使用过期的指针函数调用,或指向意想不到的数据写操作,那么代码执行可能是可能的。
+示范例子

示例1

下面的代码显示了一个简单的例子,一个用自由后错误:

(坏的代码)
例如语言:C
char * ptr = (char *) malloc(大小);
如果(err) {
abrt = 1;
免费(ptr);
}

如果(abrt) {
logError(“操作中止之前提交”,ptr);
}

当一个错误发生时,立即释放的指针。然而,这个指针是后来logError函数中使用不正确。

示例2

下面的代码显示了一个简单的双自由错误的例子:

(坏的代码)
例如语言:C
char * ptr = (char *) malloc(大小);

如果(abrt) {
免费(ptr);
}

免费(ptr);

双自由漏洞有两个共同的(有时是重叠的)原因:

  • 错误条件和其他特殊情况
  • 混乱的程序负责释放内存的一部分

虽然有些双自由漏洞并不比前面的例子复杂得多,大多数分布在数百行代码,甚至不同的文件。程序员似乎特别容易释放全局变量不止一次。

+观察到的例子
参考 描述
过期的内存地址的访问会导致执行任意代码
陈旧的指针问题可能导致拒绝服务和其他后果
链:消息在一个未知的消息类型可能导致引用未初始化的内存导致一个空指针(cwe - 476)或悬空指针(cwe - 825),系统可能会崩溃或导致堆损毁。
一个偏移量的值读入结构抵消后不再有效
+潜在的缓解措施

阶段:体系结构和设计

选择一种语言,提供了自动内存管理。

实施阶段:

释放指针时,一定要让他们为NULL一旦释放。然而,利用多个或复杂的数据结构可能会降低这一策略的有效性。
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 867年 2011年处于25 -弱点
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 884年 CWE横截面
+笔记

术语

很多弱点有关取消引用指针下降的通项下“内存泄露”或“内存安全。”As of September 2010, there is no commonly-used terminology that covers the lower-level variants.

维护

错误的取消引用指针之间有密切的关系和相关弱点缓冲区操作。可能没有足够的社区对这些关系的协议。需要进一步的研究来确定当这些关系链,复合材料,角度/分层,或其他类型的关系。截至2010年9月,大多数被捕获的关系链。
+内容的历史
+提交
提交日期 提交者 组织
2010-09-22 CWE内容团队 主教法冠
+修改
修改日期 修饰符 组织
2011-06-27 CWE内容团队 主教法冠
更新Demonstrative_Examples Potential_Mitigations,关系
2012-05-11 CWE内容团队 主教法冠
更新Demonstrative_Examples、人际关系
2013-02-21 CWE内容团队 主教法冠
更新Alternate_Terms
2020-02-24 CWE内容团队 主教法冠
更新的关系
2020-08-20 CWE内容团队 主教法冠
更新的关系
2020-12-10 CWE内容团队 主教法冠
更新的关系
2021-03-15 CWE内容团队 主教法冠
更新Observed_Examples
2022-04-28 CWE内容团队 主教法冠
更新Research_Gaps
2023-01-31 CWE内容团队 主教法冠
更新Common_Consequences、描述
更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2023年1月31日