smb: client: fix use-after-free in cifs_oplock_break (Linux Linux)

CVE-2025-38527
CRITICAL 9.8

En bref

Source
NVD
EPSS
EPSS 0.43 % · centile 37 ()
État
PUBLISHED
Publiée
Mise à jour
Attribuée par
Linux
Statut NVD
Modified

Description

In the Linux kernel, the following vulnerability has been resolved: smb: client: fix use-after-free in cifs_oplock_break A race condition can occur in cifs_oplock_break() leading to a use-after-free of the cinode structure when unmounting: cifs_oplock_break() _cifsFileInfo_put(cfile) cifsFileInfo_put_final() cifs_sb_deactive() [last ref, start releasing sb] kill_sb() kill_anon_super() generic_shutdown_super() evict_inodes() dispose_list() evict() destroy_inode() call_rcu(&inode->i_rcu, i_callback) spin_lock(&cinode->open_file_lock) <- OK [later] i_callback() cifs_free_inode() kmem_cache_free(cinode) spin_unlock(&cinode->open_file_lock) <- UAF cifs_done_oplock_break(cinode) <- UAF The issue occurs when umount has already released its reference to the superblock. When _cifsFileInfo_put() calls cifs_sb_deactive(), this releases the last reference, triggering the immediate cleanup of all inodes under RCU. However, cifs_oplock_break() continues to access the cinode after this point, resulting in use-after-free. Fix this by holding an extra reference to the superblock during the entire oplock break operation. This ensures that the superblock and its inodes remain valid until the oplock break completes.

Faiblesses (CWE)

  • CWE-416 — Utilisation après libération

Références

Scores

VersionScoreVecteurÉvalué par
CVSS 3.1CRITICAL 9.8CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux
CVSS 3.1CRITICAL 9.8CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HNVD · 416baaa9-dc9f-4396-8d5f-8c081fb06d67 (Secondary)
CVSS 3.1HIGH 7.8CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HNVD · nvd@nist.gov (Primary)

Références européennes

Avis du CERT-FR

Configurations affectées (CPE NVD)

Produits affectés

ProduitVersions
Linux · Linuxaffected b98749cac4a695f084a5ff076f4510b23e353ecd < 4256a483fe58af66a46cbf3dc48ff26e580d3308 ; affected b98749cac4a695f084a5ff076f4510b23e353ecd < 0a4eec84d4d2c4085d4ed8630fd74e4b39033c1b ; affected b98749cac4a695f084a5ff076f4510b23e353ecd < 2baaf5bbab2ac474c4f92c10fcb3310f824db995 ; affected b98749cac4a695f084a5ff076f4510b23e353ecd < 09bce2138a30ef10d8821c8c3f73a4ab7a5726bc ; affected b98749cac4a695f084a5ff076f4510b23e353ecd < da11bd4b697b393a207f19a2ed7d382a811a3ddc ; affected b98749cac4a695f084a5ff076f4510b23e353ecd < 705c79101ccf9edea5a00d761491a03ced314210
Linux · Linuxaffected 5.1 ; unaffected 0 < 5.1 ; unaffected 5.15.190 ≤ 5.15.* ; unaffected 6.1.147 ≤ 6.1.* ; unaffected 6.6.100 ≤ 6.6.* ; unaffected 6.12.40 ≤ 6.12.*

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST — attribution requested
ENISA EUVDENISA — reproduction authorised, source acknowledged
CERT-FR (ANSSI)Licence Ouverte / Etalab 2.0
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain — this product uses data from the NVD API but is not endorsed or certified by the NVD