CentOS 9:kernel-5.14.0-474.el9

critical Nessus Plugin ID 201993

概要

遠端 CentOS 主機缺少一個或多個 bpftool 安全性更新。

說明

遠端 CentOS Linux 9 主機上安裝的套件受到 kernel-5.14.0-474.el9 版本變更記錄中提及的多個弱點影響。

- 拒絕原因:此 CVE ID 已被其 CVE 編號授權單位拒絕或撤銷。
(CVE-2023-52651)

- 已經解決 Linux 核心中的以下弱點:io_uring:捨棄與 SCM_RIGHTS 相關的任何程式碼。在停止支援透過 SCM_RIGHTS 傳遞 io_uring fds 之後,此為無作用程式碼,請將它移除。(CVE-2023-52656)

- 已經解決 Linux 核心中的以下弱點:wifi: mt76: mt7921e:修正 free_irq() 中的釋放後使用。從 commit a304e1b82808 ([PATCH] Debug shared irqs) 開始,會進行測試以確保 shared irq 處置程式應該能夠在取消註冊後處理未預期的事件。針對這種情況,讓我們套用 MT76_REMOVED 旗標,指出裝置已移除,且不會再擁有資源存取權。錯誤:KASAN:mt7921_irq_handler+0xd8/0x100 中發生釋放後使用 [mt7921e] 工作 rmmod/11115 CPU: 28 PID: 11115 Comm: rmmod 受污染:G W L 於 addr ffff88824a7d3b78 讀取大小 8 5.17.0 #10 硬體名稱:Micro- Star International Co., Ltd. MS-7D73/MPG B650I EDGE WIFI (MS-7D73), BIOS 1.81 01/05/2024 呼叫追蹤:<TASK> dump_stack_lvl+0x6f/0xa0 print_address_description.constprop.0+0x1f/0x190 ? mt7921_irq_handler+0xd8/0x100 [mt7921e] ? mt7921_irq_handler+0xd8/0x100 [mt7921e] kasan_report.cold+0x7f/0x11b ? mt7921_irq_handler+0xd8/0x100 [mt7921e] mt7921_irq_handler+0xd8/0x100 [mt7921e] free_irq+0x627/0xaa0 devm_free_irq+0x94/0xd0 ? devm_request_any_context_irq+0x160/0x160 ? kobject_put+0x18d/0x4a0 mt7921_pci_remove+0x153/0x190 [mt7921e] pci_device_remove+0xa2/0x1d0
__device_release_driver+0x346/0x6e0 driver_detach+0x1ef/0x2c0 bus_remove_driver+0xe7/0x2d0 ?
__check_object_size+0x57/0x310 pci_unregister_driver+0x26/0x250 __do_sys_delete_module+0x307/0x510 ? free_module+0x6a0/0x6a0 ? fpregs_assert_state_consistent+0x4b/0xb0 ? rcu_read_lock_sched_held+0x10/0x70 ? syscall_enter_from_user_mode+0x20/0x70 ? trace_hardirqs_on+0x1c/0x130 do_syscall_64+0x5c/0x80 ? trace_hardirqs_on_prepare+0x72/0x160 ? do_syscall_64+0x68/0x80 ? trace_hardirqs_on_prepare+0x72/0x160 entry_SYSCALL_64_after_hwframe+0x44/0xae (CVE-2024-26892)

- 已經解決 Linux 核心中的以下弱點:wifi: ath9k:延遲所有 ath9k_wmi_event_tasklet(),直到 init 完成。ath9k_htc 中使用的 ath9k_wmi_event_tasklet() 會假設所有資料結構在其執行前都已完全初始化。不過,由於事物初始化順序的緣故,並不一定保證情況會是如此,因為在完成 ath9k 驅動程式初始化之前,USB 子系統中已經可以看見裝置。我們已經在 commit: 8b3046abc99e 中承諾對此進行部分修復 (ath9k_htc:修正 ath9k_htc_tx_get_packet() 的 NULL 指標解除參照) 不過,該承諾僅中止事件 tasklet 中的 WMI_TXSTATUS_EVENTID 指令,並將其與 TX 結構中的初始化完成位元進行配對。syzbot 似乎也觸發其中一個其他指令的爭用情況,因此,讓我們移動現有的同步位元以涵蓋整個 tasklet (將其設定在 ath9k_htc_probe_device() 的結尾,而不是在 ath9k_tx_init() 內)。(CVE-2024-26897)

