CVE Vulnerabilities

CVE-2020-11152

Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

Published: Jan 21, 2021 | Modified: Jan 29, 2021
CVSS 3.x
6.4
MEDIUM
Source:
NVD
CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H
CVSS 2.x
6.9 MEDIUM
AV:L/AC:M/Au:N/C:C/I:C/A:C
RedHat/V2
RedHat/V3
Ubuntu

Race condition in HAL layer while processing callback objects received from HIDL due to lack of synchronization between accessing objects in Snapdragon Auto, Snapdragon Compute, Snapdragon Consumer IOT, Snapdragon Industrial IOT, Snapdragon Mobile, Snapdragon Voice & Music, Snapdragon Wearables

Weakness

The product contains a code sequence that can run concurrently with other code, and the code sequence requires temporary, exclusive access to a shared resource, but a timing window exists in which the shared resource can be modified by another code sequence that is operating concurrently.

Affected Software

Name Vendor Start Version End Version
Apq8009w Qualcomm - (including) - (including)
Apq8017 Qualcomm - (including) - (including)
Apq8037 Qualcomm - (including) - (including)
Apq8052 Qualcomm - (including) - (including)
Apq8053 Qualcomm - (including) - (including)
Apq8056 Qualcomm - (including) - (including)
Apq8076 Qualcomm - (including) - (including)
Apq8096au Qualcomm - (including) - (including)
Aqt1000 Qualcomm - (including) - (including)
Ar8031 Qualcomm - (including) - (including)
Csra6620 Qualcomm - (including) - (including)
Csra6640 Qualcomm - (including) - (including)
Msm8909w Qualcomm - (including) - (including)
Msm8916 Qualcomm - (including) - (including)
Msm8917 Qualcomm - (including) - (including)
Msm8920 Qualcomm - (including) - (including)
Msm8937 Qualcomm - (including) - (including)
Msm8940 Qualcomm - (including) - (including)
Msm8952 Qualcomm - (including) - (including)
Msm8953 Qualcomm - (including) - (including)
Msm8956 Qualcomm - (including) - (including)
Msm8976 Qualcomm - (including) - (including)
Msm8976sg Qualcomm - (including) - (including)
Msm8996au Qualcomm - (including) - (including)
Pm439 Qualcomm - (including) - (including)
Pm660 Qualcomm - (including) - (including)
Pm660a Qualcomm - (including) - (including)
Pm660l Qualcomm - (including) - (including)
Pm670 Qualcomm - (including) - (including)
Pm670a Qualcomm - (including) - (including)
Pm670l Qualcomm - (including) - (including)
Pm8004 Qualcomm - (including) - (including)
Pm8005 Qualcomm - (including) - (including)
Pm855 Qualcomm - (including) - (including)
Pm855a Qualcomm - (including) - (including)
Pm855b Qualcomm - (including) - (including)
Pm855l Qualcomm - (including) - (including)
Pm855p Qualcomm - (including) - (including)
Pm8916 Qualcomm - (including) - (including)
Pm8937 Qualcomm - (including) - (including)
Pm8940 Qualcomm - (including) - (including)
Pm8952 Qualcomm - (including) - (including)
Pm8953 Qualcomm - (including) - (including)
Pm8956 Qualcomm - (including) - (including)
Pm8998 Qualcomm - (including) - (including)
Pmd9655 Qualcomm - (including) - (including)
Pmi632 Qualcomm - (including) - (including)
Pmi8937 Qualcomm - (including) - (including)
Pmi8952 Qualcomm - (including) - (including)
Pmi8998 Qualcomm - (including) - (including)
Pmm8996au Qualcomm - (including) - (including)
Pmx24 Qualcomm - (including) - (including)
Pmx50 Qualcomm - (including) - (including)
Qat3514 Qualcomm - (including) - (including)
Qat3522 Qualcomm - (including) - (including)
Qat3550 Qualcomm - (including) - (including)
Qbt1000 Qualcomm - (including) - (including)
Qbt1500 Qualcomm - (including) - (including)
Qbt2000 Qualcomm - (including) - (including)
Qca6174a Qualcomm - (including) - (including)
Qca6310 Qualcomm - (including) - (including)
Qca6320 Qualcomm - (including) - (including)
Qca6420 Qualcomm - (including) - (including)
Qca6430 Qualcomm - (including) - (including)
Qca6564a Qualcomm - (including) - (including)
Qca6564au Qualcomm - (including) - (including)
Qca6574a Qualcomm - (including) - (including)
Qca6574au Qualcomm - (including) - (including)
Qca6584au Qualcomm - (including) - (including)
Qca8337 Qualcomm - (including) - (including)
Qca9377 Qualcomm - (including) - (including)
Qcc1110 Qualcomm - (including) - (including)
Qcs405 Qualcomm - (including) - (including)
Qcs603 Qualcomm - (including) - (including)
Qcs605 Qualcomm - (including) - (including)
Qet4100 Qualcomm - (including) - (including)
Qet4101 Qualcomm - (including) - (including)
Qet5100 Qualcomm - (including) - (including)
Qet5100m Qualcomm - (including) - (including)
Qfe2080fc Qualcomm - (including) - (including)
Qfe2081fc Qualcomm - (including) - (including)
Qfe2082fc Qualcomm - (including) - (including)
Qfe2101 Qualcomm - (including) - (including)
Qfe2550 Qualcomm - (including) - (including)
Qfe3100 Qualcomm - (including) - (including)
Qfe3440fc Qualcomm - (including) - (including)
Qfe4301 Qualcomm - (including) - (including)
Qfe4302 Qualcomm - (including) - (including)
Qfe4303 Qualcomm - (including) - (including)
Qfe4305 Qualcomm - (including) - (including)
Qfe4308 Qualcomm - (including) - (including)
Qfe4309 Qualcomm - (including) - (including)
Qfe4320 Qualcomm - (including) - (including)
Qfe4373fc Qualcomm - (including) - (including)
Qfe4455fc Qualcomm - (including) - (including)
Qfe4465fc Qualcomm - (including) - (including)
Qln1035bd Qualcomm - (including) - (including)
Qpa4340 Qualcomm - (including) - (including)
Qpa4360 Qualcomm - (including) - (including)
Qpa5460 Qualcomm - (including) - (including)
Qsw8573 Qualcomm - (including) - (including)
Qtc800h Qualcomm - (including) - (including)
Qtc800s Qualcomm - (including) - (including)
Qtc800t Qualcomm - (including) - (including)
Qtc801s Qualcomm - (including) - (including)
Rgr7640au Qualcomm - (including) - (including)
Rsw8577 Qualcomm - (including) - (including)
Sd439 Qualcomm - (including) - (including)
Sd450 Qualcomm - (including) - (including)
Sd636 Qualcomm - (including) - (including)
Sd660 Qualcomm - (including) - (including)
Sd710 Qualcomm - (including) - (including)
Sd712 Qualcomm - (including) - (including)
Sd835 Qualcomm - (including) - (including)
Sd855 Qualcomm - (including) - (including)
Sd8cx Qualcomm - (including) - (including)
Sdm630 Qualcomm - (including) - (including)
Sdm830 Qualcomm - (including) - (including)
Sdr051 Qualcomm - (including) - (including)
Sdr052 Qualcomm - (including) - (including)
Sdr660 Qualcomm - (including) - (including)
Sdr8150 Qualcomm - (including) - (including)
Sdw2500 Qualcomm - (including) - (including)
Sdw3100 Qualcomm - (including) - (including)
Sdx24 Qualcomm - (including) - (including)
Sdx50m Qualcomm - (including) - (including)
Smb1351 Qualcomm - (including) - (including)
Smb1355 Qualcomm - (including) - (including)
Smb1358 Qualcomm - (including) - (including)
Smb1360 Qualcomm - (including) - (including)
Smb1380 Qualcomm - (including) - (including)
Smb1381 Qualcomm - (including) - (including)
Smb1390 Qualcomm - (including) - (including)
Smb231 Qualcomm - (including) - (including)
Wcd9306 Qualcomm - (including) - (including)
Wcd9326 Qualcomm - (including) - (including)
Wcd9330 Qualcomm - (including) - (including)
Wcd9335 Qualcomm - (including) - (including)
Wcd9340 Qualcomm - (including) - (including)
Wcd9341 Qualcomm - (including) - (including)
Wcd9360 Qualcomm - (including) - (including)
Wcn3610 Qualcomm - (including) - (including)
Wcn3615 Qualcomm - (including) - (including)
Wcn3620 Qualcomm - (including) - (including)
Wcn3660b Qualcomm - (including) - (including)
Wcn3680b Qualcomm - (including) - (including)
Wcn3950 Qualcomm - (including) - (including)
Wcn3980 Qualcomm - (including) - (including)
Wcn3990 Qualcomm - (including) - (including)
Wcn3998 Qualcomm - (including) - (including)
Wcn3999 Qualcomm - (including) - (including)
Wgr7640 Qualcomm - (including) - (including)
Whs9410 Qualcomm - (including) - (including)
Wsa8810 Qualcomm - (including) - (including)
Wsa8815 Qualcomm - (including) - (including)
Wtr2955 Qualcomm - (including) - (including)
Wtr2965 Qualcomm - (including) - (including)
Wtr3925 Qualcomm - (including) - (including)
Wtr4905 Qualcomm - (including) - (including)
Wtr5975 Qualcomm - (including) - (including)

Extended Description

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. A race condition occurs within concurrent environments, and is effectively a property of a code sequence. Depending on the context, a code sequence may be in the form of a function call, a small number of instructions, a series of program invocations, etc. A race condition violates these properties, which are closely related:

A race condition exists when an “interfering code sequence” can still access the shared resource, violating exclusivity. Programmers may assume that certain code sequences execute too quickly to be affected by an interfering code sequence; when they are not, this violates atomicity. For example, the single “x++” statement may appear atomic at the code layer, but it is actually non-atomic at the instruction layer, since it involves a read (the original value of x), followed by a computation (x+1), followed by a write (save the result to x). The interfering code sequence could be “trusted” or “untrusted.” A trusted interfering code sequence occurs within the product; it cannot be modified by the attacker, and it can only be invoked indirectly. An untrusted interfering code sequence can be authored directly by the attacker, and typically it is external to the vulnerable product.

Potential Mitigations

  • 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).

References