CVE-2024-27005: Vulnerability in Linux Linux
In the Linux kernel, the following vulnerability has been resolved: interconnect: Don't access req_list while it's being manipulated The icc_lock mutex was split into separate icc_lock and icc_bw_lock mutexes in [1] to avoid lockdep splats. However, this didn't adequately protect access to icc_node::req_list. The icc_set_bw() function will eventually iterate over req_list while only holding icc_bw_lock, but req_list can be modified while only holding icc_lock. This causes races between icc_set_bw(), of_icc_get(), and icc_put(). Example A: CPU0 CPU1 ---- ---- icc_set_bw(path_a) mutex_lock(&icc_bw_lock); icc_put(path_b) mutex_lock(&icc_lock); aggregate_requests() hlist_for_each_entry(r, ... hlist_del(... <r = invalid pointer> Example B: CPU0 CPU1 ---- ---- icc_set_bw(path_a) mutex_lock(&icc_bw_lock); path_b = of_icc_get() of_icc_get_by_index() mutex_lock(&icc_lock); path_find() path_init() aggregate_requests() hlist_for_each_entry(r, ... hlist_add_head(... <r = invalid pointer> Fix this by ensuring icc_bw_lock is always held before manipulating icc_node::req_list. The additional places icc_bw_lock is held don't perform any memory allocations, so we should still be safe from the original lockdep splats that motivated the separate locks. [1] commit af42269c3523 ("interconnect: Fix locking for runpm vs reclaim")
AI Analysis
Technical Summary
CVE-2024-27005 is a concurrency vulnerability in the Linux kernel's interconnect (icc) subsystem, specifically related to improper locking around the manipulation of the icc_node::req_list linked list. The issue arises because the icc_lock mutex was split into two separate mutexes: icc_lock and icc_bw_lock, to avoid lockdep splats. However, this separation did not fully protect concurrent access to req_list. The icc_set_bw() function iterates over req_list while holding only icc_bw_lock, but req_list can be concurrently modified while holding only icc_lock, leading to race conditions. These races can cause the iteration to access invalid pointers, resulting in potential memory corruption or kernel crashes. The vulnerability manifests in scenarios where one CPU thread is iterating over req_list (holding icc_bw_lock), while another CPU thread modifies req_list (holding icc_lock), leading to use-after-free or invalid pointer dereferences. The fix involves ensuring that icc_bw_lock is always held before any manipulation of req_list, thus serializing access and preventing races. This fix maintains safety from the original lockdep splats that motivated the lock split, as the additional lock acquisitions do not perform memory allocations. The vulnerability affects specific Linux kernel versions identified by commit hashes, and no known exploits are currently reported in the wild. The CVSS 3.1 score is 6.3 (medium severity), reflecting a local attack vector requiring low privileges and high attack complexity, with no user interaction needed. The impact includes potential confidentiality loss and availability disruption due to kernel crashes or memory corruption, but no integrity impact is indicated.
Potential Impact
For European organizations relying on Linux-based infrastructure, especially those using kernels with the affected commits, this vulnerability poses a risk of local privilege escalation or denial of service through kernel crashes. Systems running critical services or embedded Linux devices that utilize the interconnect subsystem could experience instability or downtime. The confidentiality impact suggests potential information leakage scenarios, possibly through memory corruption side effects. Given the medium CVSS score and the requirement for local access with low privileges, attackers with limited system access could exploit this to disrupt services or gain further foothold. This is particularly relevant for sectors with high Linux deployment such as telecommunications, cloud service providers, and industrial control systems prevalent in Europe. The lack of known exploits reduces immediate risk, but the concurrency nature of the bug means that exploitation might be complex and environment-dependent. Nonetheless, unpatched systems remain vulnerable to potential future exploitation attempts.
Mitigation Recommendations
European organizations should prioritize updating Linux kernels to versions that include the fix ensuring icc_bw_lock is held before manipulating req_list. Kernel updates should be applied promptly, especially on systems exposed to local users or running multi-tenant workloads. For environments where immediate patching is challenging, implementing strict access controls to limit local user privileges can reduce exploitation likelihood. Monitoring kernel logs for unusual crashes or memory corruption symptoms related to the interconnect subsystem can provide early detection. Additionally, organizations should audit their Linux kernel versions against the affected commits and consider recompiling kernels with backported patches if vendor updates are delayed. For embedded or specialized Linux systems, coordination with device vendors to obtain patched firmware is critical. Finally, adopting kernel hardening techniques such as Kernel Address Space Layout Randomization (KASLR) and Control Flow Integrity (CFI) can increase exploitation difficulty.
Affected Countries
Germany, France, United Kingdom, Netherlands, Sweden, Finland, Italy, Spain, Poland
CVE-2024-27005: Vulnerability in Linux Linux
Description
In the Linux kernel, the following vulnerability has been resolved: interconnect: Don't access req_list while it's being manipulated The icc_lock mutex was split into separate icc_lock and icc_bw_lock mutexes in [1] to avoid lockdep splats. However, this didn't adequately protect access to icc_node::req_list. The icc_set_bw() function will eventually iterate over req_list while only holding icc_bw_lock, but req_list can be modified while only holding icc_lock. This causes races between icc_set_bw(), of_icc_get(), and icc_put(). Example A: CPU0 CPU1 ---- ---- icc_set_bw(path_a) mutex_lock(&icc_bw_lock); icc_put(path_b) mutex_lock(&icc_lock); aggregate_requests() hlist_for_each_entry(r, ... hlist_del(... <r = invalid pointer> Example B: CPU0 CPU1 ---- ---- icc_set_bw(path_a) mutex_lock(&icc_bw_lock); path_b = of_icc_get() of_icc_get_by_index() mutex_lock(&icc_lock); path_find() path_init() aggregate_requests() hlist_for_each_entry(r, ... hlist_add_head(... <r = invalid pointer> Fix this by ensuring icc_bw_lock is always held before manipulating icc_node::req_list. The additional places icc_bw_lock is held don't perform any memory allocations, so we should still be safe from the original lockdep splats that motivated the separate locks. [1] commit af42269c3523 ("interconnect: Fix locking for runpm vs reclaim")
AI-Powered Analysis
Technical Analysis
CVE-2024-27005 is a concurrency vulnerability in the Linux kernel's interconnect (icc) subsystem, specifically related to improper locking around the manipulation of the icc_node::req_list linked list. The issue arises because the icc_lock mutex was split into two separate mutexes: icc_lock and icc_bw_lock, to avoid lockdep splats. However, this separation did not fully protect concurrent access to req_list. The icc_set_bw() function iterates over req_list while holding only icc_bw_lock, but req_list can be concurrently modified while holding only icc_lock, leading to race conditions. These races can cause the iteration to access invalid pointers, resulting in potential memory corruption or kernel crashes. The vulnerability manifests in scenarios where one CPU thread is iterating over req_list (holding icc_bw_lock), while another CPU thread modifies req_list (holding icc_lock), leading to use-after-free or invalid pointer dereferences. The fix involves ensuring that icc_bw_lock is always held before any manipulation of req_list, thus serializing access and preventing races. This fix maintains safety from the original lockdep splats that motivated the lock split, as the additional lock acquisitions do not perform memory allocations. The vulnerability affects specific Linux kernel versions identified by commit hashes, and no known exploits are currently reported in the wild. The CVSS 3.1 score is 6.3 (medium severity), reflecting a local attack vector requiring low privileges and high attack complexity, with no user interaction needed. The impact includes potential confidentiality loss and availability disruption due to kernel crashes or memory corruption, but no integrity impact is indicated.
Potential Impact
For European organizations relying on Linux-based infrastructure, especially those using kernels with the affected commits, this vulnerability poses a risk of local privilege escalation or denial of service through kernel crashes. Systems running critical services or embedded Linux devices that utilize the interconnect subsystem could experience instability or downtime. The confidentiality impact suggests potential information leakage scenarios, possibly through memory corruption side effects. Given the medium CVSS score and the requirement for local access with low privileges, attackers with limited system access could exploit this to disrupt services or gain further foothold. This is particularly relevant for sectors with high Linux deployment such as telecommunications, cloud service providers, and industrial control systems prevalent in Europe. The lack of known exploits reduces immediate risk, but the concurrency nature of the bug means that exploitation might be complex and environment-dependent. Nonetheless, unpatched systems remain vulnerable to potential future exploitation attempts.
Mitigation Recommendations
European organizations should prioritize updating Linux kernels to versions that include the fix ensuring icc_bw_lock is held before manipulating req_list. Kernel updates should be applied promptly, especially on systems exposed to local users or running multi-tenant workloads. For environments where immediate patching is challenging, implementing strict access controls to limit local user privileges can reduce exploitation likelihood. Monitoring kernel logs for unusual crashes or memory corruption symptoms related to the interconnect subsystem can provide early detection. Additionally, organizations should audit their Linux kernel versions against the affected commits and consider recompiling kernels with backported patches if vendor updates are delayed. For embedded or specialized Linux systems, coordination with device vendors to obtain patched firmware is critical. Finally, adopting kernel hardening techniques such as Kernel Address Space Layout Randomization (KASLR) and Control Flow Integrity (CFI) can increase exploitation difficulty.
Affected Countries
For access to advanced analysis and higher rate limits, contact root@offseq.com
Technical Details
- Data Version
- 5.1
- Assigner Short Name
- Linux
- Date Reserved
- 2024-02-19T14:20:24.207Z
- Cisa Enriched
- true
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 682d9821c4522896dcbddb9b
Added to database: 5/21/2025, 9:08:49 AM
Last enriched: 6/28/2025, 2:55:38 AM
Last updated: 7/28/2025, 11:04:49 PM
Views: 11
Related Threats
CVE-2025-8986: SQL Injection in SourceCodester COVID 19 Testing Management System
MediumCVE-2025-31987: CWE-405 Asymmetric Resource Consumption in HCL Software Connections Docs
MediumCVE-2025-8985: SQL Injection in SourceCodester COVID 19 Testing Management System
MediumCVE-2025-8984: SQL Injection in itsourcecode Online Tour and Travel Management System
MediumCVE-2025-8983: SQL Injection in itsourcecode Online Tour and Travel Management System
MediumActions
Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.
External Links
Need enhanced features?
Contact root@offseq.com for Pro access with improved analysis and higher rate limits.