ksmbd: fix UAF of struct file_lock in SMB2_LOCK deferred-lock cancellation (Linux Linux)
En bref
- Source
- NVD
- EPSS
- EPSS 0.43 % · centile 38 ()
- État
- PUBLISHED
- Publiée
- Mise à jour
- Attribuée par
- Linux
- Statut NVD
- Analyzed
Rechercher sur…
Description
In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix UAF of struct file_lock in SMB2_LOCK deferred-lock cancellation When a blocking byte-range lock request is deferred in the FILE_LOCK_DEFERRED path, ksmbd registers the asynchronous work into the connection's async_requests list via setup_async_work(). The cancel callback smb2_remove_blocked_lock() holds a reference to the flock. If the lock waiter is subsequently woken up but the work state is no longer KSMBD_WORK_ACTIVE (e.g., due to a concurrent cancellation), the cleanup path calls locks_free_lock(flock) without dequeuing the work from the async_requests list. Concurrently, smb2_cancel() walks the list under conn->request_lock and invokes the cancel callback, which then dereferences the already freed 'flock'. This leads to a slab-use-after-free inside __wake_up_common. Fix this by restructuring the cleanup logic after the worker returns from ksmbd_vfs_posix_lock_wait(). Move list_del(&smb_lock->llist) and release_async_work(work) to the top of the cleanup block. This guarantees that the async work is completely dequeued and serialized under conn->request_lock before locks_free_lock(flock) is called, rendering the flock unreachable for any concurrent smb2_cancel().
Faiblesses (CWE)
- CWE-416 — Utilisation après libération
Références
- https://git.kernel.org/stable/c/367c42a611fe488b7b03f1f6737f4dee0e8b20a2
- https://git.kernel.org/stable/c/7703fd9aba1f2483c8e55f9ff73b7663e0761ed9
- https://git.kernel.org/stable/c/463bbd79698513af4dad50fe1c573825f297ca2e
- https://git.kernel.org/stable/c/5aa1cb01155f96824003baf7997cdf1f150caba3
- https://git.kernel.org/stable/c/5c75275c0fc9a2deb0d8f5604edcb16f288171c8
- https://git.kernel.org/stable/c/d20d1c8ba5765d1d12eefc0aee6385ab3f240e1e
Scores
| Version | Score | Vecteur | Évalué par |
|---|---|---|---|
| CVSS 3.1 | HIGH 8.8 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H | Linux |
| CVSS 3.1 | HIGH 8.8 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H | NVD · 416baaa9-dc9f-4396-8d5f-8c081fb06d67 (Secondary) |
Références européennes
- ENISA EUVD · EUVD-2026-48940
- GCVE · GCVE-0-2026-64396
Avis du CERT-FR
- CERTFR-2026-AVI-1333 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1252 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1229 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1203 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1162 — Multiples vulnérabilités dans le noyau Linux d'Ubuntu · cert.ssi.gouv.fr
- CERTFR-2026-AVI-1031 — Multiples vulnérabilités dans le noyau Linux de Debian LTS · cert.ssi.gouv.fr
- CERTFR-2026-AVI-0982 — Multiples vulnérabilités dans le noyau Linux de Debian LTS · cert.ssi.gouv.fr
Configurations affectées (CPE NVD)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 5.15 < 6.1.178cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 6.2 < 6.6.145cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 6.7 < 6.12.96cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 6.13 < 6.18.39cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*≥ 6.19 < 7.1.4
Produits affectés
| Produit | Versions |
|---|---|
| Linux · Linux | affected e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 < 367c42a611fe488b7b03f1f6737f4dee0e8b20a2 ; affected e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 < 7703fd9aba1f2483c8e55f9ff73b7663e0761ed9 ; affected e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 < 463bbd79698513af4dad50fe1c573825f297ca2e ; affected e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 < 5aa1cb01155f96824003baf7997cdf1f150caba3 ; affected e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 < 5c75275c0fc9a2deb0d8f5604edcb16f288171c8 ; affected e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 < d20d1c8ba5765d1d12eefc0aee6385ab3f240e1e |
| Linux · Linux | affected 5.15 ; unaffected 0 < 5.15 ; unaffected 6.1.178 ≤ 6.1.* ; unaffected 6.6.145 ≤ 6.6.* ; unaffected 6.12.96 ≤ 6.12.* ; unaffected 6.18.39 ≤ 6.18.* |
Sources
| Source | Licence |
|---|---|
| CVE List (CVEProject cvelistV5) | CVE Program Terms of Use |
| EPSS (FIRST.org) | FIRST — attribution requested |
| ENISA EUVD | ENISA — reproduction authorised, source acknowledged |
| CERT-FR (ANSSI) | Licence Ouverte / Etalab 2.0 |
| NVD (NIST) via fkie-cad/nvd-json-data-feeds | Public domain — this product uses data from the NVD API but is not endorsed or certified by the NVD |