目标达成 感谢每一位支持者 — 我们达成了 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-2020-25653 SPICE vdagent 竞争条件问题漏洞 — spice-vdagent 6.3 - 2020-11-26
CVE-2020-25651 SPICE vdagent 竞争条件问题漏洞 — spice-vdagent 7.5 - 2020-11-26
CVE-2020-1667 Juniper Networks Junos OS 竞争条件问题漏洞 — Junos OS 8.3 High 2020-10-16
CVE-2020-15707 grub2 输入验证错误漏洞 — grub2 in Ubuntu 5.7 Medium 2020-07-29
CVE-2020-15706 grub2 资源管理错误漏洞 — grub2 in Ubuntu 6.4 Medium 2020-07-29
CVE-2020-1645 Juniper Networks Junos OS 输入验证错误漏洞 — Junos OS 8.3 High 2020-07-17
CVE-2020-1641 Juniper Networks Junos OS 竞争条件问题漏洞 — Junos OS 6.5 Medium 2020-07-17
CVE-2020-3350 Cisco AMP for Endpoints和Clam AntiVirus 竞争条件问题漏洞 — Cisco AMP for Endpoints 5.5 Medium 2020-06-18
CVE-2020-3353 Cisco Identity Services Engine 竞争条件问题漏洞 — Cisco Identity Services Engine Software 5.9 Medium 2020-06-03
CVE-2020-10737 oddjob 竞争条件问题漏洞 — oddjob 6.3 Medium 2020-05-27
CVE-2019-14898 Linux kernel 竞争条件问题漏洞 — kernel 7.0 - 2020-05-08
CVE-2012-0953 NVIDIA Display driver 竞争条件问题漏洞 — graphics drivers 5.0 Medium 2020-05-08
CVE-2020-3163 Cisco Unified Contact Center Enterprise 竞争条件问题漏洞 — Cisco Unified Contact Center Enterprise 5.9 - 2020-02-19
CVE-2019-18567 Bromium client 竞争条件问题漏洞 — Bromium client 6.7 - 2020-02-03
CVE-2019-3016 Linux KVM 竞争条件问题漏洞 — linux_kernel 6.2 Medium 2020-01-31
CVE-2019-7614 Elasticsearch 竞争条件问题漏洞 — Elasticsearch 5.9 - 2019-07-30
CVE-2019-3837 Linux kernel 竞争条件问题漏洞 — kernel 7.1 - 2019-04-11
CVE-2018-17244 Elasticsearch Security 安全漏洞 — Elasticsearch 7.5 - 2018-12-20
CVE-2018-16867 QEMU 安全漏洞 — QEMU: 8.0 - 2018-12-12
CVE-2018-0480 Cisco Catalyst 3650、3850和4500E Series Switchs IOS XE Software 竞争条件漏洞 — Cisco IOS XE Software 6.1 - 2018-10-05
CVE-2017-7543 openstack-neutron 竞争条件漏洞 — openstack-neutron 5.9 - 2018-07-26
CVE-2018-10850 Red Hat 389-ds-base 竞争条件漏洞 — 389-ds-base 5.9 - 2018-06-13
CVE-2018-3759 private_address_check ruby gem 竞争条件漏洞 — private_address_check ruby gem 5.9 - 2018-06-13
CVE-2017-2619 Samba 后置链接漏洞 — samba 7.1 - 2018-03-12
CVE-2018-1049 systemd 竞争条件问题漏洞 — systemd 5.1 - 2018-02-16
CVE-2017-15129 Linux kernel 竞争条件问题漏洞 — Linux kernel v4.0-rc1 through v4.15-rc5 7.1 - 2018-01-09

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