- 已經解決 Linux 核心中的以下弱點:wifi: brcm80211:處理 pmk_op 配置失敗。如果實體記憶體已用盡,brcmf_pmksa_v3_op() 中的 kzalloc() 會傳回 null。因此,如果我們解除參照 null 值,就會發生 null 指標解除參照錯誤。傳回
-如果 pmk_op 的 kzalloc() 失敗,則傳回來自 brcmf_pmksa_v3_op() 的 ENOMEM。(CVE-2024-27048)

- 已經解決 Linux 核心中的以下弱點:wifi: mt76: mt7925e:修正 free_irq() 中的釋放後使用。從 commit a304e1b82808 ([PATCH] Debug shared irqs) 開始,會進行測試以確保 shared irq 處置程式應該能夠在取消註冊後處理未預期的事件。針對這種情況,讓我們套用 MT76_REMOVED 旗標,指出裝置已移除,且不會再擁有資源存取權。(CVE-2024-27049)

- 已經解決 Linux 核心中的以下弱點:wifi: rtl8xxxu:新增 c2hcmd_work 的 cancel_work_sync()。驅動程式停止時,workqueue 可能仍在執行中。若要避免釋放後使用,請在 rtl8xxxu_stop() 中呼叫 cancel_work_sync()。 (CVE-2024-27052)

- 已經解決 Linux 核心中的以下弱點:wifi: iwlwifi: mvm:沒有為 GTK 設定 MFP 旗標。韌體不需要 GTK 的 MFP 旗標,它甚至可能會使韌體損毀。
在 AP 已設定的情況下:群組加密 TKIP 和 MFPC。我們將會傳送 GTK,密碼 = TKIP 和 MFP,而這當然是不可能的事情。 (CVE-2024-27434)

- 已經解決 Linux 核心中的以下弱點:wifi: mac80211:檢查/清除快速 rx 以進行非 4addr sta VLAN 變更。將工作站移出 VLAN 之後再刪除 VLAN 時,fast_rx 項目仍保留指標指向 VLAN 的 netdev,其可能造成釋放後使用錯誤。透過在 VLAN 變更後立即呼叫 ieee80211_check_fast_rx 來修正此問題。 (CVE-2024-35789)

- 已經解決 Linux 核心中的以下弱點:wifi: iwlwifi: dbg-tlv:確保 NULL 終止。iwl_fw_ini_debug_info_tlv 作為字串用途,因此我們必須確保字串已經正確終止,然後才能使用字串。(CVE-2024-35845)

- 已經解決 Linux 核心中的以下弱點:wifi: iwlwifi: mvm: rfi:修正潛在的回應洩漏。如果 rx 承載長度檢查失敗,或者如果 kmemdup() 失敗,我們仍需釋放指令回應。修正該問題。(CVE-2024-35912)

- 已經解決 Linux 核心中的以下弱點:wifi: iwlwifi: mvm:選擇 SESSION_PROTECTION_NOTIF 的版本。若想知道在 iwl_mvm_session_prot_notif 結構中尋找 mac_id 還是 link_id,我們應該查看 SESSION_PROTECTION_NOTIF 的版本。如此會導致警告:警告:CPU: 0 PID:11403 at drivers/net/wireless/intel/iwlwifi/mvm/time-event.c:959 iwl_mvm_rx_session_protect_notif+0x333/0x340 [iwlmvm] RIP:
0010:iwl_mvm_rx_session_protect_notif+0x333/0x340 [iwlmvm] 程式碼:00 49 c7 84 24 48 07 00 00 00 00 00 00 41 c6 84 24 78 07 00 00 ff 4c 89 f7 e8 e9 71 54 d9 e9 7d fd ff ff 0f 0b e9 23 fe ff ff <0f> 0b e9 1c fe ff ff 66 0f 1f 44 00 00 90 90 90 90 90 90 90 90 90 RSP: 0018:ffffb4bb00003d40 EFLAGS: 00010202 RAX:
0000000000000000 RBX: ffff9ae63a361000 RCX: ffff9ae4a98b60d4 RDX: ffff9ae4588499c0 RSI: 0000000000000305 RDI: ffff9ae4a98b6358 RBP: ffffb4bb00003d68 R08: 0000000000000003 R09: 0000000000000010 R10:
ffffb4bb00003d00 R11: 000000000000000f R12: ffff9ae441399050 R13: ffff9ae4761329e8 R14: 0000000000000001 R15: 0000000000000000 FS: 0000000000000000(0000) GS:ffff9ae7af400000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000055fb75680018 CR3: 00000003dae32006 CR4: 0000000000f70ef0 PKRU: 55555554 呼叫追蹤:<IRQ> ? show_regs+0x69/0x80 ? __warn+0x8d/0x150 ? iwl_mvm_rx_session_protect_notif+0x333/0x340 [iwlmvm] ? report_bug+0x196/0x1c0 ? handle_bug+0x45/0x80 ? exc_invalid_op+0x1c/0xb0 ? asm_exc_invalid_op+0x1f/0x30 ? iwl_mvm_rx_session_protect_notif+0x333/0x340 [iwlmvm] iwl_mvm_rx_common+0x115/0x340 [iwlmvm] iwl_mvm_rx_mq+0xa6/0x100 [iwlmvm] iwl_pcie_rx_handle+0x263/0xa10 [iwlwifi] iwl_pcie_napi_poll_msix+0x32/0xd0 [iwlwifi] (CVE-2024-35913)

- 已經解決 Linux 核心中的以下弱點:wifi: cfg80211:更仔細檢查 A-MSDU 格式。如果看起來 A-MSDU 中有另一個子框架,但標頭不完整,我們最終可以讀取資料超出邊界,僅在稍後捨棄。進行時稍微謹慎一些,檢查子框架標頭是否存在。 (CVE-2024-35937)

- 已經解決 Linux 核心中的以下弱點: wifi: ath11k:將 MHI 通道緩衝區長度減少至 8KB。目前 ath11k_mhi_config_qca6390 的 buf_len 欄位已指派為 0,使得 MHI 使用預設大小 64KB 來配置通道緩衝區。在系統記憶體高度分散且不允許記憶體壓縮或回收的某些情況下,這可能會失敗。有一個由此造成的失敗報告:kworker/u32:45: page allocation failure: order:4, mode:0x40c00(GFP_NOIO|__GFP_COMP), nodemask=(null),cpuset=/,mems_allowed=0 CPU: 0 PID: 19318 Comm:
kworker/u32:45 未受污染 6.8.0-rc3-1.gae4495f-default #1 openSUSE Tumbleweed (unreleased) 493b6d5b382c603654d7a81fc3c144d59a1dfceb 工作佇列:events_unbound async_run_entry_fn 呼叫追蹤:<TASK> dump_stack_lvl+0x47/0x60 warn_alloc+0x13a/0x1b0 ? srso_alias_return_thunk+0x5/0xfbef5 ?
__alloc_pages_direct_compact+0xab/0x210 __alloc_pages_slowpath.constprop.0+0xd3e/0xda0
__alloc_pages+0x32d/0x350 ? mhi_prepare_channel+0x127/0x2d0 [mhi 40df44e07c05479f7a6e7b90fba9f0e0031a7814]
__kmalloc_large_node+0x72/0x110 __kmalloc+0x37c/0x480 ? mhi_map_single_no_bb+0x77/0xf0 [mhi 40df44e07c05479f7a6e7b90fba9f0e0031a7814] ? mhi_prepare_channel+0x127/0x2d0 [mhi 40df44e07c05479f7a6e7b90fba9f0e0031a7814] mhi_prepare_channel+0x127/0x2d0 [mhi 40df44e07c05479f7a6e7b90fba9f0e0031a7814] __mhi_prepare_for_transfer+0x44/0x80 [mhi 40df44e07c05479f7a6e7b90fba9f0e0031a7814] ? __pfx_____mhi_prepare_for_transfer+0x10/0x10 [mhi 40df44e07c05479f7a6e7b90fba9f0e0031a7814] device_for_each_child+0x5c/0xa0 ? __pfx_pci_pm_resume+0x10/0x10 ath11k_core_resume+0x65/0x100 [ath11k a5094e22d7223135c40d93c8f5321cf09fd85e4e] ? srso_alias_return_thunk+0x5/0xfbef5 ath11k_pci_pm_resume+0x32/0x60 [ath11k_pci 830b7bfc3ea80ebef32e563cafe2cb55e9cc73ec] ? srso_alias_return_thunk+0x5/0xfbef5 dpm_run_callback+0x8c/0x1e0 device_resume+0x104/0x340 ? __pfx_dpm_watchdog_handler+0x10/0x10 async_resume+0x1d/0x30 async_run_entry_fn+0x32/0x120 process_one_work+0x168/0x330 worker_thread+0x2f5/0x410 ? __pfx_worker_thread+0x10/0x10 kthread+0xe8/0x120 ? __pfx_kthread+0x10/0x10 ret_from_fork+0x34/0x50 ? __pfx_kthread+0x10/0x10 ret_from_fork_asm+0x1b/0x30 </TASK> 實際上,這些緩衝區僅供 QMI 目標 -> 主機通訊使用。對於 WCN6855 和 QCA6390,其最大封包大小小於 6KB。因此,將 buf_len 欄位變更為 8KB,如果頁面大小為 4KB,這會產生順序 1 的配置。透過這種方式,我們至少可以節省一些記憶體,並降低在這些情況下發生配置失敗的可能性。已測試項目:WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30 (CVE-2024-35938)

