 描述
产品取消引用指针包含一个内存位置之前有效,但不再有效。
 扩展描述
当一个产品释放内存,但它维护了一个指针,内存,那么在以后可能会重新分配的内存。如果原始指针访问读或写数据,那么这可能导致产品读取或修改数据的使用不同的函数或过程。取决于如何使用新内存,这可能会导致拒绝服务,信息曝光,或代码执行。
 替代条款
 的关系
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为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年 |
不当的操作限制的范围内一个内存缓冲区 |
 常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密
|
如果使用过期的指针读操作,攻击者可以由应用程序控制数据读入。 |
|
可用性
|
如果过期指针引用的内存位置访问产品,或点的位置“畸形”(如零)或大于预期的读或写操作,就可能发生车祸。 |
|
完整性 保密 可用性
|
如果使用过期的指针函数调用,或指向意想不到的数据写操作,那么代码执行可能是可能的。 |
|
 示范例子
示例1
下面的代码显示了一个简单的例子,一个用自由后错误:
char * ptr = (char *) malloc(大小); 如果(err) {
abrt = 1; 免费(ptr); } … 如果(abrt) {
logError(“操作中止之前提交”,ptr); }
当一个错误发生时,立即释放的指针。然而,这个指针是后来logError函数中使用不正确。
示例2
下面的代码显示了一个简单的双自由错误的例子:
char * ptr = (char *) malloc(大小); … 如果(abrt) {
免费(ptr); } … 免费(ptr);
双自由漏洞有两个共同的(有时是重叠的)原因:
-
错误条件和其他特殊情况
-
混乱的程序负责释放内存的一部分
虽然有些双自由漏洞并不比前面的例子复杂得多,大多数分布在数百行代码,甚至不同的文件。程序员似乎特别容易释放全局变量不止一次。
 观察到的例子
参考 |
描述 |
|
过期的内存地址的访问会导致执行任意代码 |
|
陈旧的指针问题可能导致拒绝服务和其他后果 |
|
|
|
一个偏移量的值读入结构抵消后不再有效 |
 潜在的缓解措施
阶段:体系结构和设计
选择一种语言,提供了自动内存管理。 |
实施阶段:
释放指针时,一定要让他们为NULL一旦释放。然而,利用多个或复杂的数据结构可能会降低这一策略的有效性。 |
 笔记
术语
很多弱点有关取消引用指针下降的通项下“内存泄露”或“内存安全。”As of September 2010, there is no commonly-used terminology that covers the lower-level variants.
维护
错误的取消引用指针之间有密切的关系和相关弱点缓冲区操作。可能没有足够的社区对这些关系的协议。需要进一步的研究来确定当这些关系链,复合材料,角度/分层,或其他类型的关系。截至2010年9月,大多数被捕获的关系链。
|