qmail మెయిల్ సర్వర్‌లో రిమోట్‌గా ఉపయోగించబడే దుర్బలత్వం

క్వాలిస్ నుండి భద్రతా పరిశోధకులు చూపించాడు అవకాశం ఆపరేటింగ్ qmail మెయిల్ సర్వర్‌లోని దుర్బలత్వాలు, ప్రసిద్ధ తిరిగి 2005లో (CVE-2005-1513), కానీ qmail రచయిత డిఫాల్ట్ కాన్ఫిగరేషన్‌లో సిస్టమ్‌లపై దాడి చేయడానికి ఉపయోగపడే వర్కింగ్ ఎక్స్‌ప్లోయిట్‌ను సృష్టించడం అవాస్తవమని వాదించినందున అన్‌ప్యాచ్ చేయబడి ఉంది. క్వాలిస్ ఈ ఊహను తిరస్కరించే దోపిడీని సిద్ధం చేయగలిగింది మరియు ప్రత్యేకంగా రూపొందించిన సందేశాన్ని పంపడం ద్వారా సర్వర్‌లో రిమోట్ కోడ్ అమలును ప్రారంభించడానికి అనుమతిస్తుంది.

stralloc_readyplus() ఫంక్షన్‌లో పూర్ణాంకం ఓవర్‌ఫ్లో కారణంగా సమస్య ఏర్పడింది, ఇది చాలా పెద్ద సందేశాన్ని ప్రాసెస్ చేస్తున్నప్పుడు సంభవించవచ్చు. ఆపరేషన్‌కు 64GB కంటే ఎక్కువ వర్చువల్ మెమరీతో 4-బిట్ సిస్టమ్ అవసరం. 2005లో దుర్బలత్వాన్ని వాస్తవంగా విశ్లేషించినప్పుడు, డేనియల్ J. బెర్న్‌స్టెయిన్ కోడ్‌లో కేటాయించిన శ్రేణి పరిమాణం ఎల్లప్పుడూ 32-బిట్ విలువలోపు ఉంటుందని భావించడం, ప్రతి ప్రక్రియకు ఎవరూ గిగాబైట్ల మెమరీని అందించకపోవడంపై ఆధారపడి ఉంటుందని వాదించారు. గత 15 సంవత్సరాలలో, సర్వర్‌లలోని 64-బిట్ సిస్టమ్‌లు 32-బిట్ సిస్టమ్‌లను భర్తీ చేశాయి మరియు సరఫరా చేయబడిన మెమరీ మరియు నెట్‌వర్క్ బ్యాండ్‌విడ్త్ మొత్తం నాటకీయంగా పెరిగింది.

qmail ప్యాకేజీ నిర్వహణదారులు qmail-smtpd ప్రక్రియను ప్రారంభించేటప్పుడు బెర్న్‌స్టెయిన్ నోట్‌ను పరిగణనలోకి తీసుకున్నారు మరియు అందుబాటులో ఉన్న మెమరీని పరిమితం చేశారు (ఉదాహరణకు, Debian 10 7MB పరిమితిని సెట్ చేస్తుంది). కానీ Qualys నుండి ఇంజనీర్లు ఇది సరిపోదని మరియు qmail-smtpdతో పాటు, qmail-లోకల్ ప్రాసెస్‌పై రిమోట్ దాడిని నిర్వహించవచ్చని కనుగొన్నారు, ఇది అన్ని పరీక్షించిన ప్యాకేజీలలో అనియంత్రితమైనది. రుజువుగా, డిఫాల్ట్ కాన్ఫిగరేషన్‌లో qmailతో డెబియన్ ప్యాకేజీపై దాడి చేయడానికి అనుకూలమైన ఎక్స్‌ప్లోయిట్ ప్రోటోటైప్ సిద్ధం చేయబడింది.
దాడి సమయంలో రిమోట్ కోడ్ అమలును నిర్వహించడానికి, సర్వర్‌కు 4GB ఉచిత డిస్క్ స్థలం మరియు 8GB RAM అవసరం.
"/home" డైరెక్టరీలో స్వంత సబ్‌డైరెక్టరీ లేని రూట్ మరియు సిస్టమ్ వినియోగదారులకు తప్ప, సిస్టమ్‌లోని ఏదైనా వినియోగదారు హక్కులతో ఏదైనా షెల్ ఆదేశాలను అమలు చేయడానికి దోపిడీ మిమ్మల్ని అనుమతిస్తుంది (qmail-స్థానిక ప్రక్రియ హక్కులతో ప్రారంభించబడింది. డెలివరీ చేయబడిన స్థానిక వినియోగదారు).

దాడి జరుగుతుంది
దాదాపు 4GB మరియు 576MB కొలిచే అనేక హెడర్ లైన్‌లతో సహా చాలా పెద్ద మెయిల్ సందేశాన్ని పంపడం ద్వారా. అటువంటి స్ట్రింగ్‌ను qmail-localలో ప్రాసెస్ చేయడం వలన స్థానిక వినియోగదారుకు సందేశాన్ని బట్వాడా చేయడానికి ప్రయత్నిస్తున్నప్పుడు పూర్ణాంకం ఓవర్‌ఫ్లో అవుతుంది. పూర్ణాంకం ఓవర్‌ఫ్లో డేటాను కాపీ చేసేటప్పుడు బఫర్ ఓవర్‌ఫ్లో మరియు libc కోడ్‌తో మెమరీ పేజీలను ఓవర్‌రైట్ చేసే అవకాశం ఏర్పడుతుంది. ప్రసారం చేయబడిన డేటా యొక్క లేఅవుట్ను మార్చడం ద్వారా, "ఓపెన్ ()" ఫంక్షన్ యొక్క చిరునామాను తిరిగి వ్రాయడం కూడా సాధ్యమవుతుంది, దానిని "సిస్టమ్ ()" ఫంక్షన్ చిరునామాతో భర్తీ చేస్తుంది.