- 已經解決 Linux 核心中的以下弱點:wifi: rtw89:中止掃描時修正 null 指標存取。在取消掃描期間,我們可能會使用未掃描的 vif。使用實際的掃描 vif 修正此問題。 (CVE-2024-35946)

- 已經解決 Linux 核心中的以下弱點:mm:在 page_cache_ra_order() 中使用 memalloc_nofs_save()。請參閱 commit f2c817bed58d (mm: 在 readahead 路徑中使用 memalloc_nofs_save),確保 page_cache_ra_order() 不會嘗試回收檔案備份頁面,或是導致死鎖,這是在測試 ext4 大型 folio 時會發現的問題。INFO:任務 DataXceiver for:7494 遭封鎖超過 120 秒。
echo 0 > /proc/sys/kernel/hung_task_timeout_secs 停用此訊息。task:DataXceiver for state:D stack:0 pid:7494 ppid:1 flags:0x00000200 呼叫追蹤:__switch_to+0x14c/0x240 __schedule+0x82c/0xdd0 schedule+0x58/0xf0 io_schedule+0x24/0xa0 __folio_lock+0x130/0x300 migrate_pages_batch+0x378/0x918 migrate_pages+0x350/0x700 compact_zone+0x63c/0xb38 compact_zone_order+0xc0/0x118 try_to_compact_pages+0xb0/0x280 __alloc_pages_direct_compact+0x98/0x248 __alloc_pages+0x510/0x1110 alloc_pages+0x9c/0x130 folio_alloc+0x20/0x78 filemap_alloc_folio+0x8c/0x1b0 page_cache_ra_order+0x174/0x308 ondemand_readahead+0x1c8/0x2b8 page_cache_async_ra+0x68/0xb8 filemap_readahead.isra.0+0x64/0xa8 filemap_get_pages+0x3fc/0x5b0 filemap_splice_read+0xf4/0x280 ext4_file_splice_read+0x2c/0x48 [ext4] vfs_splice_read.part.0+0xa8/0x118 splice_direct_to_actor+0xbc/0x288 do_splice_direct+0x9c/0x108 do_sendfile+0x328/0x468 __arm64_sys_sendfile64+0x8c/0x148 invoke_syscall+0x4c/0x118 el0_svc_common.constprop.0+0xc8/0xf0 do_el0_svc+0x24/0x38 el0_svc+0x4c/0x1f8 el0t_64_sync_handler+0xc0/0xc8 el0t_64_sync+0x188/0x190 (CVE-2024-36882)

