Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2024-36003— ice: fix LAG and VF lock dependency in ice_reset_vf()

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于ice_vc_cfg_qs_msg函数发生死锁问题。

AI Predicted 5.5 Difficulty: Hard EPSS 0.17% · P5

Possible ATT&CK Techniques 1 AI

T1499 · Endpoint Denial of Service

Affected Version Matrix 9

VendorProduct Version RangeStatus
Linux Linux fd7f7a8ad3363fd94fc3868616cc70a1d8dfc01b< 740717774dc37338404d10726967d582414f638c affected
9f74a3dfcf83e11aedcb98250b8040dbc6d9659a< de8631d8c9df08440268630200e64b623a5f69e6 affected
9f74a3dfcf83e11aedcb98250b8040dbc6d9659a< 96fdd1f6b4ed72a741fb0eb705c0e13049b8721f affected
6.6.5< 6.6.30 affected
6.7 affected
< 6.7 unaffected
6.6.30≤ 6.6.* unaffected
6.8.9≤ 6.8.* unaffected
… +1 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2024-36003

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
ice: fix LAG and VF lock dependency in ice_reset_vf()
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: ice: fix LAG and VF lock dependency in ice_reset_vf() 9f74a3dfcf83 ("ice: Fix VF Reset paths when interface in a failed over aggregate"), the ice driver has acquired the LAG mutex in ice_reset_vf(). The commit placed this lock acquisition just prior to the acquisition of the VF configuration lock. If ice_reset_vf() acquires the configuration lock via the ICE_VF_RESET_LOCK flag, this could deadlock with ice_vc_cfg_qs_msg() because it always acquires the locks in the order of the VF configuration lock and then the LAG mutex. Lockdep reports this violation almost immediately on creating and then removing 2 VF: ====================================================== WARNING: possible circular locking dependency detected 6.8.0-rc6 #54 Tainted: G W O ------------------------------------------------------ kworker/60:3/6771 is trying to acquire lock: ff40d43e099380a0 (&vf->cfg_lock){+.+.}-{3:3}, at: ice_reset_vf+0x22f/0x4d0 [ice] but task is already holding lock: ff40d43ea1961210 (&pf->lag_mutex){+.+.}-{3:3}, at: ice_reset_vf+0xb7/0x4d0 [ice] which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (&pf->lag_mutex){+.+.}-{3:3}: __lock_acquire+0x4f8/0xb40 lock_acquire+0xd4/0x2d0 __mutex_lock+0x9b/0xbf0 ice_vc_cfg_qs_msg+0x45/0x690 [ice] ice_vc_process_vf_msg+0x4f5/0x870 [ice] __ice_clean_ctrlq+0x2b5/0x600 [ice] ice_service_task+0x2c9/0x480 [ice] process_one_work+0x1e9/0x4d0 worker_thread+0x1e1/0x3d0 kthread+0x104/0x140 ret_from_fork+0x31/0x50 ret_from_fork_asm+0x1b/0x30 -> #0 (&vf->cfg_lock){+.+.}-{3:3}: check_prev_add+0xe2/0xc50 validate_chain+0x558/0x800 __lock_acquire+0x4f8/0xb40 lock_acquire+0xd4/0x2d0 __mutex_lock+0x9b/0xbf0 ice_reset_vf+0x22f/0x4d0 [ice] ice_process_vflr_event+0x98/0xd0 [ice] ice_service_task+0x1cc/0x480 [ice] process_one_work+0x1e9/0x4d0 worker_thread+0x1e1/0x3d0 kthread+0x104/0x140 ret_from_fork+0x31/0x50 ret_from_fork_asm+0x1b/0x30 other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&pf->lag_mutex); lock(&vf->cfg_lock); lock(&pf->lag_mutex); lock(&vf->cfg_lock); *** DEADLOCK *** 4 locks held by kworker/60:3/6771: #0: ff40d43e05428b38 ((wq_completion)ice){+.+.}-{0:0}, at: process_one_work+0x176/0x4d0 #1: ff50d06e05197e58 ((work_completion)(&pf->serv_task)){+.+.}-{0:0}, at: process_one_work+0x176/0x4d0 #2: ff40d43ea1960e50 (&pf->vfs.table_lock){+.+.}-{3:3}, at: ice_process_vflr_event+0x48/0xd0 [ice] #3: ff40d43ea1961210 (&pf->lag_mutex){+.+.}-{3:3}, at: ice_reset_vf+0xb7/0x4d0 [ice] stack backtrace: CPU: 60 PID: 6771 Comm: kworker/60:3 Tainted: G W O 6.8.0-rc6 #54 Hardware name: Workqueue: ice ice_service_task [ice] Call Trace: <TASK> dump_stack_lvl+0x4a/0x80 check_noncircular+0x12d/0x150 check_prev_add+0xe2/0xc50 ? save_trace+0x59/0x230 ? add_chain_cache+0x109/0x450 validate_chain+0x558/0x800 __lock_acquire+0x4f8/0xb40 ? lockdep_hardirqs_on+0x7d/0x100 lock_acquire+0xd4/0x2d0 ? ice_reset_vf+0x22f/0x4d0 [ice] ? lock_is_held_type+0xc7/0x120 __mutex_lock+0x9b/0xbf0 ? ice_reset_vf+0x22f/0x4d0 [ice] ? ice_reset_vf+0x22f/0x4d0 [ice] ? rcu_is_watching+0x11/0x50 ? ice_reset_vf+0x22f/0x4d0 [ice] ice_reset_vf+0x22f/0x4d0 [ice] ? process_one_work+0x176/0x4d0 ice_process_vflr_event+0x98/0xd0 [ice] ice_service_task+0x1cc/0x480 [ice] process_one_work+0x1e9/0x4d0 worker_thread+0x1e1/0x3d0 ? __pfx_worker_thread+0x10/0x10 kthread+0x104/0x140 ? __pfx_kthread+0x10/0x10 ret_from_fork+0x31/0x50 ? __pfx_kthread+0x10/0x10 ret_from_fork_asm+0x1b/0x30 </TASK> To avoid deadlock, we must acquire the LAG ---truncated---
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于ice_vc_cfg_qs_msg函数发生死锁问题。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux fd7f7a8ad3363fd94fc3868616cc70a1d8dfc01b ~ 740717774dc37338404d10726967d582414f638c -
Linux Linux 6.7 -

