Xam blok cihaz məlumatlarını oxumağa imkan verən XFS-də zəiflik

XFS fayl sistemi kodunda boşluq (CVE-2021-4155) aşkar edilib ki, bu da yerli imtiyazsız istifadəçiyə istifadə olunmamış blok məlumatlarını birbaşa blok cihazından oxumağa imkan verir. XFS sürücüsünü ehtiva edən 5.16-dan köhnə Linux nüvəsinin bütün əsas versiyaları bu problemdən təsirlənir. Düzəliş 5.16 versiyasına, həmçinin 5.15.14, 5.10.91, 5.4.171, 4.19.225 və s. nüvə yeniləmələrinə daxil edilib. Dağıtımlarda problemin aradan qaldırılması ilə yeniləmələrin yaradılması vəziyyəti bu səhifələrdə izlənilə bilər: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch.

Zəiflik, fallocate() nüvə miqyasında sistem çağırışının funksional analoqu olan iki XFS-xüsusi ioctl(XFS_IOC_ALLOCSP) və ioctl(XFS_IOC_FREESP)-nin düzgün olmayan davranışı nəticəsində yaranır. Bloka uyğunlaşdırılmamış fayl ölçüsünü artırarkən, XFS_IOC_ALLOCSP/XFS_IOC_FREESP ioctls növbəti blok sərhədinə qədər quyruq baytlarını sıfırlamır. Beləliklə, standart blok ölçüsü 4096 bayt olan XFS-də təcavüzkar hər blokdan 4095 bayta qədər əvvəlki yazılı məlumatları oxuya bilər. Bu sahələr silinmiş fayllardan, defraqmentasiya olunmuş fayllardan və təkmilləşmiş blokları olan fayllardan verilənləri ehtiva edə bilər.

Sadə bir istismar prototipi ilə sisteminizdə problem olub olmadığını yoxlaya bilərsiniz. Əgər təklif olunan əmrlər ardıcıllığını yerinə yetirdikdən sonra Şekspirin mətnini oxumaq mümkündürsə, onda FS sürücüsü həssasdır. Nümayiş üçün XFS bölməsinin ilkin quraşdırılması super istifadəçi hüquqlarını tələb edir.

ioctl(XFS_IOC_ALLOCSP) və ioctl(XFS_IOC_FREESP) funksionallıq baxımından standart fallocate() ilə demək olar ki, eyni olduğundan və onların yeganə fərqi məlumat sızması olduğundan, onların mövcudluğu arxa qapı kimidir. Kerneldə mövcud interfeyslərin dəyişdirilməməsi ilə bağlı ümumi siyasətə baxmayaraq, Linus-un təklifi ilə növbəti versiyada bu ioctl-lərin tamamilə silinməsi barədə qərar qəbul edilib.

Mənbə: opennet.ru

Добавить комментарий