క్వాలిస్ కంపెనీ
రిమోట్ మెయిల్ సర్వర్కు మెయిల్ను అందించే కోడ్లోని బగ్ (ఇన్కమింగ్ కనెక్షన్లను హ్యాండిల్ చేసే కోడ్లో కాదు) కారణంగా సమస్య ఏర్పడింది. క్లయింట్ వైపు మరియు సర్వర్ వైపు దాడి సాధ్యమే. క్లయింట్ వైపు, OpenSMTPD యొక్క డిఫాల్ట్ కాన్ఫిగరేషన్లో దాడి సాధ్యమవుతుంది, దీనిలో OpenSMTPD అంతర్గత నెట్వర్క్ ఇంటర్ఫేస్ (లోకల్ హోస్ట్)లో మాత్రమే అభ్యర్థనలను అంగీకరిస్తుంది మరియు బాహ్య సర్వర్లకు మెయిల్ సందేశాలను పంపుతుంది. దుర్బలత్వాన్ని ఉపయోగించుకోవడానికి, లేఖను పంపే సమయంలో, OpenSMTPD దాడి చేసే వారిచే నియంత్రించబడే మెయిల్ సర్వర్తో సెషన్ను ఏర్పాటు చేస్తే సరిపోతుంది లేదా దాడి చేసే వ్యక్తి క్లయింట్ కనెక్షన్లోకి ప్రవేశించవచ్చు (MITM లేదా DNS లేదా BGP ద్వారా దాడుల సమయంలో దారి మళ్లింపు )
సర్వర్ వైపు దాడి కోసం, ఇతర మెయిల్ సర్వర్ల నుండి బాహ్య నెట్వర్క్ అభ్యర్థనలను స్వీకరించడానికి లేదా ఏకపక్ష ఇమెయిల్కి అభ్యర్థనను పంపడానికి మిమ్మల్ని అనుమతించే మూడవ పక్ష సేవలను అందించడానికి OpenSMTPD తప్పనిసరిగా కాన్ఫిగర్ చేయబడాలి (ఉదాహరణకు, వెబ్సైట్లలో చిరునామా నిర్ధారణ ఫారమ్లు). ఉదాహరణకు, దాడి చేసే వ్యక్తి OpenSMTPD సర్వర్కి కనెక్ట్ అయ్యి, తప్పు లేఖను (ఉనికిలో లేని వినియోగదారుకు) పంపవచ్చు, ఇది దాడి చేసేవారి సర్వర్కు ఎర్రర్ కోడ్ (బౌన్స్)తో లేఖను పంపే ప్రతిస్పందనకు దారి తీస్తుంది. దాడి చేసే వ్యక్తి యొక్క సర్వర్కు నోటిఫికేషన్ను బట్వాడా చేయడానికి OpenSMTPD కనెక్ట్ అయినప్పుడు దాడి చేసే వ్యక్తి దుర్బలత్వాన్ని ఉపయోగించుకోవచ్చు. దాడి సమయంలో ఇంజెక్ట్ చేయబడిన షెల్ కమాండ్లు OpenSMTPD పునఃప్రారంభించబడినప్పుడు రూట్ హక్కులతో అమలు చేయబడిన ఫైల్లో ఉంచబడతాయి, కాబట్టి దాడిని పూర్తి చేయడానికి OpenSMTPD పునఃప్రారంభించటానికి లేదా OpenSMTPD క్రాష్ని ప్రారంభించడానికి దాడి చేసే వ్యక్తి తప్పనిసరిగా వేచి ఉండాలి.
కనెక్షన్ని స్థాపించిన తర్వాత రిమోట్ సర్వర్ ద్వారా అందించబడిన బహుళ లైన్ ప్రతిస్పందనను అన్వయించడం కోసం కోడ్లోని mta_io() ఫంక్షన్లో సమస్య ఉంది (ఉదాహరణకు, "250-మెరుగైన STATUSCODES" మరియు "250 సహాయం"). OpenSMTPD మొదటి పంక్తిలో మూడు-అంకెల సంఖ్య మరియు వచనం "-" అక్షరంతో వేరు చేయబడిందని మరియు రెండవ పంక్తిలో ఖాళీతో వేరు చేయబడిన మూడు-అంకెల సంఖ్య మరియు వచనం ఉన్నాయని గణిస్తుంది. మూడు-అంకెల సంఖ్యను రెండవ పంక్తిలో ఖాళీ మరియు వచనం అనుసరించకపోతే, వచనాన్ని నిర్వచించడానికి ఉపయోగించే పాయింటర్ '\0' అక్షరాన్ని అనుసరించి బైట్కు సెట్ చేయబడుతుంది మరియు ముగింపు తర్వాత డేటాను కాపీ చేయడానికి ప్రయత్నం చేయబడుతుంది. బఫర్లోకి పంక్తి.
OpenBSD ప్రాజెక్ట్ యొక్క అభ్యర్థన మేరకు, వినియోగదారులు తమ సిస్టమ్లను అప్డేట్ చేయడానికి అనుమతించడానికి దుర్బలత్వం యొక్క దోపిడీకి సంబంధించిన వివరాలను ప్రచురించడం ఫిబ్రవరి 26 వరకు ఆలస్యం చేయబడింది. డిసెంబర్ 2015 నుండి కోడ్బేస్లో సమస్య ఉంది, అయితే రూట్ అధికారాలతో కోడ్ అమలుకు ముందు దోపిడీ మే 2018 నుండి సాధ్యమవుతుంది. పరిశోధకులు ఎక్స్ప్లోయిట్ యొక్క వర్కింగ్ ప్రోటోటైప్ను సిద్ధం చేశారు, ఇది OpenBSD 6.6, OpenBSD 5.9, Debian 10, Debian 11 (టెస్టింగ్) మరియు Fedora 31 కోసం OpenSMTPD బిల్డ్లలో విజయవంతంగా పరీక్షించబడింది.
OpenSMTPDలో కూడా
సమస్య అసంపూర్ణ తొలగింపు యొక్క పరిణామం
smtpctl ప్రక్రియ setgid smtpq ఫ్లాగ్కు బదులుగా setgid రూట్ ఫ్లాగ్తో అమర్చబడినందున, Fedora 31లో దుర్బలత్వం రూట్ సమూహం యొక్క అధికారాలను వెంటనే పొందేందుకు మిమ్మల్ని అనుమతిస్తుంది. రూట్ సమూహానికి ప్రాప్యతను పొందడం ద్వారా, మీరు /var/lib/sss/mc/passwd యొక్క కంటెంట్లను ఓవర్రైట్ చేయవచ్చు మరియు సిస్టమ్కు పూర్తి రూట్ యాక్సెస్ను పొందవచ్చు.
మూలం: opennet.ru