CVE-2026-89665
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: nfsd: NFSv2 SETATTR/CREATE-də diapazondan kənar useconds istifadəsi rədd edilir NFSv2 sattr dekoderi svcxdr_decode_sattr() funksiyasında şəbəkədən gələn useconds dəyərini nanosaniyələrə çevirir: iap->ia_atime.tv_nsec = tmp2 * NSEC_PER_USEC; tmp2 u32 tipindədir və NSEC_PER_USEC 1000-dir, buna görə də hasil unsigned long tipində hesablanır. ILP32 sistemlərində bu 32 bitdir və 4294968 kimi diapazondan kənar useconds dəyəri tv_nsec == 704 olaraq dövr edir (wrap). Beləliklə, korlanma hələ heç bir proc funksiyası dəyəri yoxlamazdan əvvəl, dekodlaşdırma zamanı baş verir və sonrakı tv_nsec diapazon yoxlaması nəticəni diapazon daxilində görüb onu qəbul edirdi. Dekoderdə rədd etmək RPC GARBAGE_ARGS cavabı verir. NFSv2 NFSERR_INVAL təyin etmir, ona görə də yanlış formatlı zaman arqumenti üçün qaytarılacaq NFS səviyyəli status yoxdur və yoxlama v3/v4 nsec diapazon yoxlamalarında olduğu kimi proc funksiyasına köçürülə bilməz. Vurmadan əvvəl xam useconds dəyərini qoruyun və 1000000-dən böyük dəyərləri rədd edin. useconds == 1000000 saxlanılır: bu, "cari server zamanına təyin et" üçün Sun konvensiyasıdır və ağacdakı Linux NFSv2 kliyenti adi touch / utimes(file, NULL) üçün həm atime, həm də mtime sahələrində bunu göndərir (fs/nfs/nfs2xdr.c faylında encode_sattr() və xdr_encode_current_server_time() funksiyalarına baxın). 1000000-in rədd edilməsi həmin geniş yayılmış əməliyyatı həm SETATTR, həm də CREATE üçün ciddi dekodlaşdırma xətasına çevirərdi. 1000000 * NSEC_PER_USEC 10^9-dur və bu, ILP32-də dövr etmir, beləliklə Sun konvensiya dəyəri təhlükəsiz şəkildə keçir. Yalnız həqiqətən diapazondan kənar dəyərlər (> 1000000) rədd edilir. Buna görə də atime və mtime qorumaları simmetrikdir. Dekoder Sun konvensiyasını yalnız mtime blokunda tətbiq edirdi ki, burada mtime useconds == 1000000 olduqda ATTR_ATIME_SET|ATTR_MTIME_SET sıfırlanır. Əgər kliyent 1000000 dəyərini atime sahəsinə yerləşdirsə, lakin mtime sahəsinə yerləşdirməsə, atime bloku diapazondan kənar tv_nsec (10^9) saxlayırdı və ATTR_ATIME_SET-i aktiv saxlayırdı, beləliklə yanlış dəyər fayl sisteminə çatırdı. Konvensiyanı atime blokuna da tətbiq edin və ATTR_ATIME_SET-i sıfırlayın ki, server öz cari zamanından istifadə etsin və dəyəri görməzdən gəlsin. Orada yalnız ATTR_ATIME_SET sıfırlanır. mtime bloku mövcud davranışını saxlayır, burada 1000000 "həm atime, həm də mtime-ı indiki zamana təyin et" deməkdir. [ cel: müxtəlif düzəlişlər, əlavələr və təmizləmələr ]
Necə düzəltmək olar
- Linux Linuxcdc3299f7072777b09c9582a3b8b65bb163ddcf3, 09a79d9ab35a39603c834e8f6333603292f9c816, 5296a2442d12d45d6eea7b4d3ec3ffecc1821cac, 1db456ffc22e045f49f7b9e62415a26b3f33f200, a937dd1aa2d92291fe0a1860d17e90d8f206cd22, ad02d095439f89cbd6629420c7e3ba476457b83b, 1195483965a5f63d2dde18054ec7e50a23b9071c, 26709c8ffe73772eb69e68d553ac71d91228dccc və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < cdc3299f7072777b09c9582a3b8b65bb163ddcf3, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 09a79d9ab35a39603c834e8f6333603292f9c816, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 5296a2442d12d45d6eea7b4d3ec3ffecc1821cac, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 1db456ffc22e045f49f7b9e62415a26b3f33f200, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < a937dd1aa2d92291fe0a1860d17e90d8f206cd22, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < ad02d095439f89cbd6629420c7e3ba476457b83b, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 1195483965a5f63d2dde18054ec7e50a23b9071c, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 26709c8ffe73772eb69e68d553ac71d91228dccc, 2.6.12 | cdc3299f7072777b09c9582a3b8b65bb163ddcf3, 09a79d9ab35a39603c834e8f6333603292f9c816, 5296a2442d12d45d6eea7b4d3ec3ffecc1821cac, 1db456ffc22e045f49f7b9e62415a26b3f33f200, a937dd1aa2d92291fe0a1860d17e90d8f206cd22, ad02d095439f89cbd6629420c7e3ba476457b83b, 1195483965a5f63d2dde18054ec7e50a23b9071c, 26709c8ffe73772eb69e68d553ac71d91228dccc |
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.
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.