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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-98897— ksmbd: don't hold ci->m_lock while waiting for a lease break ack

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 内核中,以下漏洞已得到修复: ksmbd:在等待租约中断确认(lease break ack)时,不应持有 ci->m_lock 锁。 当 cifs.ko 客户端通过延迟关闭(deferred close)缓存了读取句柄(RH)租约,而此时又出现一个冲突的打开请求时,ksmbd 会中断该租约,并在 wait_for_break_ack() 中等待确认,最长等待时间为 OPLOCK_WAIT_TIME(35 秒)。__smb_break_all_levII_oplock() 函数在持有 ci->m_l

AI Predicted 5.5 Difficulty: Moderate

Possible ATT&CK Techniques 1 AI

T1190 · Exploit Public-Facing Application

Affected Version Matrix 5

VendorProduct Version RangeStatus
Linux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< 868c9038ffd4af39766d087f68c8f543a3f66635 affected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< 27a9bc968d4ae809a3f5ca2f2b136856ee613cb4 affected
< 6.18.53 affected
6.18.53≤ 6.18.* unaffected
7.2≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-98897

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
ksmbd: don't hold ci->m_lock while waiting for a lease break ack
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: ksmbd: don't hold ci->m_lock while waiting for a lease break ack When a cifs.ko client caches a read-handle (RH) lease via deferred close and a conflicting open arrives, ksmbd breaks the lease and waits for the acknowledgment in wait_for_break_ack() for up to OPLOCK_WAIT_TIME (35s). __smb_break_all_levII_oplock() runs that wait while holding ci->m_lock for read. cifs.ko reacts to a handle-lease break by closing the deferred handle rather than sending a lease break acknowledgment. That close path (close_id_del_oplock() -> opinfo_del()) takes ci->m_lock for write and is exactly what would wake the waiter, but it blocks on the read lock held by the waiting thread. The break is then resolved only by the 35s timeout, so xfstests generic/001 takes ~78s with leases enabled versus ~4s with oplocks only. Collect the target opinfos (each pinned with a reference) while holding ci->m_lock, then break them after releasing it, matching how smb_grant_oplock() already breaks a conflicting lease using only a reference. The reference keeps the opinfo (and its conn and lease) alive across the unlocked window, and a close racing the break is handled by the existing OPLOCK_CLOSING state check. Apply the same fix to the parent lease break paths.
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

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ~ 868c9038ffd4af39766d087f68c8f543a3f66635 -
Linux Linux 6.18.53 ~ 6.18.* -

II. Public POCs for CVE-2026-98897

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

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-98897

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

Patches & Fixes for CVE-2026-98897 (2)

Same Patch Batch · Linux · 2026-10-23 · 218 CVEs total

CVE-2026-98938 rust: irq: pass RegistrationInner as cookie to request_irq
CVE-2026-98951 riscv: ptrace: Zero-initialize regset buffers before copyin
CVE-2026-98950 flow_dissector: avoid u16 truncation of hlen in bpf_flow_dissect()
CVE-2026-98949 drm/imagination: Fix reference and vm_bo handling in remap()
CVE-2026-98948 mlxsw: spectrum_flower: Fix port range register leak in tmplt_create()
CVE-2026-98947 vsock: Fix memory leak in vmci_transport_recv_dgram_cb()
CVE-2026-98946 drm/vc4: Disable the V3D interrupt across runtime suspend
CVE-2026-98945 HID: steam: Rearrange teardown sequence
CVE-2026-98944 HID: steam: Refactor registration
CVE-2026-98943 HID: steam: Clean up locking
CVE-2026-98942 sched_ext: Build the cid tables privately and publish them with RCU
CVE-2026-98941 ext4: don't enable large folios on encrypted inodes
CVE-2026-98940 ASoC: qcom: lpass-cpu: use DAI table index for playback constraints
CVE-2026-98939 x86/mm: Drop unnecessary PMD page copy when freeing
CVE-2026-98927 KVM: arm64: nv: Fix life cycle of the nested_mmus array
CVE-2026-98930 KVM: s390: Fix IRQ injection with SIGP Stop and Store Status
CVE-2026-98929 macsec: initialize SecY before registering the netdevice
CVE-2026-98928 KVM: arm64: Derive GUEST_HAS_SVE from the SVE feature bit at EL2
CVE-2026-98931 mtd: spinand: fix NULL pointer dereference with no ECC engine
CVE-2026-98926 drm/amd/display: Remove sink usage from DPMS

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

IV. Related Vulnerabilities

V. Comments for CVE-2026-98897

No comments yet


Leave a comment