CVE-2025-68778

Naməlum

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: btrfs: cari tranzaksiyada köçürülmüş kataloq olduqda ziddiyyətli inode-u loqlama Əgər bir obyekt kataloqdursa və cari tranzaksiya ərzində bir valideyn kataloqdan digərinə köçürülübsə, onun ziddiyyətli inode-unu loqlamaq olmaz. Çünki bu, loq təkrarı (log replay) zamanı eyni kataloq üçün iki sərt keçidin (hard link) — həm köhnə, həm də yeni valideyn kataloq üçün — yaradılması cəhdinə gətirib çıxara bilər. Aşağıdakı ssenari bu problemi tetikləyir: 1) Keçmiş tranzaksiyada yaradılmış "dir1" və "dir2" kataloqları var. "dir1" kataloqunun valideyn kataloqu A inode-udur; 2) "dir1"-i başqa bir kataloğa köçürürük; 3) A inode-lu kataloqda "dir1" adlı fayl yaradırıq; 4) Yeni faylı fsync edirik. Bu, yeni faylın inode-unun və cari tranzaksiyada əvvəllər köçürülmüş "dir1" kataloqunun inode-unun loqlanması ilə nəticələnir. Beləliklə, loq ağacı "dir1"-in yeni yeri üçün INODE_REF elementinə sahib olur; 5) Yeni faylı başqa bir kataloğa köçürürük. Bu, btrfs_log_new_name() çağırıldığı zaman loq ağacının yenilənməsinə, faylın yeni yeri üçün yeni INODE_REF-in əlavə edilməsinə və köhnə yer üçün olan INODE_REF-in silinməsinə səbəb olur; 6) Faylı fsync edirik və bu, əvvəlki addımda edilən loq ağacı dəyişikliklərini daimi edir (btrfs_log_new_name() loq ağacını yalnız yaddaşda yeniləyir); 7) Enerji kəsilməsi baş verir; 8) Fayl sistemi növbəti dəfə mount edildikdə loq təkrarı baş verir və "dir1" kataloqunun inode-u emal edilərkən yeni bir INODE_REF tapılır və həmin keçid əlavə edilir. Lakin "dir1" kataloqunun köhnə valideyn kataloqu loqlanmadığı üçün inode-un köhnə keçidi silinmir. Nəticədə, loq təkrarı bitdikdən sonra subvolume ağacının extent buferlərinin writeback prosesi başladığında, ağac yoxlaması kataloqun sərt keçid sayının 2 olduğunu aşkar edir və mount xətası baş verir. dmesg/syslog-da bildirilən xətalar və stack trace-lər belədir: [ 3845.729764] BTRFS info (device dm-0): start tree-log replay [ 3845.730304] page: refcount:3 mapcount:0 mapping:000000005c8a3027 index:0x1d00 pfn:0x11510c [ 3845.731236] memcg:ffff9264c02f4e00 [ 3845.731751] aops:btree_aops [btrfs] ino:1 [ 3845.732300] flags: 0x17fffc00000400a(uptodate|private|writeback|node=0|zone=2|lastcpupid=0x1ffff) [ 3845.733346] raw: 017fffc00000400a 0000000000000000 dead000000000122 ffff9264d978aea8 [ 3845.734265] raw: 0000000000001d00 ffff92650e6d4738 00000003ffffffff ffff9264c02f4e00 [ 3845.735305] page dumped because: eb page dump [ 3845.735981] BTRFS critical (device dm-0): corrupt leaf: root=5 block=30408704 slot=6 ino=257, invalid nlink: has 2 expect no more than 1 for dir [ 3845.737786] BTRFS info (device dm-0): leaf 30408704 gen 10 total ptrs 17 free space 14881 owner 5 [ 3845.737789] BTRFS info (device dm-0): refs 4 lock_owner 0 current 30701 [ 3845.737792] item 0 key (256 INODE_ITEM 0) itemoff 16123 itemsize 160 [ 3845.737794] inode generation 3 transid 9 size 16 nbytes 16384 [ 3845.737795] block group 0 mode 40755 links 1 uid 0 gid 0 [ 3845.737797] rdev 0 sequence 2 flags 0x0 [ 3845.737798] atime 1764259517.0 [ 3845.737800] ctime 1764259517.572889464 [ 3845.737801] mtime 1764259517.572889464 [ 3845.737802] otime 1764259517.0 [ 3845.737803] item 1 key (256 INODE_REF 256) itemoff 16111 itemsize 12 [ 3845.737805] index 0 name_len 2 [ 3845.737807] item 2 key (256 DIR_ITEM 2363071922) itemoff 16077 itemsize 34 [ 3845.737808] location key (257 1 0) type 2 [ 3845.737810] transid 9 data_len 0 name_len 4 [ 3845.737811] item 3 key (256 DIR_ITEM 2676584006) itemoff 16043 itemsize 34 [ 3845.737813] location key (258 1 0) type 2 [ 3845.737814] transid 9 data_len 0 name_len 4 [ 3845.737815] item 4 key (256 DIR_INDEX 2) itemoff 16009 itemsize 34 [ 3845.737816] location key (257 1 0) type 2 [

CiddilikNaməlum
CVSS—
İstismar ehtimalı—
MəhsulLinux
Dərc13 yan 2026
İlk görülmə13 yan 2026

Necə düzəltmək olar

Yeniləyin
  • Linux Linuxd64f3834dffef80f0a9185a037617a54ed7f4bd2, 7359e1d39c78816ecbdb0cb4e93975794ce53973, d478f50727c3ee46d0359f0d2ae114f70191816e, a35788ddf8df65837897ecbb0ddb2896b863159e, 266273eaf4d99475f1ae57f687b3e42bc71ec6f0 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
Linux Linux44f714dae50a2e795d3268a6831762aa6fa54f55 ≤ v < d64f3834dffef80f0a9185a037617a54ed7f4bd2, 44f714dae50a2e795d3268a6831762aa6fa54f55 ≤ v < 7359e1d39c78816ecbdb0cb4e93975794ce53973, 44f714dae50a2e795d3268a6831762aa6fa54f55 ≤ v < d478f50727c3ee46d0359f0d2ae114f70191816e, 44f714dae50a2e795d3268a6831762aa6fa54f55 ≤ v < a35788ddf8df65837897ecbb0ddb2896b863159e, 44f714dae50a2e795d3268a6831762aa6fa54f55 ≤ v < 266273eaf4d99475f1ae57f687b3e42bc71ec6f0, 4.8d64f3834dffef80f0a9185a037617a54ed7f4bd2, 7359e1d39c78816ecbdb0cb4e93975794ce53973, d478f50727c3ee46d0359f0d2ae114f70191816e, a35788ddf8df65837897ecbb0ddb2896b863159e, 266273eaf4d99475f1ae57f687b3e42bc71ec6f0

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.