GRUB2 బూట్లోడర్లోని NTFS ఫైల్ సిస్టమ్కు మద్దతు ఇచ్చే డ్రైవర్లో ఒక దుర్బలత్వం (CVE-2023-4692) గుర్తించబడింది. ప్రత్యేకంగా రూపొందించిన ఫైల్ సిస్టమ్ ఇమేజ్ను యాక్సెస్ చేస్తున్నప్పుడు, ఈ దుర్బలత్వం బూట్లోడర్ స్థాయిలో కస్టమ్ కోడ్ను అమలు చేయడానికి అనుమతిస్తుంది. UEFI సెక్యూర్ బూట్ వెరిఫైడ్ బూట్ మెకానిజంను బైపాస్ చేయడానికి ఈ దుర్బలత్వాన్ని ఉపయోగించుకోవచ్చు.
ఈ దుర్బలత్వం, NTFS అట్రిబ్యూట్ "$ATTRIBUTE_LIST" (grub-core/fs/ntfs.c) యొక్క పార్సింగ్ కోడ్లోని ఒక లోపం వల్ల ఏర్పడుతుంది. ఈ లోపాన్ని ఉపయోగించుకుని, కేటాయించిన బఫర్ వెలుపల ఉన్న మెమరీ లొకేషన్కు వినియోగదారు నియంత్రిత సమాచారాన్ని రాయవచ్చు. ప్రత్యేకంగా రూపొందించిన NTFS ఇమేజ్ను ప్రాసెస్ చేస్తున్నప్పుడు, ఈ ఓవర్ఫ్లో GRUB మెమరీలోని కొంత భాగాన్ని ఓవర్రైట్ చేయడానికి దారితీస్తుంది మరియు కొన్ని పరిస్థితులలో, UEFI ఫర్మ్వేర్ మెమరీని కరప్ట్ చేస్తుంది. ఇది బూట్లోడర్ లేదా ఫర్మ్వేర్ స్థాయిలో కోడ్ ఎగ్జిక్యూషన్కు అవకాశం కల్పించవచ్చు.
అంతేకాకుండా, GRUB2లోని NTFS డ్రైవర్లో మరొక లోపం (CVE-2023-4693) కనుగొనబడింది. ప్రత్యేకంగా రూపొందించిన NTFS ఇమేజ్లోని "$DATA" అట్రిబ్యూట్ను పార్స్ చేస్తున్నప్పుడు, ఈ లోపం ఏకపక్ష మెమరీ కంటెంట్లను చదవడానికి అనుమతిస్తుంది. ఇతర విషయాలతో పాటు, ఈ లోపం మెమరీలో కాష్ చేయబడిన సున్నితమైన డేటాను సంగ్రహించడానికి లేదా EFI వేరియబుల్ విలువలను నిర్ధారించడానికి వీలు కల్పిస్తుంది.
ఈ సమస్యలను ఇప్పటివరకు ప్యాచ్ల ద్వారా మాత్రమే పరిష్కరించారు. డిస్ట్రిబ్యూషన్లలోని దుర్బలత్వ పరిష్కారాల స్థితిని ఈ పేజీలలో అంచనా వేయవచ్చు: Debian, Ubuntu, SUSE, RHEL, Fedora. GRUB2 సమస్యలను పరిష్కరించడానికి ప్యాకేజీని అప్డేట్ చేయడం మాత్రమే సరిపోదు; దీనికి కొత్త అంతర్గత డిజిటల్ సంతకాలను రూపొందించడం మరియు ఇన్స్టాలర్లు, బూట్లోడర్లు, కెర్నల్ ప్యాకేజీలు, fwupd ఫర్మ్వేర్ మరియు షిమ్ లేయర్ను అప్డేట్ చేయడం కూడా అవసరం.
అత్యంత LinuxUEFI సెక్యూర్ బూట్ మోడ్లో వెరిఫైడ్ బూట్ కోసం ఉద్దేశించిన డిస్ట్రిబ్యూషన్లు, మైక్రోసాఫ్ట్ ద్వారా డిజిటల్గా సంతకం చేయబడిన ఒక చిన్న షిమ్ లేయర్ను ఉపయోగిస్తాయి. ఈ లేయర్ తన సొంత సర్టిఫికేట్తో GRUB2ను ధృవీకరిస్తుంది, దీనివల్ల డిస్ట్రిబ్యూషన్ డెవలపర్లు ప్రతి కెర్నల్ మరియు GRUB అప్డేట్ గురించి మైక్రోసాఫ్ట్కు తెలియజేయాల్సిన అవసరం ఉండదు. GRUB2లోని బలహీనతలు, షిమ్ వెరిఫికేషన్ విజయవంతమైన తర్వాత, కానీ ఆపరేటింగ్ సిస్టమ్ బూట్ అవ్వకముందు, ఆర్బిట్రరీ కోడ్ ఎగ్జిక్యూషన్కు అనుమతిస్తాయి. సెక్యూర్ బూట్ ఎనేబుల్ చేయబడినప్పుడు, ఇది దాడి చేసేవారికి చైన్ ఆఫ్ ట్రస్ట్లోకి చొరబడి, తదుపరి బూట్ ప్రక్రియపై పూర్తి నియంత్రణను పొందడానికి వీలు కల్పిస్తుంది. ఉదాహరణకు, మరొక OSను బూట్ చేయడం, ఆపరేటింగ్ సిస్టమ్ భాగాలను సవరించడం లేదా లాక్డౌన్ ప్రొటెక్షన్ను బైపాస్ చేయడం వంటివి వారు చేయగలరు.
డిజిటల్ సిగ్నేచర్ను రద్దు చేయకుండా దుర్బలత్వాన్ని నిరోధించడానికి, డిస్ట్రిబ్యూషన్లు SBAT (UEFI సెక్యూర్ బూట్ అడ్వాన్స్డ్ టార్గెటింగ్) విధానాన్ని ఉపయోగించవచ్చు, దీనికి చాలా ప్రసిద్ధ డిస్ట్రిబ్యూషన్లలో GRUB2, shim, మరియు fwupd కోసం మద్దతు అమలు చేయబడింది. LinuxSBATను మైక్రోసాఫ్ట్ సహకారంతో అభివృద్ధి చేశారు. ఇందులో, తయారీదారు, ఉత్పత్తి, కాంపోనెంట్ మరియు వెర్షన్ వంటి సమాచారంతో సహా, UEFI కాంపోనెంట్ ఎగ్జిక్యూటబుల్ ఫైల్స్కు అదనపు మెటాడేటాను జోడించడం జరుగుతుంది. ఈ మెటాడేటా డిజిటల్గా సంతకం చేయబడి ఉంటుంది మరియు దీనిని UEFI సెక్యూర్ బూట్ కోసం అనుమతించబడిన లేదా నిరాకరించబడిన కాంపోనెంట్ల జాబితాలలో విడిగా చేర్చవచ్చు.
సెక్యూర్ బూట్ కీలను రద్దు చేయాల్సిన అవసరం లేకుండా, ప్రతి కాంపోనెంట్ వెర్షన్ నంబర్ కోసం డిజిటల్ సిగ్నేచర్ల వాడకాన్ని నిరోధించడానికి SBAT అనుమతిస్తుంది. SBAT ద్వారా దుర్బలత్వాలను నిరోధించడానికి UEFI సర్టిఫికేట్ రివోకేషన్ లిస్ట్ (dbx) వాడకం అవసరం లేదు, కానీ ఇది సిగ్నేచర్లను రూపొందించడానికి ఉపయోగించే అంతర్గత కీని మార్చడం మరియు డిస్ట్రిబ్యూషన్ల ద్వారా సరఫరా చేయబడిన GRUB2, షిమ్ మరియు ఇతర బూట్ ఆర్టిఫ్యాక్ట్లను అప్డేట్ చేయడం ద్వారా జరుగుతుంది. SBAT ప్రవేశపెట్టక ముందు, దుర్బలత్వాన్ని పూర్తిగా నిరోధించడానికి UEFI రివోకేషన్ లిస్ట్ (dbx)ను అప్డేట్ చేయడం తప్పనిసరి షరతుగా ఉండేది, ఎందుకంటే దాడి చేసే వ్యక్తి, ఏ ఆపరేటింగ్ సిస్టమ్ను ఉపయోగించినా, బూట్ కీని ఉపయోగించి UEFI సెక్యూర్ బూట్ను దెబ్బతీయగలడు.
మూలం: opennet.ru