- 已經解決 Linux 核心中的以下弱點:wifi: iwlwifi: mvm:防止移除時的無效 STA ID。防止 iwl_mvm_mld_rm_sta_id 中的無效工作站 ID,因為這會導致超出邊界陣列存取。這樣可避免倘若驅動程式在錯誤處理期間進入不良狀態時發生問題。 (CVE-2024-36921)

- 已經解決 Linux 核心中的以下弱點:wifi: iwlwifi:在鎖定情況下讀取 txq->read_ptr。如果讀取 txq->read_ptr 而沒有鎖定,我們可能會讀取相同的值兩次,然後獲得鎖定,並從該處回收至兩個不同的地方,然而重要的是,回收相同的項目兩次,導致 WARN_ONCE() 出現時間較晚。透過讀取鎖定情況下的 txq->read_ptr 來修正此問題。 (CVE-2024-36922)

- 已經解決 Linux 核心中的以下弱點:wifi: nl80211:不釋放 NULL 合併規則。如果剖析失敗,我們可以在此解除參照 NULL 指標。 (CVE-2024-36941)

請注意,Nessus 並未測試這些問題,而是僅依據應用程式自我報告的版本號碼作出判斷。

解決方案

更新 CentOS 9 Stream bpftool 套件。

另請參閱

https://kojihub.stream.centos.org/koji/buildinfo?buildID=65347

Plugin 詳細資訊

嚴重性: Critical

ID: 201993

檔案名稱: centos9_kernel-5_14_0-474_65347.nasl

版本: 1.1

類型: local

代理程式: unix

已發布: 2024/7/9

已更新: 2024/7/9

支援的感應器: Frictionless Assessment AWS, Frictionless Assessment Azure, Frictionless Assessment Agent, Agentless Assessment, Nessus

風險資訊

VPR

風險因素: High

分數: 7.4

CVSS v2

風險因素: High

基本分數: 8.3

時間分數: 6.1

媒介: CVSS2#AV:A/AC:L/Au:N/C:C/I:C/A:C

CVSS 評分資料來源: CVE-2024-36921

CVSS v3

風險因素: Critical

基本分數: 9.1

時間分數: 7.9

媒介: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H

時間媒介: CVSS:3.0/E:U/RL:O/RC:C

CVSS 評分資料來源: CVE-2024-35845

弱點資訊

