CVE-2026-72315
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: smb: client: DIO sonrası unmount sırasında meşgul dentry uyarısını düzelt c68337442f03 ("cifs: Fix busy dentry used after unmounting") commit'i, cifs'te ertelenmiş dosya kapatmanın umount sırasında bir dentry referans sayısının serbest bırakılmamasına yol açtığı sorunu, cifs_kill_sb() içinde deferredclose_wq'yu boşaltarak çözmüştü. Ancak cifs DIO yolu, gecikmeli dentry referans sayısı serbest bırakmasının neden olduğu aynı meşgul-dentry sorunundan muzdariptir: [dio] [cifsd] [close + umount] netfs_unbuffered_write_iter_locked ... cifs_demultiplex_thread netfs_unbuffered_write cifs_issue_write netfs_wait_for_in_progress_stream [1] ... netfs_write_subrequest_terminated netfs_subreq_clear_in_progress netfs_wake_collector // wake [1] netfs_put_subrequest netfs_put_request queue_work(system_dfl_wq, xxx) [2] // dio write return cifs_close _cifsFileInfo_put // cfile->count 2->1 --cfile->count [3] // umount cifs_kill_sb kill_anon_super // warning triggered! shrink_dcache_for_umount [4] [system_dfl_wq] [5] netfs_free_request ... _cifsFileInfo_put // cfile->count 1->0 --cfile->count queue_work(fileinfo_put_wq, xxx) [fileinfo_put_wq] [6] cifsFileInfo_put_work cifsFileInfo_put_final dput Umount yolu [5]'ten önce tetiklenirse şu uyarı oluşur: BUG: Dentry 00000000eab1f070{i=9a917b66ae404fec,n=test} still in use (1) [unmount of cifs cifs] cifs_evict_inode() içindeki mevcut inode başına ictx->io_count beklemesi yardımcı olmaz: bu bekleme, shrink_dcache_for_umount() meşgul dentry'ler hakkında zaten uyarı verdikten sonra çalışan inode tahliye yolunda bulunur. Bunu düzeltmek için, cifs_init_request() içinde artırılan ve cifs_free_request() içinde azaltılan, süperblok başına bekleyen-rreq sayacı eklenir. cifs_kill_sb() içinde, kill_anon_super() öncesinde bu sayacın 0'a ulaşması beklenir - bu, bu sb için tüm cleanup_work'lerin çalıştığını ve dolayısıyla ilgili tüm cfile put işlemlerinin fileinfo_put_wq veya serverclose_wq üzerinde kuyruğa alındığını garanti eder. Ardından dentry referanslarının bırakılması için iş kuyruğu boşaltılır. Bu, sistem genelindeki system_dfl_wq'nun boşaltılması değil, hedeflenmiş bir beklemedir.
Nasıl düzeltilir
- Linux Linuxf7748b551010c021d92f0125e37f32ac0c376d8a, 9fc87899276af941ecf3045798887db7deb85605, f0eac9c3c3711f24efc2aaf12b8ec3e54a38c214, 75f5c412fa867efa0bf9b646bffe0d912109e84a, 6.12.112, 6.18.54, 6.2, 6.7, 6.20 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 0e4b8faaaebe3137bec5723ef2b3cb0437fb38fd ≤ v < f7748b551010c021d92f0125e37f32ac0c376d8a, f655467a9973f964b267871e5fef533ad5014494 ≤ v < 9fc87899276af941ecf3045798887db7deb85605, 340cea84f691c5206561bb2e0147158fe02070be ≤ v < f0eac9c3c3711f24efc2aaf12b8ec3e54a38c214, 340cea84f691c5206561bb2e0147158fe02070be ≤ v < 75f5c412fa867efa0bf9b646bffe0d912109e84a, 708c276f516d27beaded7f372ac8111cee43926c, 0629a1a187e424373364d681b42b101894bdb548, 30afc6ea72cc6cf7c8d579e79b64232801c38d08, 6.12.78 ≤ v < 6.12.112, 6.18.20 ≤ v < 6.18.54, 6.1.167 ≤ v < 6.2, 6.6.130 ≤ v < 6.7, 6.19.10 ≤ v < 6.20, 7.0 | f7748b551010c021d92f0125e37f32ac0c376d8a, 9fc87899276af941ecf3045798887db7deb85605, f0eac9c3c3711f24efc2aaf12b8ec3e54a38c214, 75f5c412fa867efa0bf9b646bffe0d912109e84a, 6.12.112, 6.18.54, 6.2, 6.7, 6.20 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.