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