CWE

常见的弱点枚举

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

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

cwe - 479:信号处理器使用不可重入函数

弱点ID: 479
抽象:变体
结构:简单的
视图定制的信息:
+描述
产品定义了一个信号处理程序,调用一个不可重入函数。
+扩展描述

不可重入函数是函数不能安全地,打断,然后回忆起第一次调用完成之前没有导致内存泄露。这可能会导致一个意想不到的系统状态和不可预测的结果与各种各样的潜在后果取决于上下文,包括拒绝服务和代码的执行。

许多函数是不可重入的,但是其中的一些会导致记忆的腐败,如果他们被用在一个信号处理程序。syslog()函数调用是一个这样的例子。为了执行其功能,它分配少量的内存空间。”If syslog() is suspended by a signal call and the signal handler calls syslog(), the memory used by both of these functions enters an undefined, and possibly, exploitable state. Implementations of malloc() and free() manage metadata in global structures in order to track which memory is allocated versus which memory is available, but they are non-reentrant. Simultaneous calls to these functions can cause corruption of the metadata.

+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 663年 在并发环境中使用不可重入函数
ChildOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 828年 这不是Asynchronous-Safe信号处理器与功能
CanPrecede 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 123年 Write-what-where条件
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 429年 处理程序错误
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
实现
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

C患病率(待定)

c++患病率(待定)

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

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

可以执行任意代码通过使用write-what-where条件。
完整性

技术的影响:修改内存;修改应用程序数据

信号竞态条件往往导致数据损坏。
+利用的可能性
+示范例子

示例1

在这个例子中,一个信号处理程序使用syslog()日志信息:

(坏的代码)
char *消息;
空白sh (int假){
syslog (LOG_NOTICE“% s \ n”,消息);
睡眠(10);
退出(0);
}
int主要(int命令行参数个数,char * argv []) {

信号(SIGHUP, sh);
信号(SIGTERM, sh);
睡眠(10);
退出(0);
}
如果第一次调用的执行信号处理程序暂停后调用syslog()和信号处理程序被称为第二次分配的内存由syslog()进入一个未定义的,并可能,可利用的状态。
+观察到的例子
参考 描述
信号处理程序调用函数,最终使用malloc ()
SIGCHLD信号FTP服务器负载过大的情况下会导致崩溃而执行malloc / free等不可重入函数。
+潜在的缓解措施

阶段:需求

需要语言或库,提供可重入的功能,或使它更容易避免这个弱点。

阶段:体系结构和设计

设计信号处理程序只设置国旗而不是执行复杂的功能。

实施阶段:

确保不可重入函数中没有信号处理程序。

实施阶段:

使用健康检查来减少开发的时间窗口的竞态条件。这只是一个部分解决方案,因为许多攻击可能会失败,但是其他的攻击仍然可能工作窗口范围内,甚至不小心。

有效性:深度防御

+影响资源
  • 系统进程
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 745年 CERT C安全编码标准(2008)第十二章-信号(团体)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 847年 CERT甲骨文安全Java编码标准(2011)第4章-表达式(EXP)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 879年 11 - CERT c++安全编码部分信号(团体)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1001年 SFP二级集群:使用不当的API
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1166年 SEI CERT 11 C编码标准指导方针。信号(团体)
+分类法映射
映射分类名称 节点ID 适合 映射节点名
不安全的在信号处理函数中函数调用
CERT C安全编码 SIG30-C 确切的 在信号处理程序调用只有asynchronous-safe函数
CERT C安全编码 SIG34-C 不调用信号()从内部可中断信号处理程序吗
CERT甲骨文安全Java编码标准(2011) EXP01-J 从未废弃空指针
软件故障模式 SFP3 使用不当的API
+引用
[REF-18]安全软件公司. .“扣应用程序安全性的过程”。2005年。<https://cwe.mitre.org/documents/sources/TheCLASPApplicationSecurityProcess.pdf>。
(ref - 62)马克·多德约翰麦克唐纳和贾斯汀Schuh。“软件安全评估的艺术”。13章,“漏洞”,791页。1版。艾迪生卫斯理》2006。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Time_of_Introduction
2008-09-08 CWE内容团队 主教法冠
更新Applicable_Platforms Common_Consequences、描述关系,Other_Notes Taxonomy_Mappings
2008-11-24 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2010-09-27 CWE内容团队 主教法冠
更新的关系
2010-12-13 CWE内容团队 主教法冠
更新Demonstrative_Examples、描述、名称、Observed_Examples Other_Notes Potential_Mitigations、人际关系
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences、关系、Taxonomy_Mappings
2011-06-27 CWE内容团队 主教法冠
更新Common_Consequences
2011-09-13 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2012-05-11 CWE内容团队 主教法冠
更新引用关系,Taxonomy_Mappings
2012-10-30 CWE内容团队 主教法冠
更新Demonstrative_Examples
2014-07-30 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2017-11-08 CWE内容团队 主教法冠
更新Observed_Examples、关系、Taxonomy_Mappings
2019-01-03 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2020-02-24 CWE内容团队 主教法冠
更新描述、引用关系
2020-12-10 CWE内容团队 主教法冠
更新Common_Consequences
2023-01-31 CWE内容团队 主教法冠
更新描述
+以前的条目名称
改变日期 以前的条目名称
2010-12-13 不安全的在信号处理函数中函数调用
更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2023年1月31日