CWE

常见的弱点枚举

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

新CWE吗?点击这里!
CWE最重要的硬件的弱点
CWE最危险的弱点
>CWE列表> CWE -个人字典定义(4.12)
ID

cwe - 667:不适当的锁定

弱点ID: 667
抽象:
结构:简单的
视图定制的信息:
的用户感兴趣的更多的概念方面的一个弱点。例如:教育者,技术作家和项目/项目经理。 用户关心的实际应用和细节的本质弱点以及如何预防它的发生。例子:工具开发人员、安全人员、pen-testers事件反应分析师。 对于用户映射一个问题CWE / CAPEC id,即。,finding the most appropriate CWE for a specific issue (e.g., a CVE record). Example: tool developers, security researchers. 用户希望看到所有可用的信息CWE / CAPEC条目。 为用户谁想要定制显示细节。
×

编辑自定义过滤器


+描述
产品不正确获取或释放资源的锁,导致意想不到的资源状态和行为变化。
+扩展描述

锁是一种类型的同步行为,确保多个独立运行的进程或线程不互相干扰,当访问相同的资源。所有进程/线程锁定将遵循相同的步骤。如果不采取这些步骤精确——或者如果没有锁定,然后另一个进程/线程可以修改共享资源的方式是不可见的或可预测的原始流程。这可能会导致内存数据或腐败、拒绝服务等。

+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 662年 不同步
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 412年 无限制的外部访问的锁
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 413年 不恰当的资源锁定
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 414年 失踪的锁止
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 609年 双重检查锁定
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 764年 一个关键资源的多个锁
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 765年 多个打开的关键资源
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 832年 解锁不锁定的资源
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 833年 死锁
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1232年 电源状态转换后锁不当行为
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1233年 丢失的安全敏感的硬件控制锁保护
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 1234年 硬件锁的内部或调试模式允许覆盖
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 662年 不同步
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及质量的措施(2020)”(CWE-1305)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 662年 不同步
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及数据保护措施”(cwe - 1340)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 662年 不同步
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
架构和设计
实现
+常见的后果
部分帮助这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 影响 可能性
可用性

技术的影响:DoS:资源消耗(CPU)

锁定纪律不一致会导致死锁。
+示范例子

示例1

在接下来的Java代码片段中,方法是获取和设置一个长字段定义在一个类的实例,多个线程共享。因为双和长时间的操作原子在Java中,并发访问可能会引起意想不到的行为。因此,所有操作在长和双字段应该是同步的。

(坏的代码)
例如语言:Java
私人长someLongValue;
公共长getLongValue () {
返回someLongValue;
}

公共空间setLongValue(长l) {
someLongValue = l;
}

示例2

这段代码文件试图获得一个锁,然后写入。

(坏的代码)
例如语言:PHP
函数writeToLog(美元消息){
日志文件=美元fopen(“日志文件。日志”、“一个”);
/ /试图获取日志文件锁
如果(群(日志文件,LOCK_EX)) {
写入文件(日志文件,消息美元);
/ /打开日志文件
群(日志文件,LOCK_UN);
}
其他{
在日志文件打印”不能获得锁。没有记录的日志、消息\ n”;
}
}
文件关闭($日志文件);

PHP默认情况下将无限期等待,直到文件释放锁。如果攻击者能够获得文件锁,这段代码将暂停执行,可能导致拒绝服务的其他用户。注意,在这种情况下,如果攻击者可以执行一个群()文件,他们可能已经摧毁日志文件的特权。然而,这还影响其他项目的执行,取决于群()。

示例3

以下函数试图获得一个锁,以执行操作在一个共享资源。

(坏的代码)
例如语言:C
空白f (pthread_mutex_t *互斥){
pthread_mutex_lock(互斥);

/ * * /访问共享资源


pthread_mutex_unlock(互斥);
}

然而,代码不检查pthread_mutex_lock()返回的值的错误。如果pthread_mutex_lock()由于任何原因无法获得互斥锁,功能可能引入竞争条件和导致未定义行为的程序。

