CVE-2025-71194

Naməlum

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: btrfs: nəzərə alınmayan tranzaksiya tipi səbəbindən wait_current_trans()-də yaranan deadlock probleminin həlli start_transaction() zamanı wait_current_trans() çağırıldıqda, hazırda verilmiş tranzaksiya tipinin həmin konkret tranzaksiya vəziyyətini gözləməli olub-olmadığını nəzərə almadan bloklanmış tranzaksiyanı gözləyir. btrfs_blocked_trans_types[] massivi artıq hansı tranzaksiya tiplərinin hansı tranzaksiya vəziyyətlərini gözləməli olduğunu müəyyən edir, lakin bu yoxlama wait_current_trans()-də çatışmırdı. Bu, iki tranzaksiya və gözlənilən nizamlı ekstenslər (pending ordered extents) ilə bağlı deadlock ssenarisinə səbəb ola bilər: 1. Tranzaksiya A TRANS_STATE_COMMIT_DOING vəziyyətindədir. 2. Nizamlı ekstensləri emal edən bir işçi (worker) TRANS_JOIN ilə start_transaction() çağırır. 3. Tranzaksiya A TRANS_STATE_COMMIT_DOING vəziyyətində olduğu üçün join_transaction() -EBUSY qaytarır. 4. Tranzaksiya A TRANS_STATE_UNBLOCKED vəziyyətinə keçir və tamamlanır. 5. Yeni Tranzaksiya B yaradılır (TRANS_STATE_RUNNING). 6. 2-ci addımdakı nizamlı ekstens Tranzaksiya B-nin gözlənilən nizamlı ekstenslər siyahısına əlavə edilir. 7. Başqa bir tapşırıq tərəfindən Tranzaksiya B dərhal commit prosesini başladır və TRANS_STATE_COMMIT_START vəziyyətinə keçir. 8. İşçi nəhayət wait_current_trans()-ə çatır, Tranzaksiya B-ni TRANS_STATE_COMMIT_START (bloklanmış vəziyyət) vəziyyətində görür və şərtsiz gözləyir. 9. Lakin, btrfs_blocked_trans_types[]-ə əsasən, TRANS_JOIN TRANS_STATE_COMMIT_START vəziyyətini GÖZLƏMƏMƏLİDİR. 10. Tranzaksiya B gözlənilən nizamlı ekstenslərin tamamlanmasını gözləyir. 11. Deadlock: Tranzaksiya B nizamlı ekstensləri gözləyir, nizamlı ekstens isə Tranzaksiya B-ni gözləyir. Bu, aşağıdakı çağırış stekləri ilə izah edilə bilər: CPU0 CPU1 btrfs_finish_ordered_io() start_transaction(TRANS_JOIN) join_transaction() # -EBUSY (Tranzaksiya A # TRANS_STATE_COMMIT_DOING vəziyyətindədir) # Tranzaksiya A tamamlanır # Tranzaksiya B yaradılır # nizamlı ekstens Tranzaksiya B-nin # gözlənilən siyahısına əlavə edilir btrfs_commit_transaction() # Tranzaksiya B # TRANS_STATE_COMMIT_START vəziyyətinə keçir # gözlənilən nizamlı ekstensləri # gözləyir wait_current_trans() # Tranzaksiya B-ni gözləyir # (gözləməməlidir!) btrfs_commit_transaction-da nizamlı ekstensləri gözləyən bstore_kv_sync tapşırığı: __schedule+0x2e7/0x8a0 schedule+0x64/0xe0 btrfs_commit_transaction+0xbf7/0xda0 [btrfs] btrfs_sync_file+0x342/0x4d0 [btrfs] __x64_sys_fdatasync+0x4b/0x80 do_syscall_64+0x33/0x40 entry_SYSCALL_64_after_hwframe+0x44/0xa9 wait_current_trans-da tranzaksiya commit-ini gözləyən kworker tapşırığı: Workqueue: btrfs-syno_nocow btrfs_work_helper [btrfs] __schedule+0x2e7/0x8a0 schedule+0x64/0xe0 wait_current_trans+0xb0/0x110 [btrfs] start_transaction+0x346/0x5b0 [btrfs] btrfs_finish_ordered_io.isra.0+0x49b/0x9c0 [btrfs] btrfs_work_helper+0xe8/0x350 [btrfs] process_one_work+0x1d3/0x3c0 worker_thread+0x4d/0x3e0 kthread+0x12d/0x150 ret_from_fork+0x1f/0x30 Bu problem, tranzaksiya tipini wait_current_trans()-ə ötürmək və gözləməyə qərar verməzdən əvvəl btrfs_blocked_trans_types[cur_trans->state]-i verilmiş tipə görə yoxlamaqla həll edilmişdir. Bu, müəyyən bloklanmış vəziyyətlərdə qoşulmağa icazə verilən tranzaksiya tiplərinin lazımsız yerə gözləməməsini və deadlock yaratmamasını təmin edir.

CiddilikNaməlum
CVSS—
İstismar ehtimalı—
MəhsulLinux
Dərc4 fev 2026
İlk görülmə4 fev 2026

Necə düzəltmək olar

Yeniləyin
  • Linux Linuxe563f59395981fcd69d130761290929806e728d6, dc84036c173cff6a432d9ab926298850b1d2a659, d7b04b40ac8e6d814e35202a0e1568809b818295, 99da896614d17e8a84aeb2b2d464ac046cc8633d, 8b0bb145d3bc264360f525c9717653be3522e528, 9ac63333d600732a56b35ee1fa46836da671eb50, 5037b342825df7094a4906d1e2a9674baab50cb2 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
Linux Linux4a9d8bdee368de78ace8b36da4eb2186afea162d ≤ v < e563f59395981fcd69d130761290929806e728d6, 4a9d8bdee368de78ace8b36da4eb2186afea162d ≤ v < dc84036c173cff6a432d9ab926298850b1d2a659, 4a9d8bdee368de78ace8b36da4eb2186afea162d ≤ v < d7b04b40ac8e6d814e35202a0e1568809b818295, 4a9d8bdee368de78ace8b36da4eb2186afea162d ≤ v < 99da896614d17e8a84aeb2b2d464ac046cc8633d, 4a9d8bdee368de78ace8b36da4eb2186afea162d ≤ v < 8b0bb145d3bc264360f525c9717653be3522e528, 4a9d8bdee368de78ace8b36da4eb2186afea162d ≤ v < 9ac63333d600732a56b35ee1fa46836da671eb50, 4a9d8bdee368de78ace8b36da4eb2186afea162d ≤ v < 5037b342825df7094a4906d1e2a9674baab50cb2, 3.11e563f59395981fcd69d130761290929806e728d6, dc84036c173cff6a432d9ab926298850b1d2a659, d7b04b40ac8e6d814e35202a0e1568809b818295, 99da896614d17e8a84aeb2b2d464ac046cc8633d, 8b0bb145d3bc264360f525c9717653be3522e528, 9ac63333d600732a56b35ee1fa46836da671eb50, 5037b342825df7094a4906d1e2a9674baab50cb2

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.

CVE-2025-71194 · Linux · Dark Radar