目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1336

100%

CWE-362 使用共享资源的并发执行不恰当同步问题(竞争条件) 类漏洞列表 596

CWE-362 使用共享资源的并发执行不恰当同步问题(竞争条件) 类弱点 596 条 CVE 漏洞汇总,含 AI 中文分析。

CWE-362 属于并发执行漏洞,指代码序列在需要独占访问共享资源时,因缺乏同步机制导致存在时间窗口,使其他并发序列能修改该资源。攻击者通常利用此竞态条件,通过精心构造并发请求篡改数据或绕过安全检查,从而引发逻辑错误或权限提升。开发者应避免此类问题,确保对共享资源的访问具备原子性,通过加锁、事务或原子操作等同步机制消除竞争窗口,保障数据一致性。

MITRE CWE 官方描述
CWE:CWE-362 并发执行时使用共享资源且同步不当(竞态条件,Race Condition) 该产品包含一个并发代码序列,该序列需要临时独占访问共享资源,但存在一个时间窗口,在此期间,另一个并发运行的代码序列可以修改该共享资源。 竞态条件发生在并发环境中,它本质上是代码序列的一种属性。根据上下文的不同,代码序列可能表现为函数调用、少量指令、一系列程序调用等形式。竞态条件违反了以下密切相关属性:独占性(Exclusivity)——代码序列被赋予对共享资源的独占访问权限,即在原始序列完成执行之前,没有其他代码序列可以修改共享资源的属性。原子性(Atomicity)——代码序列在行为上是原子的,即没有其他线程或进程可以针对同一资源并发执行相同的指令序列(或其子集)。当“干扰代码序列”(interfering code sequence)仍能访问共享资源时,便存在竞态条件,从而违反了独占性。干扰代码序列可以是“可信的”(trusted)或“不可信的”(untrusted)。可信的干扰代码序列存在于产品内部;攻击者无法对其进行修改,且只能通过间接方式调用。不可信的干扰代码序列可由攻击者直接编写,通常位于易受攻击的产品外部。
常见影响 (4)
Availability DoS: Resource Consumption (CPU), DoS: Resource Consumption (Memory), DoS: Resource Consumption (Other)
When a race condition makes it possible to bypass a resource cleanup routine or trigger multiple initialization routines, it may lead to resource exhaustion.
Availability DoS: Crash, Exit, or Restart, DoS: Instability
When a race condition allows multiple control flows to access a resource simultaneously, it might lead the product(s) into unexpected states, possibly resulting in a crash.
Confidentiality, Integrity Read Files or Directories, Read Application Data
When a race condition is combined with predictable resource names and loose permissions, it may be possible for an attacker to overwrite or access confidential data (CWE-59).
Access Control Execute Unauthorized Code or Commands, Gain Privileges or Assume Identity, Bypass Protection Mechanism
This can have security implications when the expected synchronization is in security-critical code, such as recording whether a user is authenticated or modifying important state information that should not be influenced by an outsider.
缓解措施 (5)
Architecture and Design In languages that support it, use synchronization primitives. Only wrap these around critical code to minimize the impact on performance.
Architecture and Design Use thread-safe capabilities such as the data access abstraction in Spring.
Architecture and Design Minimize the usage of shared resources in order to remove as much complexity as possible from the control flow and to reduce the likelihood of unexpected conditions occurring. Additionally, this will minimize the amount of synchronization necessary and may even help to reduce the likelihood of a denial of service where an attacker may be able to repeatedly trigger a critical section (CWE-400).
Implementation When using multithreading and operating on shared variables, only use thread-safe functions.
Implementation Use atomic operations on shared variables. Be wary of innocent-looking constructs such as "x++". This may appear atomic at the code layer, but it is actually non-atomic at the instruction layer, since it involves a read, followed by a computation, followed by a write.
代码示例 (2)
This code could be used in an e-commerce application that supports transfers between accounts. It takes the total amount of the transfer, sends it to the new account, and deducts the amount from the original account.
$transfer_amount = GetTransferAmount(); $balance = GetBalanceFromDatabase(); if ($transfer_amount < 0) { FatalError("Bad Transfer Amount"); } $newbalance = $balance - $transfer_amount; if (($balance - $transfer_amount) < 0) { FatalError("Insufficient Funds"); } SendNewBalanceToDatabase($newbalance); NotifyUser("Transfer of $transfer_amount succeeded."); NotifyUser("New balance: $newbalance");
Bad · Perl
In the following pseudocode, the attacker makes two simultaneous calls of the program, CALLER-1 and CALLER-2. Both callers are for the same user account. CALLER-1 (the attacker) is associated with PROGRAM-1 (the instance that handles CALLER-1). CALLER-2 is associated with PROGRAM-2. CALLER-1 makes a transfer request of 80.00. PROGRAM-1 calls GetBalanceFromDatabase and sets $balance to 100.00 PROGRAM-1 calculates $newbalance as 20.00, then calls SendNewBalanceToDatabase(). Due to high server load, the PROGRAM-1 call to SendNewBalanceToDatabase() encounters a delay. CALLER-2 makes a transfer req
Attack · Other
The following function attempts to acquire a lock in order to perform operations on a shared resource.
void f(pthread_mutex_t *mutex) { pthread_mutex_lock(mutex); /* access shared resource */ pthread_mutex_unlock(mutex); }
Bad · C
int f(pthread_mutex_t *mutex) { int result; result = pthread_mutex_lock(mutex); if (0 != result) return result; /* access shared resource */ return pthread_mutex_unlock(mutex); }
Good · C
CVE ID 标题 CVSS 风险等级 Published
CVE-2022-27481 Siemens SCALANCE竞争条件问题漏洞 — SCALANCE W1788-1 M12 6.5 - 2022-04-12
CVE-2021-4202 Linux kernel 资源管理错误漏洞 — kernel 7.0 - 2022-03-25
CVE-2021-4203 Linux kernel 资源管理错误漏洞 — kernel 6.8 - 2022-03-25
CVE-2022-24751 Zulip 竞争条件问题漏洞 — zulip 5.4 Medium 2022-03-16
CVE-2022-25822 Samsung sdp driver 资源管理错误漏洞 — Samsung Mobile devices 4.0 Medium 2022-03-08
CVE-2021-3640 Linux kernel 资源管理错误漏洞 — kernel 6.4 - 2022-03-03
CVE-2021-3609 Linux kernel 竞争条件问题漏洞 — kernel 7.0 - 2022-03-03
CVE-2022-0279 WordPress 竞争条件问题漏洞 — AnyComment 3.1 - 2022-02-21
CVE-2021-20321 Linux kernel 竞争条件问题漏洞 — kernel 4.7 - 2022-02-18
CVE-2021-44731 Snapd 竞争条件问题漏洞 — snapd 7.8 High 2022-02-17
CVE-2022-23639 crossbeam 竞争条件问题漏洞 — crossbeam 8.1 High 2022-02-15
CVE-2022-24114 Acronis True Image 竞争条件问题漏洞 — Acronis Cyber Protect Home Office 7.0 - 2022-02-04
CVE-2021-31382 Juniper Networks Junos OS 竞争条件问题漏洞 — Junos OS 6.5 Medium 2021-10-19
CVE-2021-0298 Juniper Networks Junos OS 竞争条件问题漏洞 — Junos OS Evolved 4.7 Medium 2021-10-19
CVE-2011-1075 FreeBSD 竞争条件问题漏洞 — FreeBSD/crontab 3.1 - 2021-10-19
CVE-2021-3573 Linux kernel 资源管理错误漏洞 — kernel 6.4 - 2021-08-13
CVE-2021-32810 Crossbeam 竞争条件问题漏洞 — crossbeam 9.8 Critical 2021-08-02
CVE-2021-32686 PJSIP 竞争条件问题漏洞 — pjproject 5.9 Medium 2021-07-23
CVE-2021-21005 Phoenix Contact FL SWITCH竞争条件问题漏洞 — FL SWITCH 7.5 High 2021-06-25
CVE-2021-24377 WordPress 竞争条件问题漏洞 — Autoptimize 8.1 - 2021-06-21
CVE-2021-25395 Samsung SMR 竞争条件问题漏洞 — Samsung Mobile Devices 6.4 Medium 2021-06-11
CVE-2020-25668 Linux kernel 资源管理错误漏洞 — Linux Kernel 7.0 - 2021-05-26
CVE-2021-0270 Juniper Networks Junos OS 资源管理错误漏洞 — Junos OS 7.5 High 2021-04-22
CVE-2021-0258 Juniper Networks Junos OS 竞争条件问题漏洞 — Junos OS 5.9 Medium 2021-04-22
CVE-2021-0247 Juniper Networks Junos OS 竞争条件问题漏洞 — Junos OS 5.1 Medium 2021-04-22
CVE-2021-23133 Linux kernel 竞争条件问题漏洞 — Linux Kernel 6.7 Medium 2021-04-22
CVE-2021-20261 Linux kernel 竞争条件问题漏洞 — kernel 7.0 - 2021-03-11
CVE-2020-27837 GNOME Display Manager 竞争条件问题漏洞 — gdm 5.7 - 2020-12-28
CVE-2020-27825 Linux kernel 资源管理错误漏洞 — kernel 5.7 - 2020-12-11
CVE-2020-16123 PulseAudio 竞争条件问题漏洞 — pulseaudio 4.4 Medium 2020-12-03

CWE-362(使用共享资源的并发执行不恰当同步问题(竞争条件)) 是常见的弱点类别,本平台收录该类弱点关联的 596 条 CVE 漏洞。