为了避免数据竞争,正确的写程序必须检查的结果线程同步功能和妥善处理所有错误,通过试图恢复他们或报告他们更高的水平。

(好的代码)
例如语言:C
int f (pthread_mutex_t *互斥){
int结果;

结果= pthread_mutex_lock(互斥);
如果(0 ! =结果)
返回结果;


/ * * /访问共享资源


返回pthread_mutex_unlock(互斥);
}

示例4

看起来,以下的代码实现线程安全,同时避免不必要的同步……

(坏的代码)
例如语言:Java
如果(辅助= = null) {
同步(){
如果(辅助= = null) {
辅助= new助手();
}
}
}
返回助手;

程序员想要保证只有一个助手()对象被分配,但不希望支付的成本同步每次调用这个代码。

假设助手是没有初始化。然后,线程看到助手= = null和进入同步块,开始执行:

(坏的代码)
辅助= new助手();

如果另一个线程,线程B,接管的这个调用和助手没有完成运行构造函数,然后在辅助线程B可能打电话而字段持有错误的值。

+观察到的例子
参考 描述
链:不当锁(cwe - 667)会导致竞态条件(cwe - 362),利用每中钢协KEV在野外。
攻击者提供了无效的地址能够背诵功能,导致一个互斥锁两次
功能操作系统内核解锁互斥锁,是锁着的,以前没有引起恐慌或任意内存的覆盖。
链:操作系统内核不妥善处理函数调用的失败(cwe - 755),导致的一个解锁资源不是锁(cwe - 832),合成崩溃。
操作系统内核执行的解锁一些不正确的情况下,导致恐慌。
操作系统死锁
操作系统死锁涉及3个单独的功能
僵局在图书馆
僵局引发的力量碰撞在路由表的信息包
读/写web服务器和脚本之间的僵局
web服务器僵局涉及多个监听连接
多个同步调用同一个函数引发死锁。
链:其他弱点导致空指针(cwe - 476)或死锁(cwe - 833)。
僵局时在资源上执行一个操作被删除。
僵局引发的设备驱动程序使用文件句柄的相关设备。
死锁时,大量的小消息不能足够迅速地处理。
操作系统内核僵局引发的信号在核心转储。
竞态条件会导致死锁。
链:数组索引错误(cwe - 129)会导致死锁(cwe - 833)
程序不能执行时,攻击者获得互斥锁。
程序不能执行攻击者获得一个锁在一个关键的输出文件。
程序不能执行攻击者获得一个锁在一个关键的输出文件。
重要文件可以打开的读访问用户,防止应用程序的安全策略。可能不当相关权限,大窗户竞态条件。
链:可预测的文件名用于锁定,允许攻击者事先创建锁。结果从权限和随机性。
链:锁文件和可预测的名称。从随机合成。
产品不检查是否可以写入一个日志文件,允许攻击者为了避免日志通过访问文件使用独占锁。不重叠错误条件。这不是很cwe - 412,但很接近。
+潜在的缓解措施

实施阶段:

策略:库或框架

使用行业标准api来实现锁定机制。
+检测方法

自动静态分析

自动静态分析,通常被称为静态应用程序安全性测试(科协),可以找到一些实例的这个弱点分析源代码或二进制/编译后的代码,而不必执行它。通常情况下,这是通过建立一个模型的数据流和控制流,然后寻找潜在攻击模式,连接“源”与“下沉”(输入)的起源(目的地数据与外部组件交互,较低的层,如操作系统,等等)。

有效性:高

+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 748年 CERT C安全编码标准(2008)附录- POSIX (POS)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 852年 CERT甲骨文安全Java编码标准(2011)第9章-可见性和原子性(VNA)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 853年 CERT甲骨文安全Java编码标准(2011)第十章-锁定(LCK)
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 884年 CWE横截面
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 986年 SFP二级集群:失踪的锁
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1131年 方案》(2016)——安全质量措施
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1142年 SEI CERT甲骨文Java安全编码标准——08年指导方针。可见性和原子性(VNA)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1143年 SEI CERT甲骨文Java安全编码标准——09年的指导方针。锁(LCK)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1169年 SEI CERT 14 C编码标准指导方针。并发性(CON)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1171年 SEI CERT 50 C编码标准指导方针。POSIX (POS)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1401年 综合分类:并发性
+脆弱性映射笔记

