CWE-667:锁定不当
查看自定义信息:
锁定是一种同步行为,可确保在访问相同资源时多个独立运行的过程或线程不会相互干扰。所有过程/线程都预计将遵循相同的锁定步骤。如果没有精确地遵循这些步骤 - 或根本没有完成锁定,则另一个进程/线程可以以不可见或无法预测的原始过程来修改共享资源。这可能导致数据或内存损坏,拒绝服务等。
该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
与观点“研究概念”相关(CWE-1000)
与“简化已发表漏洞的简化映射”(CWE-1003)相关的视图相关(CWE-1003)
与“ CISQ质量措施(2020)”相关(CWE-1305)
与“ CISQ数据保护措施”(CWE-1340)有关
该表指定与弱点相关的不同个人后果。该范围确定了违反的应用程序安全区域,而影响描述了如果对手成功利用这一弱点,就会产生负面的技术影响。其可能性提供了有关预期相对于列表中其他后果的特定后果的可能性的信息。例如,可能会利用弱点来实现一定的影响,但很可能会利用它来实现不同的影响。
示例1 在以下Java片段中,定义方法是在跨多个线程共享的类的实例中获取并设置一个长字段。因为在Java中对双重和长期的操作是非原子的,因此并发访问可能会导致意外行为。因此,应同步长和双字段上的所有操作。
(不良代码)
示例语言:爪哇
私人长somelongvalue;
公共长getlongvalue(){
返回somelongvalue; }public void setlongvalue(long l){
somelongvalue = l; }示例2 该代码试图获取文件锁,然后写入文件。
(不良代码)
示例语言:php
函数writogolog($ message){
$ logFile = fopen(“ logfile.log”,“ a”); }//尝试获取logfile锁 if(flock($ logFile,lock_ex)){
fwrite($ logFile,$消息); }//解锁logfile 羊群($ logfile,lock_un); 别的 {
打印“无法在logfile.log上获取锁,消息未记录\ n”; }fclose($ logFile); 默认情况下,PHP将无限期等待直到释放文件锁。如果攻击者能够获得文件锁定,则此代码将暂停执行,可能会导致其他用户拒绝服务。请注意,在这种情况下,如果攻击者可以在文件上执行羊群(),则他们可能已经有特权来销毁日志文件。但是,这仍然会影响依赖Flock()的其他程序的执行。 示例3 以下功能试图获取锁定以在共享资源上执行操作。
(不良代码)
示例语言:C
void f(pthread_mutex_t *mutex){
pthread_mutex_lock(Mutex);
/ *访问共享资源 */ pthread_mutex_unlock(mutex); 但是,该代码未检查PTHREAD_MUTEX_LOCK()返回的错误是否是否有错误。如果PTHREAD_MUTEX_LOCK()由于任何原因无法获得Mutex,则该功能可以将竞赛条件引入程序中,并导致不确定的行为。 为了避免数据竞赛,正确编写的程序必须检查线程同步函数的结果,并通过尝试从它们恢复或将其报告到更高级别来适当处理所有错误。
(好代码)
示例语言:C
int f(pthread_mutex_t *mutex){
int结果;
结果= pthread_mutex_lock(mutex); 如果(0!=结果)
返回结果;
/ *访问共享资源 */ 返回pthread_mutex_unlock(mutex); 示例4 似乎以下代码可以实现线程安全性,同时避免了不必要的同步...
(不良代码)
示例语言:爪哇
如果(helper == null){
同步(this){
如果(helper == null){ }
助手= new Helper(); }返回助手; 程序员希望保证只分配一个助手()对象,但每次调用该代码时都不想支付同步费用。 假设没有初始化的助手。然后,线程A看到助手== null并进入同步块并开始执行:
(不良代码)
助手= new Helper();
如果第二个线程B螺纹B在此呼叫的中间接管,并且辅助人员尚未完成运行构造函数,则线程B可能会在助手上进行呼叫,而其字段则保持不正确的值。
此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
提供更多信息 - 请选择其他过滤器。
|
使用共同弱点枚举(CWE)和本网站的相关参考使用条款。CWE由美国国土安全部(DHS)网络安全和基础设施安全局(CISA),由国土安全系统工程和开发研究所(HSSEDI)由manbetx客户端首页(MITER)。版权所有©2006–2023,Miter Comanbetx客户端首页rporation。CWE,CWSS,CWRAF和CWE徽标是Miter Corporation的商标。manbetx客户端首页 |