CVE-2024-27005MediumMicrosoft CVSS 7.8CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Microsoft security update for CVE-2024-27005

Published
September 11, 2024
Last Modified
—

🔗 CVE IDs covered (1)

📋 Microsoft's advisory

EchelonGraph does not copy Microsoft's advisory page: its FAQ and remediation text are not shown here. Read the advisory on https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-27005. This page also shows what EchelonGraph holds for CVE-2024-27005, with the description from its CVE record, which the CVE Numbering Authority that assigned the CVE wrote: for a CVE Microsoft assigned, often in the words of Microsoft's own advisory.

🎯 Affected products7

  • azl3 hyperv-daemons 6.6.22.1-2 on Azure Linux 3.0
  • azl3 hyperv-daemons 6.6.35.1-1 on Azure Linux 3.0
  • cbl2 kernel 5.15.186.1-1 on CBL Mariner 2.0
  • cbl2 kernel 5.15.200.1-1 on CBL Mariner 2.0
  • cbl2 kernel 5.15.202.1-1
  • cbl2 kernel 5.15.202.1-1 on CBL Mariner 2.0
  • cbl2 kernel 5.15.202.1-1 on CBL-Mariner 2.0

✅ Updates Microsoft lists: 2 updates

2 rows: one per KB article or update, update type and fixed build. Their details are on Microsoft's advisory.

KB articleUpdateFixed build
—Security Update6.6.35.1-1
—Security Update—

🧭 EchelonGraph on CVE-2024-27005

EchelonGraph score
6.3 MEDIUM
CISA KEV
Not listed
Fix status
A fix is available — apply it.

Description from the CVE record (CVE.org), as published by its numbering authority

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")

Published by kernel.org, the CVE Numbering Authority that assigned CVE-2024-27005, in its CVE record at CVE.org; reused under the CVE Program's Terms of Use (its licence and MITRE's copyright notice are in our Terms of Service).

🔗 References (2)