smtpd, ldapd మరియు వ్యాసార్థంలో ఓపెన్‌బిఎస్‌డి ప్రివిలేజ్ ఎస్కలేషన్ మరియు అథెంటికేషన్ బైపాస్ దుర్బలత్వం

క్వాలిస్ కంపెనీ వెల్లడించారు నాలుగు దుర్బలత్వాలు OpenBSDలో, కొన్ని నెట్‌వర్క్ సేవలకు ప్రామాణీకరణ లేకుండా రిమోట్‌గా కనెక్ట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది మరియు మిగిలిన మూడు సిస్టమ్‌లో మీ అధికారాలను పెంచుతాయి. Qualys నివేదిక OpenBSD డెవలపర్‌ల యొక్క శీఘ్ర ప్రతిస్పందనను గుర్తించింది - అన్ని సమస్యలు ఉన్నాయి తొలగించబడింది в ఓపెన్‌బిఎస్‌డి 6.5 и ఓపెన్‌బిఎస్‌డి 6.6 ప్రైవేట్ నోటిఫికేషన్ తర్వాత 40 గంటలలోపు.

libc లైబ్రరీలోని ప్రామాణీకరణ హ్యాండ్లర్‌కు కాల్ చేయడంలో లోపం కారణంగా రిమోట్‌గా ఉపయోగించబడే దుర్బలత్వం ఏర్పడింది, ఇది కాల్ చేస్తుంది
ప్రోగ్రామ్ /usr/libexec/auth/login_style పాసింగ్ ఆర్గ్యుమెంట్‌లను కమాండ్ లైన్‌లో. ఐచ్ఛిక పరామితి “-s సర్వీస్”ని ఉపయోగించి login_styleకి కాల్ చేస్తున్నప్పుడు సహా, ప్రోటోకాల్ పేరును బదిలీ చేయడం సాధ్యపడుతుంది. మీరు వినియోగదారు పేరు ప్రారంభంలో "-" అక్షరాన్ని ఉపయోగిస్తే, login_styleని అమలు చేస్తున్నప్పుడు ఈ పేరు ఎంపికగా పరిగణించబడుతుంది. దీని ప్రకారం, మీరు ప్రామాణీకరణ సమయంలో వినియోగదారు పేరుగా “-schallenge” లేదా “-schallenge:passwd”ని పేర్కొన్నట్లయితే, login_style హ్యాండ్లర్‌ను ఉపయోగించడానికి అభ్యర్థనగా గ్రహిస్తుంది S/కీ.

సమస్య ఏమిటంటే, లాగిన్_స్టైల్‌లోని S/కీ ప్రోటోకాల్ అధికారికంగా మాత్రమే మద్దతు ఇస్తుంది, కానీ వాస్తవానికి విజయవంతమైన ప్రామాణీకరణ యొక్క అవుట్‌పుట్‌తో విస్మరించబడుతుంది. అందువల్ల, దాడి చేసే వ్యక్తి, వినియోగదారు "-ఛాలెంజ్"గా చూపడం ద్వారా, ప్రామాణీకరణను దాటవేయవచ్చు మరియు పాస్‌వర్డ్ లేదా కీలను అందించకుండా యాక్సెస్ పొందవచ్చు. ప్రామాణీకరణ కోసం ప్రామాణిక libc కాల్‌లను ఉపయోగించే అన్ని నెట్‌వర్క్ సేవలు సమస్య ద్వారా ప్రభావితమయ్యే అవకాశం ఉంది. ఉదాహరణకు, ప్రమాణీకరణను దాటవేయగల సామర్థ్యం smtpd (AUTH PLAIN), ldapd మరియు radiusdలో మద్దతు ఇస్తుంది.

సిస్టమ్‌లో వినియోగదారు ఉనికిని తనిఖీ చేసే అదనపు రక్షణను కలిగి ఉన్నందున, దుర్బలత్వం sshdలో కనిపించదు. అయినప్పటికీ, సిస్టమ్ యొక్క దుర్బలత్వాన్ని పరీక్షించడానికి sshdని ఉపయోగించవచ్చు - వినియోగదారు పేరు "-sresponse:passwd"ని యాక్సెస్ చేస్తున్నప్పుడు, కనెక్షన్ హ్యాంగ్ అవుతుంది, ఎందుకంటే sshd login_passwd ఛాలెంజ్ పారామితులను తిరిగి ఇవ్వడానికి వేచి ఉంది మరియు login_passwd తప్పిపోయిన పారామితుల కోసం వేచి ఉంది. పంపబడుతుంది (పేరు "- sresponse" ఒక ఎంపికగా పరిగణించబడుతుంది). స్థానిక దాడి చేసే వ్యక్తి su యుటిలిటీలో ప్రామాణీకరణను దాటవేయడానికి ప్రయత్నించవచ్చు, కానీ "-sresponse" పేరును పాస్ చేయడం వలన getpwnam_r("-schallenge", ...) ఫంక్షన్‌ని అమలు చేస్తున్నప్పుడు శూన్య పాయింటర్‌ను తిరిగి ఇవ్వడం ద్వారా ప్రక్రియ క్రాష్ అవుతుంది.

