CWE

常见的弱点枚举

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

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

cwe - 401:缺少有效寿命后释放的内存

弱点ID: 401
抽象:变体
结构:简单的
视图定制的信息:
+描述
产品没有足够的跟踪和释放分配的内存后,慢慢消耗剩余的内存。
+扩展描述
这通常是由操作不当引起的畸形或意外中断会话数据。在一些语言中,开发人员负责跟踪内存分配和释放内存。如果没有其他指针或引用的内存,那么它可以为释放不再被跟踪和识别。
+替代条款
内存泄漏
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 772年 失踪后释放资源的有效寿命
光束 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 390年 没有行动检测错误条件
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 404年 不当关机或释放资源
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及质量的措施(2020)”(CWE-1305)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 404年 不当关机或释放资源
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
实现

有两个常见的内存泄漏,有时重叠的原因:

  • 错误条件和其他特殊情况
  • 混乱的程序负责释放内存的一部分
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

C患病率(待定)

c++患病率(待定)

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

技术的影响:DoS:崩溃,退出或重新启动;DoS:不稳定;DoS:资源消耗(CPU);DoS:资源消耗(内存)

大多数内存泄漏导致通用产品可靠性问题,但是如果攻击者可以故意引发内存泄漏,攻击者可能会发起拒绝服务攻击(崩溃或挂程序)或利用其他意想不到的程序行为造成的低内存条件。
其他

技术的影响:降低性能

+利用的可能性
媒介
+示范例子

示例1

下面的C函数分配一块内存泄漏如果调用读()不返回预期的字节数:

(坏的代码)
例如语言:C
char * getBlock (int fd) {
char * buf = (char *) malloc (BLOCK_SIZE);
如果(buf) {
返回NULL;
}
如果(读(fd,但BLOCK_SIZE) ! = BLOCK_SIZE) {

返回NULL;
}
返回缓冲区;
}
+观察到的例子
参考 描述
内存泄漏,因为不自由()函数数据结构的一个元素。
内存泄漏时计数器变量不是递减。
链:引用计数不递减,导致操作系统的内存泄漏通过发送ICMP数据包。
内核使用错误的函数来释放一个数据结构,防止数据被其他代码正确跟踪。
内存泄漏通过未知的操作协议测试套件的一部分。
内存泄漏通过一系列相同的命令。
+潜在的缓解措施

实施阶段:

策略:库或框架

选择一种语言或工具,提供了自动内存管理,或使手动内存管理更少出错。

例如,glibc Linux提供保护反对自由的无效的指针。

当使用Xcode目标OS X或iOS,启用自动引用计数(弧)ref - 391]。

帮助正确和一致地管理内存在c++编程时,考虑使用智能指针类比如std:: auto_ptr(定义为ISO / IEC ISO / IEC 14882:2003), std::要和std:: unique_ptr(规定即将到来的c++标准的修订,正式称为C + + 1 x),或等价的解决方案,比如提高。

阶段:体系结构和设计

使用一个抽象库抽象危险的api。不是一个完整的解决方案。

阶段:体系结构和设计;构建和编译

Boehm-Demers-Weiser垃圾收集器或valgrind可用来检测泄漏的代码。
注意:这不是一个完整的解决方案,因为它不是100%的有效。
+弱点Ordinalities
Ordinality 描述
合成
(缺点是通常与其他弱点的存在)
+功能区域
  • 内存管理
+影响资源
  • 内存
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 398年 7 pk -代码质量
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 730年 OWASP十大2004类别A9 -拒绝服务
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 861年 CERT甲骨文安全Java编码标准(2011)第18章-杂项(MSC)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1152年 SEI CERT甲骨文Java安全编码标准,指南49。杂项(MSC)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1162年 SEI CERT 08 C编码标准指导方针。内存管理(MEM)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1238年 SFP主要集群:未能释放内存
+笔记

的关系

这通常是一个合成的弱点由于畸形数据处理不当或提前终止会话。

术语