II. Public POCs for CVE-2024-36003

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-36003

请登录查看更多情报信息。

Other References for CVE-2024-36003 (3)

Same Patch Batch · Linux · 2024-05-20 · 62 CVEs total

CVE-2024-35969 8.8 HIGH ipv6: fix race condition between ipv6_get_ifaddr and ipv6_del_addr
CVE-2024-35987 8.4 HIGH riscv: Fix loading 64-bit NOMMU kernels past the start of RAM
CVE-2024-35980 8.4 HIGH arm64: tlb: Fix TLBI RANGE operand
CVE-2024-35948 7.8 HIGH bcachefs: Check for journal entries overruning end of sb clean section
CVE-2024-36007 7.8 HIGH mlxsw: spectrum_acl_tcam: Fix warning during rehash
CVE-2024-35993 7.8 HIGH mm: turn folio_test_hugetlb into a PageType
CVE-2024-36001 7.8 HIGH netfs: Fix the pre-flush when appending to a file in writethrough mode
CVE-2024-35994 7.8 HIGH firmware: qcom: uefisecapp: Fix memory related IO errors and crashes
CVE-2024-35990 7.8 HIGH dma: xilinx_dpdma: Fix locking
CVE-2024-36009 7.8 HIGH ax25: Fix netdev refcount issue
CVE-2024-35968 7.8 HIGH pds_core: Fix pdsc_check_pci_health function to use work thread
CVE-2024-35958 7.8 HIGH net: ena: Fix incorrect descriptor free behavior
CVE-2024-35954 7.8 HIGH scsi: sg: Avoid sg device teardown race
CVE-2024-35951 7.8 HIGH drm/panfrost: Fix the error path in panfrost_mmu_map_fault_addr()
CVE-2024-35950 7.8 HIGH drm/client: Fully protect modes[] with dev->mode_config.mutex
CVE-2024-35949 7.8 HIGH btrfs: make sure that WRITTEN is set on all metadata blocks
CVE-2024-35979 7.8 HIGH raid1: fix use-after-free for original bio in raid1_write_request()
CVE-2024-35971 7.5 HIGH net: ks8851: Handle softirqs at the end of IRQ thread to fix hang
CVE-2024-35998 7.5 HIGH smb3: fix lock ordering potential deadlock in cifs_sync_mid_result
CVE-2024-35999 7.5 HIGH smb3: missing lock when picking channel

Showing top 20 of 62 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2024-36003

No comments yet


Leave a comment