cwe - 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)
简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
相关的视图”方案及质量的措施(2020)”(CWE-1305)
相关的视图”方案及数据保护措施”(cwe - 1340)
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
示例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可能打电话而字段持有错误的值。
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
更多的信息是可用的,请编辑自定义过滤器或选择一个不同的过滤器。
|
使用常见的弱点枚举(CWE)和相关的引用从这个网站的使用条款。CWE赞助的美国国土安全部(DHS)网络和基础设施安全机构(CISA)和管理的国土安全系统工程和发展研究所这是由(HSSEDI)manbetx客户端首页(斜方)。版权©2006 - 2023,斜方公司。manbetx客户端首页CWE、水煤浆、CWRAF, CWE标志是斜方公司的商标。manbetx客户端首页 |