“内存泄漏”有时被用来描述其他的问题,例如信息泄漏内存的内容在无意中泄露(cve - 2003 - 0400就是这样一个例子,这个术语冲突)。
+分类法映射
映射分类名称 节点ID 适合 映射节点名
千鸟 内存泄漏
7有害的王国 内存泄漏
未能释放数据
OWASP十大2004 A9 CWE更具体 拒绝服务
CERT C安全编码 MEM31-C 确切的 在不再需要时释放动态分配的内存
CERT甲骨文安全Java编码标准(2011) MSC04-J 没有内存泄漏
软件故障模式 SFP14 未能释放资源
OMG ASCPEM ASCPEM-PRF-14
+引用
[REF-18]安全软件公司. .“扣应用程序安全性的过程”。2005年。<https://cwe.mitre.org/documents/sources/TheCLASPApplicationSecurityProcess.pdf>。
ref - 390 j·维特克和h·汤普森。“如何打破软件安全”。艾迪生卫斯理》2003。
[ref - 391] iOS开发库。“过渡电弧释放笔记”。2013-08-08。<https://developer.apple.com/library/ios/releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html>。
(ref - 959)对象管理组织(OMG)。“自动源代码性能效率测量(ASCPEM)”。ASCPEM-PRF-14。2016 - 01。<http://www.omg.org/spec/ASCPEM/1.0>。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19 千鸟
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Time_of_Introduction
2008-08-01 股的分析
添加/更新白盒定义
2008-08-15 Veracode
建议OWASP 2004年排名前十的映射
2008-09-08 CWE内容团队 主教法冠
更新Applicable_Platforms Common_Consequences,关系,Other_Notes,引用,Relationship_Notes, Taxonomy_Mappings Terminology_Notes
2008-10-14 CWE内容团队 主教法冠
更新描述
2009-03-10 CWE内容团队 主教法冠
更新Other_Notes
2009-05-27 CWE内容团队 主教法冠
更新后的名字
2009-07-17 股的分析
改善了White_Box_Definition
2009-07-27 CWE内容团队 主教法冠
更新White_Box_Definitions
2009-10-29 CWE内容团队 主教法冠
更新Modes_of_Introduction Other_Notes
2010-02-16 CWE内容团队 主教法冠
更新的关系
2010-06-21 CWE内容团队 主教法冠
更新Other_Notes Potential_Mitigations
2010-12-13 CWE内容团队 主教法冠
更新Demonstrative_Examples、名称
2011-03-29 CWE内容团队 主教法冠
更新Alternate_Terms
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences、关系、Taxonomy_Mappings
2012-05-11 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2012-10-30 CWE内容团队 主教法冠
更新Potential_Mitigations
2013-02-21 CWE内容团队 主教法冠
更新Observed_Examples
2014-02-18 CWE内容团队 主教法冠
更新Potential_Mitigations,引用
2014-07-30 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2017-11-08 CWE内容团队 主教法冠
更新引用关系,Taxonomy_Mappings White_Box_Definitions
2019-01-03 CWE内容团队 主教法冠
Common_Consequences更新,Demonstrative_Examples、名称、引用关系,Taxonomy_Mappings,类型,Weakness_Ordinalities
2019-06-20 CWE内容团队 主教法冠
更新描述、名称
2020-02-24 CWE内容团队 主教法冠
更新引用关系,Taxonomy_Mappings
2020-08-20 CWE内容团队 主教法冠
更新的关系
2021-03-15 CWE内容团队 主教法冠
更新的关系
2022-10-13 CWE内容团队 主教法冠
更新Taxonomy_Mappings
2023-01-31 CWE内容团队 主教法冠
更新Common_Consequences、描述
+以前的条目名称
改变日期 以前的条目名称
2008-04-11 内存泄漏
2009-05-27 未能释放内存之前删除最后引用(又名“内存泄漏”)
2010-12-13 删除最后引用之前未能释放内存(内存泄漏)
2019-01-03 不当释放的内存之前删除最后引用(内存泄漏)
2019-06-20 不当释放的内存之前删除最后一个参考
更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2023年1月31日