CPE: p-cpe:/a:centos:centos:libperf, p-cpe:/a:centos:centos:kernel-rt-devel, p-cpe:/a:centos:centos:kernel-64k-debug-modules-internal, p-cpe:/a:centos:centos:kernel-zfcpdump-modules-core, p-cpe:/a:centos:centos:kernel-rt-debug-devel-matched, p-cpe:/a:centos:centos:kernel-64k, p-cpe:/a:centos:centos:bpftool, p-cpe:/a:centos:centos:kernel-core, p-cpe:/a:centos:centos:kernel-debug-modules-core, p-cpe:/a:centos:centos:kernel-64k-debug-core, p-cpe:/a:centos:centos:kernel-headers, p-cpe:/a:centos:centos:kernel-rt-modules-internal, p-cpe:/a:centos:centos:kernel-64k-modules-internal, p-cpe:/a:centos:centos:kernel-64k-modules-extra, p-cpe:/a:centos:centos:rtla, p-cpe:/a:centos:centos:kernel-64k-debug-devel, p-cpe:/a:centos:centos:kernel-zfcpdump-modules-internal, p-cpe:/a:centos:centos:kernel-64k-debug-modules-core, p-cpe:/a:centos:centos:kernel-64k-debug, p-cpe:/a:centos:centos:rv, p-cpe:/a:centos:centos:kernel-modules-extra, p-cpe:/a:centos:centos:kernel-cross-headers, p-cpe:/a:centos:centos:kernel-64k-debug-modules-extra, p-cpe:/a:centos:centos:kernel-tools-libs, p-cpe:/a:centos:centos:kernel-debug-modules, p-cpe:/a:centos:centos:kernel-rt-debug-kvm, p-cpe:/a:centos:centos:kernel-rt-debug-devel, p-cpe:/a:centos:centos:kernel-rt-devel-matched, p-cpe:/a:centos:centos:kernel-rt-core, p-cpe:/a:centos:centos:kernel-zfcpdump, p-cpe:/a:centos:centos:kernel-rt-kvm, p-cpe:/a:centos:centos:kernel-64k-devel-matched, p-cpe:/a:centos:centos:kernel-devel, p-cpe:/a:centos:centos:kernel-rt-modules-extra, p-cpe:/a:centos:centos:kernel-64k-debug-modules-partner, p-cpe:/a:centos:centos:kernel-tools-libs-devel, p-cpe:/a:centos:centos:kernel-64k-core, p-cpe:/a:centos:centos:kernel-debug-uki-virt, p-cpe:/a:centos:centos:kernel-debug, p-cpe:/a:centos:centos:kernel-selftests-internal, p-cpe:/a:centos:centos:perf, p-cpe:/a:centos:centos:kernel, p-cpe:/a:centos:centos:kernel-debug-devel, p-cpe:/a:centos:centos:kernel-zfcpdump-devel-matched, p-cpe:/a:centos:centos:kernel-rt-debug, p-cpe:/a:centos:centos:kernel-64k-debug-modules, p-cpe:/a:centos:centos:kernel-modules, p-cpe:/a:centos:centos:kernel-debug-devel-matched, p-cpe:/a:centos:centos:kernel-rt-modules, p-cpe:/a:centos:centos:kernel-tools, p-cpe:/a:centos:centos:kernel-abi-stablelists, p-cpe:/a:centos:centos:kernel-zfcpdump-devel, p-cpe:/a:centos:centos:kernel-rt-debug-modules, p-cpe:/a:centos:centos:kernel-uki-virt, p-cpe:/a:centos:centos:kernel-64k-modules-core, p-cpe:/a:centos:centos:kernel-64k-modules-partner, p-cpe:/a:centos:centos:kernel-64k-modules, p-cpe:/a:centos:centos:kernel-zfcpdump-modules-partner, p-cpe:/a:centos:centos:kernel-64k-devel, p-cpe:/a:centos:centos:kernel-modules-partner, p-cpe:/a:centos:centos:kernel-rt-debug-modules-extra, p-cpe:/a:centos:centos:kernel-zfcpdump-core, p-cpe:/a:centos:centos:libperf-devel, p-cpe:/a:centos:centos:kernel-zfcpdump-modules, p-cpe:/a:centos:centos:kernel-rt-debug-modules-internal, p-cpe:/a:centos:centos:kernel-rt-modules-core, p-cpe:/a:centos:centos:kernel-debug-core, p-cpe:/a:centos:centos:kernel-ipaclones-internal, p-cpe:/a:centos:centos:kernel-modules-core, p-cpe:/a:centos:centos:kernel-64k-debug-devel-matched, p-cpe:/a:centos:centos:kernel-rt-debug-modules-partner, p-cpe:/a:centos:centos:kernel-zfcpdump-modules-extra, p-cpe:/a:centos:centos:kernel-debug-modules-partner, p-cpe:/a:centos:centos:kernel-debug-modules-extra, p-cpe:/a:centos:centos:kernel-devel-matched, p-cpe:/a:centos:centos:kernel-debug-modules-internal, p-cpe:/a:centos:centos:kernel-rt-debug-modules-core, p-cpe:/a:centos:centos:kernel-rt-modules-partner, cpe:/a:centos:centos:9, p-cpe:/a:centos:centos:kernel-modules-internal, p-cpe:/a:centos:centos:kernel-rt-debug-core, p-cpe:/a:centos:centos:python3-perf, p-cpe:/a:centos:centos:kernel-rt

必要的 KB 項目: Host/local_checks_enabled, Host/cpu, Host/CentOS/release, Host/CentOS/rpm-list

可輕鬆利用: No known exploits are available

修補程式發佈日期: 2024/7/2

弱點發布日期: 2024/4/17

參考資訊

CVE: CVE-2023-52651, CVE-2023-52656, CVE-2024-26892, CVE-2024-26897, CVE-2024-27048, CVE-2024-27049, CVE-2024-27052, CVE-2024-27434, CVE-2024-35789, CVE-2024-35845, CVE-2024-35912, CVE-2024-35913, CVE-2024-35937, CVE-2024-35938, CVE-2024-35946, CVE-2024-36882, CVE-2024-36921, CVE-2024-36922, CVE-2024-36941