Në kodin e sistemit të files XFS është zbuluar një vulnerabilitet (CVE-2021-4155) që i lejon një përdoruesi lokal pa privilegje të lexojë të dhëna nga blloqet e papërdorura direkt nga pajisja bllok. Të gjitha versionet e rëndësishme të bërthamës Linux më të vjetra se 5.16, që përmbajnë driverin XFS, janë të ndjeshme ndaj këtij problemi. Rregullimi është përfshirë në versionin 5.16, si dhe në azhurnimet e bërthamave 5.15.14, 5.10.91, 5.4.171, 4.19.225, etj. Statusi i formimit të azhurnimeve për zgjidhjen e problemas në distribucionet mund të gjendet në këto faqe: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch.
Vulnerabiliteti shkaktohet nga sjellja e gabuar e dy ioctl (XFS_IOC_ALLOCSP) dhe ioctl (XFS_IOC_FREESP) specifike për XFS, të cilat janë ekuivalentë funksional me thirrjen sistemore fallocate(). Kur rritet madhësia e një skedari, që nuk është e rregulluar në madhësinë e bllokut, ioctl XFS_IOC_ALLOCSP/XFS_IOC_FREESP nuk e zbrazin bytët e fundit deri në kufirin e ardhshëm të bllokut. Pra, në XFS me madhësi standarde blloku 4096 byt, sulmuesi mund të lexojë deri në 4095 byt të dhënash të shkruara më parë nga çdo bllok. Të dhëna e skedarëve të fshira, skedarëve të defragmatuara si dhe skedarëve me blloqe të dedupikuara mund të ekzistojnë në këto zona.
Mund ta kontrolloni sistemin tuaj për këtë problem përmes një prototipi të thjeshtë exploiti. Nëse pas ekzekutimit të sekuencës së propozuar të komandave arrini të lexoni tekstin e Shekspirit, atëherë driveri i FS është i ndjeshëm. Montimi fillestar i seksionit XFS për demonstrim kërkon privilegje superpërdoruesi.
Pasi ioctl (XFS_IOC_ALLOCSP) dhe ioctl (XFS_IOC_FREESP) janĂ« praktikisht tĂ« ngjashme nĂ« funksionalitet me standardin fallocate(), dhe dallimi i vetĂ«m Ă«shtĂ« rrjedhja e tĂ« dhĂ«nave, pranimi i tyre duket si njĂ« backdoor. PavarĂ«sisht politikĂ«s sĂ« pĂ«rgjithshme â mos ndryshoni interfazet ekzistuese nĂ« bĂ«rthamĂ« â sipas propozimit tĂ« Linus, Ă«shtĂ« marrĂ« vendimi pĂ«r tĂ« eliminuar plotĂ«sisht kĂ«to ioctl nĂ« versionin e ardhshĂ«m.
Burimi: opennet.ru
