CVE-2026-64437 in Linuxinfo

Zusammenfassung

von VulDB • 25.07.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

ksmbd: Behebung eines Use-After-Free bei einem verzögerten file_lock nach SMB2_CLOSE gefolgt von SMB2_CANCEL

Der Commit f580d27e8928 („ksmbd: fix use-after-free of a deferred file_lock on double SMB2_CANCEL") bewirkte, dass smb2_cancel() eine Arbeitseinheit überspringt, deren Zustand KSMBD_WORK_CANCELLED ist, sodass ihre cancel_fn nicht ein zweites Mal ausgelöst werden kann. Allerdings hat KSMBD_WORK drei Zustände (ACTIVE, CANCELLED, CLOSED), und derselbe Freigabepfad wird auch für den Zustand CLOSED erreicht:

SMB2_CLOSE am Sperr-Handle -> set_close_state_blocked_works() setzt den Zustand der verzögerten Arbeit auf KSMBD_WORK_CLOSED und weckt den smb2_lock()-Worker. Der Worker nimmt die Early-Exit-Bedingung bei nicht-ACTIVE, sperrt file_lock über locks_free_lock(), und da der Zustand nicht KSMBD_WORK_CANCELLED ist, wird der STATUS_RANGE_NOT_LOCKED-Zweig mit „goto out2" genommen – was, ähnlich wie im CANCELLED-Zweig, release_async_work() überspringt. Die Arbeit verbleibt in conn->async_requests mit einer aktiven cancel_fn = smb2_remove_blocked_lock, die auf den bereits freigegebenen file_lock zeigt.

Ein nachfolgendes SMB2_CANCEL für dieselbe AsyncId umgeht dann die nur für KSMBD_WORK_CANCELLED vorgesehene Schutzabfrage (da ihr Zustand KSMBD_WORK_CLOSED ist), sodass smb2_cancel() cancel_fn erneut über den freigegebenen file_lock auslöst – derselbe Use-After-Free, der hier durch SMB2_CLOSE statt einem ersten SMB2_CANCEL ausgelöst wird:

BUG: KASAN: slab-use-after-free in __locks_delete_block __locks_delete_block locks_delete_block ksmbd_vfs_posix_lock_unblock smb2_remove_blocked_lock smb2_cancel <- 2. SMB2_CANCEL löst cancel_fn aus handle_ksmbd_work Zugewiesen von ...: locks_alloc_lock <- smb2_lock Freigegeben von ...: locks_free_lock <- smb2_lock (Early-Exit bei nicht-ACTIVE) ... Cache file_lock_cache der Größe 192

Reproduziert auf Mainline 7.1-rc7 (das bereits f580d27e8928 enthält) mit KASAN durch einen authentifizierten SMB-Client; die Doppel-SMB2_CANCEL-Kontrolle bleibt in diesem Kernel still, sodass der Fehlerbericht dem CLOSE-Auslöser zugeordnet werden kann.

Nur eine ACTIVE verzögerte Arbeit darf ihre cancel_fn auslösen: Beide Endzustände (CANCELLED und CLOSED) führen zum Early-Exit von smb2_lock(), der file_lock freigibt und release_async_work() überspringt. Schutzabfrage auf KSMBD_WORK_ACTIVE, sodass jede nicht-ACTIVE Arbeit übersprungen wird.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Zuständig

Linux

Reservieren

19.07.2026

Veröffentlichung

25.07.2026

Moderieren

akzeptiert

Eintrag

VDB-383190

CPE

bereit

EPSS

0.00215

KEV

nein

Aktivitäten

low

Quellen

Interested in the pricing of exploits?

See the underground prices here!