ఇతర దుర్బలత్వాలు:

  • CVE-2019-19520 సమూహాన్ని "ప్రామాణీకరణ"గా మార్చడం ద్వారా sgid ఫ్లాగ్‌తో సరఫరా చేయబడిన xlock యుటిలిటీని తారుమారు చేయడం ద్వారా స్థానిక ప్రత్యేకాధికారాల పెరుగుదల. xlock కోడ్‌లో, వినియోగదారు ఐడెంటిఫైయర్ (సెటూయిడ్) మార్చబడినప్పుడు మాత్రమే లైబ్రరీలకు మార్గాలను పునర్నిర్వచించడం నిషేధించబడింది, ఇది దాడి చేసే వ్యక్తి పర్యావరణ వేరియబుల్ “LIBGL_DRIVERS_PATH”ని మార్చడానికి మరియు అతని షేర్డ్ లైబ్రరీ యొక్క లోడ్‌ను నిర్వహించడానికి అనుమతిస్తుంది, దాని కోడ్ అమలు చేయబడుతుంది. "ప్రామాణీకరణ" సమూహానికి అధికారాలను పెంచిన తర్వాత.
  • CVE-2019-19522 - సిస్టమ్‌లో S/Key లేదా YubiKey ప్రమాణీకరణ ప్రారంభించబడినప్పుడు (డిఫాల్ట్‌గా సక్రియం కాదు) కోడ్‌ని రూట్‌గా అమలు చేయడానికి "ప్రామాణీకరణ" సమూహంలో సభ్యుడైన స్థానిక వినియోగదారుని అనుమతిస్తుంది. xlockలో పైన పేర్కొన్న దుర్బలత్వాన్ని ఉపయోగించడం ద్వారా యాక్సెస్ చేయగల “ప్రామాణీకరణ” సమూహంలో చేరడం, /etc/skey మరియు /var/db/yubikey డైరెక్టరీలకు ఫైల్‌లను వ్రాయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఉదాహరణకు, దాడి చేసే వ్యక్తి S/Key ద్వారా రూట్ యూజర్‌గా ప్రమాణీకరణ కోసం వన్-టైమ్ కీలను రూపొందించడానికి కొత్త ఫైల్ /etc/skey/rootని జోడించవచ్చు.
  • CVE-2019-19519 - సు యుటిలిటీని తారుమారు చేయడం ద్వారా వనరుల పరిమితులను పెంచే అవకాశం. "-L" ఎంపికను పేర్కొనబడినప్పుడు, అది విఫలమైతే, ప్రామాణీకరణ ప్రయత్నాలు చక్రీయంగా పునరావృతమయ్యేలా చేస్తుంది, వినియోగదారు తరగతి ఒక్కసారి మాత్రమే సెట్ చేయబడుతుంది మరియు తదుపరి ప్రయత్నాలలో రీసెట్ చేయబడదు. దాడి చేసే వ్యక్తి వేరొక ఖాతా క్లాస్‌తో వేరొకరి లాగిన్‌లోకి ప్రవేశించే మొదటి ప్రయత్నంలో “su -l -L”ని అమలు చేయగలడు, కానీ రెండవ ప్రయత్నంలో అతను విజయవంతంగా తనను తాను ప్రామాణీకరించగలడు. ఈ పరిస్థితిలో, వినియోగదారు మొదటి ప్రయత్నంలో పేర్కొన్న వినియోగదారు తరగతి ఆధారంగా పరిమితులకు లోబడి ఉంటారు (ఉదాహరణకు, ఒక ప్రక్రియ కోసం గరిష్ట సంఖ్యలో ప్రక్రియలు లేదా మెమరీ పరిమాణం). రూట్ యూజర్ వీల్ గ్రూప్‌లో ఉండాలి కాబట్టి, అప్రివిలేజ్డ్ యూజర్ల నుండి పరిమితులను అరువు తీసుకోవడానికి మాత్రమే ఈ పద్ధతి పని చేస్తుంది.

అదనంగా, ఇది గమనించవచ్చు అమలు OpenBSDలో, సిస్టమ్ కాల్‌ల చెల్లుబాటును తనిఖీ చేయడానికి ఒక కొత్త పద్ధతి, ఇది దుర్బలత్వాల దోపిడీని మరింత క్లిష్టతరం చేస్తుంది. సిస్టమ్ కాల్‌లు గతంలో నమోదు చేయబడిన మెమరీ ప్రాంతాల నుండి యాక్సెస్ చేయబడితే మాత్రమే వాటిని అమలు చేయడానికి ఈ పద్ధతి అనుమతిస్తుంది. మెమరీ ప్రాంతాలను గుర్తించడానికి ప్రతిపాదించారు కొత్త సిస్టమ్ కాల్ msyscal().

మూలం: opennet.ru