CVE-2025-22014
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
08/04/2025
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
soc: qcom: pdr: Fix the potential deadlock<br />
<br />
When some client process A call pdr_add_lookup() to add the look up for<br />
the service and does schedule locator work, later a process B got a new<br />
server packet indicating locator is up and call pdr_locator_new_server()<br />
which eventually sets pdr->locator_init_complete to true which process A<br />
sees and takes list lock and queries domain list but it will timeout due<br />
to deadlock as the response will queued to the same qmi->wq and it is<br />
ordered workqueue and process B is not able to complete new server<br />
request work due to deadlock on list lock.<br />
<br />
Fix it by removing the unnecessary list iteration as the list iteration<br />
is already being done inside locator work, so avoid it here and just<br />
call schedule_work() here.<br />
<br />
Process A Process B<br />
<br />
process_scheduled_works()<br />
pdr_add_lookup() qmi_data_ready_work()<br />
process_scheduled_works() pdr_locator_new_server()<br />
pdr->locator_init_complete=true;<br />
pdr_locator_work()<br />
mutex_lock(&pdr->list_lock);<br />
<br />
pdr_locate_service() mutex_lock(&pdr->list_lock);<br />
<br />
pdr_get_domain_list()<br />
pr_err("PDR: %s get domain list<br />
txn wait failed: %d\n",<br />
req->service_name,<br />
ret);<br />
<br />
Timeout error log due to deadlock:<br />
<br />
"<br />
PDR: tms/servreg get domain list txn wait failed: -110<br />
PDR: service lookup for msm/adsp/sensor_pd:tms/servreg failed: -110<br />
"<br />
<br />
Thanks to Bjorn and Johan for letting me know that this commit also fixes<br />
an audio regression when using the in-kernel pd-mapper as that makes it<br />
easier to hit this race. [1]
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.7 (including) | 6.1.132 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.85 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.12.21 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.13.9 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.14:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.14:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.14:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.14:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.14:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.14:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.14:rc7:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/02612f1e4c34d94d6c8ee75bf7d254ed697e22d4
- https://git.kernel.org/stable/c/0a566a79aca9851fae140536e0fc5b0853c90a90
- https://git.kernel.org/stable/c/2eeb03ad9f42dfece63051be2400af487ddb96d2
- https://git.kernel.org/stable/c/72a222b6af10c2a05a5fad0029246229ed8912c2
- https://git.kernel.org/stable/c/daba84612236de3ab39083e62c9e326a654ebd20
- https://git.kernel.org/stable/c/f2bbfd50e95bc117360f0f59e629aa03d821ebd6
- https://git.kernel.org/stable/c/f4489260f5713c94e1966e5f20445bff262876f4
- https://lists.debian.org/debian-lts-announce/2025/05/msg00030.html
- https://lists.debian.org/debian-lts-announce/2025/05/msg00045.html



