ముడి బ్లాక్ పరికర డేటాను చదవడానికి అనుమతించే XFSలో దుర్బలత్వం

XFS ఫైల్ సిస్టమ్ కోడ్‌లో ఒక దుర్బలత్వం (CVE-2021-4155) గుర్తించబడింది, ఇది బ్లాక్ పరికరం నుండి నేరుగా ఉపయోగించని బ్లాక్ డేటాను చదవడానికి స్థానికంగా లేని వినియోగదారుని అనుమతిస్తుంది. XFS డ్రైవర్‌ను కలిగి ఉన్న 5.16 కంటే పాత Linux కెర్నల్ యొక్క అన్ని ప్రధాన సంస్కరణలు ఈ సమస్య ద్వారా ప్రభావితమవుతాయి. పరిష్కారము సంస్కరణ 5.16లో, అలాగే కెర్నల్ నవీకరణలు 5.15.14, 5.10.91, 5.4.171, 4.19.225, మొదలైన వాటిలో చేర్చబడింది. పంపిణీలలో సమస్యను పరిష్కరించడానికి రూపొందించబడిన నవీకరణల స్థితిని ఈ పేజీలలో ట్రాక్ చేయవచ్చు: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch.

రెండు XFS-నిర్దిష్ట ioctl(XFS_IOC_ALLOCSP) మరియు ioctl(XFS_IOC_FREESP) యొక్క తప్పు ప్రవర్తన వలన ఈ దుర్బలత్వం ఏర్పడుతుంది, ఇవి కెర్నల్-వైడ్ ఫాలోకేట్() సిస్టమ్ కాల్ యొక్క ఫంక్షనల్ అనలాగ్. బ్లాక్-అలైన్ చేయని ఫైల్ పరిమాణాన్ని పెంచుతున్నప్పుడు, ioctls XFS_IOC_ALLOCSP/XFS_IOC_FREESP తదుపరి బ్లాక్ సరిహద్దు వరకు టెయిల్ బైట్‌లను సున్నాకి రీసెట్ చేయదు. అందువలన, 4096 బైట్‌ల ప్రామాణిక బ్లాక్ పరిమాణంతో XFSలో, దాడి చేసే వ్యక్తి ప్రతి బ్లాక్ నుండి 4095 బైట్‌ల మునుపటి వ్రాసిన డేటాను చదవగలడు. ఈ ప్రాంతాలలో తొలగించబడిన ఫైల్‌లు, డిఫ్రాగ్మెంటెడ్ ఫైల్‌లు మరియు డ్యూప్లికేట్ బ్లాక్‌లు ఉన్న ఫైల్‌ల నుండి డేటా ఉండవచ్చు.

మీరు ఒక సాధారణ ఎక్స్‌ప్లోయిట్ ప్రోటోటైప్‌ని ఉపయోగించి సమస్య కోసం మీ సిస్టమ్‌ని పరీక్షించవచ్చు. ప్రతిపాదిత ఆదేశాల క్రమాన్ని అమలు చేసిన తర్వాత, షేక్స్పియర్ యొక్క వచనాన్ని చదవడం సాధ్యమైతే, అప్పుడు FS డ్రైవర్ హాని కలిగిస్తుంది. ప్రదర్శన కోసం ప్రారంభంలో XFS విభజనను మౌంట్ చేయడానికి రూట్ అధికారాలు అవసరం.

ioctl(XFS_IOC_ALLOCSP) మరియు ioctl(XFS_IOC_FREESP) కార్యాచరణలో ప్రామాణిక ఫాలోకేట్() వలె ఆచరణాత్మకంగా ఒకే విధంగా ఉంటాయి మరియు వాటి తేడా డేటా లీకేజీ మాత్రమే, వాటి ఉనికి బ్యాక్‌డోర్‌ను పోలి ఉంటుంది. కెర్నల్‌లో ఇప్పటికే ఉన్న ఇంటర్‌ఫేస్‌లను మార్చకూడదనే సాధారణ విధానం ఉన్నప్పటికీ, Linus సూచన మేరకు, తదుపరి వెర్షన్‌లో ఈ ioctlsని పూర్తిగా తొలగించాలని నిర్ణయించారు.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి