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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2025-38311— iavf: get rid of the crit lock

EPSS 0.07% · P21
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2025-38311

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
iavf: get rid of the crit lock
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: iavf: get rid of the crit lock Get rid of the crit lock. That frees us from the error prone logic of try_locks. Thanks to netdev_lock() by Jakub it is now easy, and in most cases we were protected by it already - replace crit lock by netdev lock when it was not the case. Lockdep reports that we should cancel the work under crit_lock [splat1], and that was the scheme we have mostly followed since [1] by Slawomir. But when that is done we still got into deadlocks [splat2]. So instead we should look at the bigger problem, namely "weird locking/scheduling" of the iavf. The first step to fix that is to remove the crit lock. I will followup with a -next series that simplifies scheduling/tasks. Cancel the work without netdev lock (weird unlock+lock scheme), to fix the [splat2] (which would be totally ugly if we would kept the crit lock). Extend protected part of iavf_watchdog_task() to include scheduling more work. Note that the removed comment in iavf_reset_task() was misplaced, it belonged to inside of the removed if condition, so it's gone now. [splat1] - w/o this patch - The deadlock during VF removal: WARNING: possible circular locking dependency detected sh/3825 is trying to acquire lock: ((work_completion)(&(&adapter->watchdog_task)->work)){+.+.}-{0:0}, at: start_flush_work+0x1a1/0x470 but task is already holding lock: (&adapter->crit_lock){+.+.}-{4:4}, at: iavf_remove+0xd1/0x690 [iavf] which lock already depends on the new lock. [splat2] - when cancelling work under crit lock, w/o this series, see [2] for the band aid attempt WARNING: possible circular locking dependency detected sh/3550 is trying to acquire lock: ((wq_completion)iavf){+.+.}-{0:0}, at: touch_wq_lockdep_map+0x26/0x90 but task is already holding lock: (&dev->lock){+.+.}-{4:4}, at: iavf_remove+0xa6/0x6e0 [iavf] which lock already depends on the new lock. [1] fc2e6b3b132a ("iavf: Rework mutexes for better synchronisation") [2] https://github.com/pkitszel/linux/commit/52dddbfc2bb60294083f5711a158a
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于iavf驱动中crit锁移除不当,可能导致死锁。
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

VendorProductAffected VersionsCPESubscribe
LinuxLinux d1639a17319ba78a018280cd2df6577a7e5d9fab ~ 620ab4d6215de0b25227f9fff1a8c7fb66837cb8 -
LinuxLinux 6.5 -

II. Public POCs for CVE-2025-38311

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2025-38311

登录查看更多情报信息。

Same Patch Batch · Linux · 2025-07-10 · 84 CVEs total

CVE-2025-38317wifi: ath12k: Fix buffer overflow in debugfs
CVE-2025-38328jffs2: check jffs2_prealloc_raw_node_refs() result in few other places
CVE-2025-38316wifi: mt76: mt7996: avoid NULL pointer dereference in mt7996_set_monitor()
CVE-2025-38315Bluetooth: btintel: Check dsbr size from EFI variable
CVE-2025-38314virtio-pci: Fix result size returned for the admin command completion
CVE-2025-38310seg6: Fix validation of nexthop addresses
CVE-2025-38309drm/xe/vm: move xe_svm_init() earlier
CVE-2025-38308ASoC: Intel: avs: Fix possible null-ptr-deref when initing hw
CVE-2025-38306fs/fhandle.c: fix a race in call of has_locked_children()
CVE-2025-38313bus: fsl-mc: fix double-free on mc_dev
CVE-2025-38318perf: arm-ni: Fix missing platform_set_drvdata()
CVE-2025-38319drm/amd/pp: Fix potential NULL pointer dereference in atomctrl_initialize_mc_reg_table
CVE-2025-38320arm64/ptrace: Fix stack-out-of-bounds read in regs_get_kernel_stack_nth()
CVE-2025-38321smb: Log an error when close_all_cached_dirs fails
CVE-2025-38322perf/x86/intel: Fix crash in icl_update_topdown_event()
CVE-2025-38323net: atm: add lec_mutex
CVE-2025-38324mpls: Use rcu_dereference_rtnl() in mpls_route_input_rcu().
CVE-2025-38325ksmbd: add free_transport ops in ksmbd connection
CVE-2025-38326aoe: clean device rq_list in aoedev_downdev()
CVE-2025-38327fgraph: Do not enable function_graph tracer when setting funcgraph-args

Showing top 20 of 84 CVEs. View all on vendor page → →

IV. Related Vulnerabilities

V. Comments for CVE-2025-38311

No comments yet


Leave a comment