సమస్య
కోడ్ కాలింగ్ string_interpret_escape() అసలు పరిమాణం ఆధారంగా కాలువ కోసం బఫర్ను కేటాయిస్తుంది మరియు బహిర్గతమైన పాయింటర్ బఫర్ సరిహద్దుల వెలుపలి ప్రాంతంలో ముగుస్తుంది. దీని ప్రకారం, ఇన్పుట్ స్ట్రింగ్ను ప్రాసెస్ చేయడానికి ప్రయత్నిస్తున్నప్పుడు, కేటాయించిన బఫర్కు వెలుపల ఉన్న ప్రాంతం నుండి డేటాను చదివేటప్పుడు పరిస్థితి ఏర్పడుతుంది మరియు తప్పించుకోని స్ట్రింగ్ను వ్రాయడానికి ప్రయత్నించడం బఫర్ యొక్క హద్దులు దాటి వ్రాయడానికి దారి తీస్తుంది.
డిఫాల్ట్ కాన్ఫిగరేషన్లో, సర్వర్కు సురక్షిత కనెక్షన్ని ఏర్పాటు చేసేటప్పుడు ప్రత్యేకంగా రూపొందించిన డేటాను SNIకి పంపడం ద్వారా దుర్బలత్వాన్ని ఉపయోగించుకోవచ్చు. క్లయింట్ సర్టిఫికేట్ ప్రామాణీకరణ కోసం కాన్ఫిగర్ చేయబడిన కాన్ఫిగరేషన్లలో లేదా సర్టిఫికేట్లను దిగుమతి చేసుకునేటప్పుడు peerdn విలువలను సవరించడం ద్వారా కూడా సమస్యను ఉపయోగించుకోవచ్చు. విడుదల నుండి SNI మరియు peerdn ద్వారా దాడి సాధ్యమవుతుంది
Glibcతో Linux సిస్టమ్లపై i386 మరియు amd64 ఆర్కిటెక్చర్లపై SNI ద్వారా దాడి చేయడానికి ఎక్స్ప్లోయిట్ ప్రోటోటైప్ సిద్ధం చేయబడింది. దోపిడీ హీప్ ఏరియాపై డేటా ఓవర్లేని ఉపయోగిస్తుంది, ఫలితంగా లాగ్ ఫైల్ పేరు నిల్వ చేయబడిన మెమరీని ఓవర్రైట్ చేస్తుంది. ఫైల్ పేరు "/../../../../../../../../etc/passwd"తో భర్తీ చేయబడింది. తరువాత, పంపినవారి చిరునామాతో వేరియబుల్ ఓవర్రైట్ చేయబడింది, ఇది మొదట లాగ్లో సేవ్ చేయబడుతుంది, ఇది సిస్టమ్కు కొత్త వినియోగదారుని జోడించడానికి మిమ్మల్ని అనుమతిస్తుంది.
పంపిణీల ద్వారా విడుదల చేయబడిన దుర్బలత్వ పరిష్కారాలతో కూడిన ప్యాకేజీ నవీకరణలు
దుర్బలత్వాన్ని నిరోధించడానికి ప్రత్యామ్నాయంగా, మీరు TLS మద్దతుని నిలిపివేయవచ్చు లేదా జోడించవచ్చు
ACL విభాగం “acl_smtp_mail”:
నిరాకరణ షరతు = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
నిరాకరించు షరతు = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}
మూలం: opennet.ru