I kodningen av filsystemet XFS har en sÄrbarhet (CVE-2021-4155) upptÀckts, som gör det möjligt för en lokal icke-privilegerad anvÀndare att lÀsa data frÄn oanvÀnda block direkt frÄn blockenheten. Alla betydande versioner av Linux-kÀrnan över 5.16 som innehÄller XFS-drivrutinen Àr utsatta för detta problem. à tgÀrden har inkluderats i version 5.16 samt i uppdateringar av kÀrnor 5.15.14, 5.10.91, 5.4.171, 4.19.225 etc. Status för uppdateringar som ÄtgÀrdar problemet i distributionerna kan spÄras pÄ följande sidor: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch.
SÄrbarheten orsakas av felaktigt beteende hos tvÄ XFS-specifika ioctl(XFS_IOC_ALLOCSP) och ioctl(XFS_IOC_FREESP), som Àr funktionellt likvÀrdiga med det allmÀnna systemanropet fallocate(). NÀr storleken pÄ en fil som inte Àr justerad till blockstorleken ökas, nollstÀller ioctl XFS_IOC_ALLOCSP/XFS_IOC_FREESP inte de sista byte till nÀsta blockgrÀns. PÄ sÄ sÀtt kan en angripare pÄ XFS med en standard blockstorlek pÄ 4096 byte lÀsa upp till 4095 byte av tidigare skrivna data frÄn varje block. I de angivna omrÄdena kan det finnas data frÄn borttagna filer, defragmerade filer, samt filer med deduplicerade block.
Du kan kontrollera ditt system för problemet med hjÀlp av en enkel prototyp av ett exploit. Om det efter att ha utfört den föreslagna sekvensen av kommandon Àr möjligt att lÀsa texter av Shakespeare, sÄ Àr filsystemets drivrutin sÄrbar. Den ursprungliga montering av XFS-partitionen för demonstration krÀver superanvÀndarrÀttigheter.
Eftersom ioctl(XFS_IOC_ALLOCSP) och ioctl(XFS_IOC_FREESP Àr funktionellt nÀstan identiska med standardfallocate(), och den enda skillnaden Àr datalÀckage, liknar deras existens en bakdörr. Trots den allmÀnna policyn att inte Àndra befintliga grÀnssnitt i kÀrnan, har det beslutats att helt ta bort dessa ioctl:er i nÀsta version pÄ Linus förslag.
KĂ€lla: opennet.ru