తరువాత, qmail-localలో qmesearch()కి కాల్ చేసే ప్రక్రియలో, ".qmail-extension" ఫైల్ ఓపెన్() ఫంక్షన్ ద్వారా తెరవబడుతుంది, ఇది ఫంక్షన్ యొక్క వాస్తవ అమలుకు దారి తీస్తుంది.
సిస్టమ్(".qmail-extension"). ఫైల్ యొక్క “పొడిగింపు” భాగం గ్రహీత చిరునామా (ఉదాహరణకు, “localuser-extension@localdomain”) ఆధారంగా రూపొందించబడినందున, దాడి చేసేవారు వినియోగదారు “localuser-;కమాండ్‌ని పేర్కొనడం ద్వారా అమలు చేయడానికి ఆదేశాన్ని పంపడానికి ఏర్పాట్లు చేయవచ్చు. ;@localdomain” సందేశం గ్రహీతగా.

కోడ్ విశ్లేషణ సమయంలో, డెబియన్ కోసం ప్యాకేజీలో భాగమైన అదనపు qmail-verify ప్యాచ్‌లో రెండు దుర్బలత్వాలు కూడా గుర్తించబడ్డాయి. మొదటి దుర్బలత్వం (CVE-2020-3811) ఇమెయిల్ చిరునామా ధృవీకరణను దాటవేయడానికి మిమ్మల్ని అనుమతిస్తుంది మరియు రెండవది (CVE-2020-3812) స్థానిక సమాచారం లీకేజీకి దారి తీస్తుంది. ప్రత్యేకించి, ఆదేశాన్ని పంపడానికి దోపిడీలో ఉపయోగించిన చిరునామా యొక్క ఖచ్చితత్వం యొక్క ధృవీకరణను దాటవేయడానికి మొదటి దుర్బలత్వం మిమ్మల్ని అనుమతిస్తుంది ("localuser-; కమాండ్;" వంటి డొమైన్ లేని చిరునామాలకు ధృవీకరణ పని చేయదు). రెండవ దుర్బలత్వం సిస్టమ్‌లోని ఫైల్‌లు మరియు డైరెక్టరీల ఉనికిని తనిఖీ చేయడానికి ఉపయోగించవచ్చు, వీటిలో రూట్‌కు మాత్రమే అందుబాటులో ఉండేవి (రూట్ హక్కులతో qmail-వెరిఫై రన్‌లు), స్థానిక హ్యాండ్లర్‌కు నేరుగా కాల్ చేయడం ద్వారా.

సమస్యను పరిష్కరించేందుకు, బెర్న్‌స్టెయిన్ qmail ప్రక్రియలను అందుబాటులో ఉన్న మెమరీపై మొత్తం పరిమితితో (“softlimit -m12345678”) అమలు చేయాలని సిఫార్సు చేసింది, ఈ సందర్భంలో సమస్య బ్లాక్ చేయబడుతుంది. రక్షణ యొక్క ప్రత్యామ్నాయ పద్ధతిగా, “నియంత్రణ/డేటాబైట్‌లు” ఫైల్ ద్వారా ప్రాసెస్ చేయబడిన సందేశం యొక్క గరిష్ట పరిమాణాన్ని పరిమితం చేయడం కూడా పేర్కొనబడింది (డిఫాల్ట్‌గా ఇది డిఫాల్ట్ సెట్టింగ్‌లతో సృష్టించబడదు qmail హాని కలిగిస్తుంది). అదనంగా, "నియంత్రణ/డేటాబైట్లు" సిస్టమ్ వినియోగదారుల నుండి స్థానిక దాడుల నుండి రక్షించదు, ఎందుకంటే పరిమితి qmail-smtpd ద్వారా మాత్రమే పరిగణనలోకి తీసుకోబడుతుంది.

సమస్య ప్యాకేజీని ప్రభావితం చేస్తుంది netqmail, డెబియన్ రిపోజిటరీలలో చేర్చబడింది. 2005 నుండి పాత దుర్బలత్వాలు (అలాక్() ఫంక్షన్ కోడ్‌కు హార్డ్ మెమరీ పరిమితులను జోడించడం ద్వారా) మరియు qmail-verifyలో కొత్త సమస్యలు రెండింటినీ తొలగిస్తూ, ఈ ప్యాకేజీ కోసం ప్యాచ్‌ల సమితి సిద్ధం చేయబడింది. విడిగా సిద్ధం qmail-verify ప్యాచ్ యొక్క నవీకరించబడిన సంస్కరణ. డెవలపర్లు శాఖలు notqmail పాత సమస్యలను నిరోధించడానికి వారి స్వంత ప్యాచ్‌లను సిద్ధం చేసింది మరియు కోడ్‌లో సాధ్యమయ్యే అన్ని పూర్ణాంక ఓవర్‌ఫ్లోలను తొలగించడానికి పని చేయడం ప్రారంభించింది.

మూలం: opennet.ru

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