Description
In the Linux kernel, the following vulnerability has been resolved: cifs: fix cifsFileInfo leak on kmalloc failure in deferred close drain paths In cifs_close_deferred_file(), cifs_close_all_deferred_files(), and cifs_close_deferred_file_under_dentry(), when a pending deferred close is cancelled via cancel_delayed_work(), the subsequent kmalloc_obj() to add the file to the local processing list may fail under memory pressure. The loop breaks immediately, but the cancelled work is no longer pending (it would have called _cifsFileInfo_put()), and the cfile is never added to file_head for processing. The cifsFileInfo reference and the open server handle both leak. Fix by saving the cfile that failed allocation in a local variable, breaking as before, and calling _cifsFileInfo_put() on it after releasing the lock. Any files later in the iteration are unaffected since their deferred work is still pending and will fire normally.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
e3fc065682ebbbd15b0ce0036800f4acbf765d46 to < 75143abc21f627da7ee3b0336814bd702692e830affectede3fc065682ebbbd15b0ce0036800f4acbf765d46 to < c968b2417f6a15d35ff4b97d534af4a126cb510baffectede3fc065682ebbbd15b0ce0036800f4acbf765d46 to < 7af7ec3af091f55d01f0ebe0246d10e37f358311affectede3fc065682ebbbd15b0ce0036800f4acbf765d46 to < 6089f561e2c31a3ba52836c75c7d2ab50d2eea41affectede3fc065682ebbbd15b0ce0036800f4acbf765d46 to < 32390b3f06f26e366cfb27dbac4bc0196c321535affectede3fc065682ebbbd15b0ce0036800f4acbf765d46 to < c2f2e83e3bbc5483730fd4ee903182761f1ae50faffected
Linux Linux
Default version status: affected
5.15affected0 to < 5.15unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.18.57 to ≤ 6.18.*unaffected7.1.6 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/75143abc21f627da7ee3b0336814bd702692e830 ↗
- https://git.kernel.org/stable/c/c968b2417f6a15d35ff4b97d534af4a126cb510b ↗
- https://git.kernel.org/stable/c/7af7ec3af091f55d01f0ebe0246d10e37f358311 ↗
- https://git.kernel.org/stable/c/6089f561e2c31a3ba52836c75c7d2ab50d2eea41 ↗
- https://git.kernel.org/stable/c/32390b3f06f26e366cfb27dbac4bc0196c321535 ↗
- https://git.kernel.org/stable/c/c2f2e83e3bbc5483730fd4ee903182761f1ae50f ↗