CWE

常见的弱点枚举

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

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

cwe - 543:使用单例模式没有同步在多线程环境中

弱点ID: 543
抽象:变体
结构:简单的
视图定制的信息:
+描述
产品使用了单例模式在多线程环境中创建资源时。
+扩展描述
使用单例模式可能不是线程安全的。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 820年 失踪的同步
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为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年 不同步
+模式的介绍
部分帮助不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 请注意
实现
+适用的平台
部分帮助该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。

语言

Java患病率(待定)

c++患病率(待定)

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

技术的影响:其他;修改应用程序数据

+示范例子

示例1

这个方法是一个单例模式的一部分,然而以下单例()模式并不是线程安全的。可能的方法将创建两个对象,而不是只有一个。

(坏的代码)
例如语言:Java
私有静态NumberConverter单;
公共静态NumberConverter get_singleton () {
如果(单= = null) {
单例= new NumberConverter ();
}
返回单例;
}

考虑以下的事件:

  • 线程进入方法,发现单例是null, NumberConverter构造函数开始,然后是执行的交换。
  • 线程B进入方法和发现,单仍是零。这将发生在构造函数的中间交换出去,因为对象引用没有设置为指向新的堆上的对象到对象完全初始化。
  • 线程B继续和构造另一个NumberConverter对象并返回它而退出方法。
  • 线程继续,完成构建其NumberConverter对象,并返回它的版本。

此时,线程创建并返回两个不同的物体。

+潜在的缓解措施

阶段:体系结构和设计

使用这个表存储模式。看到引用。

实施阶段:

不要使用在Servlet成员字段来存储信息。在多线程环境中,将用户数据存储在Servlet字段成员介绍了数据访问竞态条件。

实施阶段:

避免使用双重检查锁定模式语言版本,不能保证线程安全。这种模式可以用来避免同步调用的开销,但是在某些版本的Java(例如),这已被证明是不安全的,因为它还引入了竞争条件(cwe - 209)。

有效性:有限

+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 861年 CERT甲骨文安全Java编码标准(2011)第18章-杂项(MSC)
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 986年 SFP二级集群:失踪的锁
+分类法映射
映射分类名称 节点ID 适合 映射节点名
CERT甲骨文安全Java编码标准(2011) MSC07-J 防止多个单例对象的实例化
软件故障模式 SFP19 失踪的锁
+引用
道格拉斯·c·施密特(ref - 474)蒂莫西·h·哈里森和Nat Pryce。“C / c++ Thread-Specifc存储”。<http://www.cs.wustl.edu/施密特/ PDF / TSS-pattern.pdf>。
+内容的历史
+提交
提交日期 提交者 组织
2006-07-19 匿名工具供应商(NDA)
+修改
修改日期 修饰符 组织
2008-07-01 Eric Dalci Cigital
更新Potential_Mitigations Time_of_Introduction
2008-09-08 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2010-09-27 CWE内容团队 主教法冠
更新后的名字
2010-12-13 CWE内容团队 主教法冠
更新Applicable_Platforms Demonstrative_Examples,描述、Potential_Mitigations引用关系,Taxonomy_Mappings
2011-03-29 CWE内容团队 主教法冠
更新Demonstrative_Examples
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences、关系、Taxonomy_Mappings
2012-05-11 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2014-07-30 CWE内容团队 主教法冠
更新的关系,Taxonomy_Mappings
2019-01-03 CWE内容团队 主教法冠
更新Taxonomy_Mappings
2020-02-24 CWE内容团队 主教法冠
更新的关系
2020-08-20 CWE内容团队 主教法冠
更新的关系
2020-12-10 CWE内容团队 主教法冠
更新的关系
2023-01-31 CWE内容团队 主教法冠
更新描述
+以前的条目名称
改变日期 以前的条目名称
2010-09-27 以一个非线程安全的方式使用单例模式
更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2023年1月31日