用法:Allowed-with-Review

(CWE ID可以用来映射到实际的漏洞在有限的情况下需要仔细审查)

原因:抽象

理由是:

这个CWE条目是一个类并会基本的孩子可能更合适

评论:

检查这个条目的孩子是否有一个更好的选择
+笔记

维护

更深层次的研究是必要的和相关的同步机制,包括锁、互斥锁、信号量、和其他机制。依赖于这项研究多个条目,包括并发性之间的关系,竞态条件,可重入函数等。cwe - 662和它的孩子们——包括cwe - 667,cwe - 820,cwe - 821,别人可能需要大幅修改,以及它们的关系。
+分类法映射
映射分类名称 节点ID 适合 映射节点名
CERT C安全编码 CON31-C CWE更抽象 不销毁互斥锁时
CERT C安全编码 POS48-C CWE更抽象 不要打开或破坏另一个POSIX线程的互斥
CERT甲骨文安全Java编码标准(2011) VNA00-J 确保访问共享原始变量时能见度
CERT甲骨文安全Java编码标准(2011) VNA02-J 确保共享变量的操作都是原子的化合物
CERT甲骨文安全Java编码标准(2011) VNA05-J 保证原子性阅读和写作时64位值
CERT甲骨文安全Java编码标准(2011) LCK06-J 不使用锁来保护实例共享静态数据
软件故障模式 SFP19 失踪的锁
OMG ASCSM ASCSM -cwe - 667
+引用
(ref - 962)对象管理组织(OMG)。“自动源代码安全措施(ASCSM)”。ascsm - cwe - 667。2016 - 01。<http://www.omg.org/spec/ASCSM/1.0/>。
+内容的历史
+提交
提交日期 提交者 组织
2008-04-11
(CWE草案9,2008-04-11)
CWE内容团队 主教法冠
+修改
修改日期 修饰符 组织
2008-07-01 肖恩Eidemiller Cigital
添加/更新示范例子
2008-07-01 Eric Dalci Cigital
更新Potential_Mitigations Time_of_Introduction
2008-09-08 CWE内容团队 主教法冠
更新的关系
2008-11-24 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2009-03-10 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2009-05-27 CWE内容团队 主教法冠
更新的关系
2009-07-27 CWE内容团队 主教法冠
更新Common_Consequences
2010-09-27 CWE内容团队 主教法冠
更新的关系
2010-12-13 CWE内容团队 主教法冠
更新描述、名称、关系
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences、关系、Taxonomy_Mappings
2012-05-11 CWE内容团队 主教法冠
更新Demonstrative_Examples Observed_Examples,关系
2012-10-30 CWE内容团队 主教法冠
更新Potential_Mitigations
2014-07-30 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2017-05-03 CWE内容团队 主教法冠
更新Related_Attack_Patterns
2017-11-08 CWE内容团队 主教法冠
更新Taxonomy_Mappings
2019-01-03 CWE内容团队 主教法冠
更新引用关系,Taxonomy_Mappings
2019-09-19 CWE内容团队 主教法冠
更新的关系
2019-09-23 CWE内容团队 主教法冠
更新描述、Maintenance_Notes关系
2020-02-24 CWE内容团队 主教法冠
更新关系类型
2020-08-20 CWE内容团队 主教法冠
更新的关系
2020-12-10 CWE内容团队 主教法冠
更新的关系
2021-03-15 CWE内容团队 主教法冠
更新Demonstrative_Examples
2022-06-28 CWE内容团队 主教法冠
更新Observed_Examples
2023-01-31 CWE内容团队 主教法冠
更新描述
2023-04-27 CWE内容团队 主教法冠
更新Detection_Factors、人际关系
2023-06-29 CWE内容团队 主教法冠
更新Mapping_Notes
+以前的条目名称
改变日期 以前的条目名称
2010-12-13 锁定不足
页面最后更新:2023年6月29日