కర్ల్ నెట్వర్క్ మరియు లిబ్కర్ల్ లైబ్రరీ ద్వారా డేటాను స్వీకరించడం మరియు పంపడం కోసం యుటిలిటీలో ఒక దుర్బలత్వం (CVE-2023-38545) గుర్తించబడింది, ఇది సమాంతరంగా అభివృద్ధి చేయబడుతోంది, ఇది బఫర్ ఓవర్ఫ్లోకి దారి తీస్తుంది మరియు దాడి చేసే వ్యక్తి కోడ్ను అమలు చేయగలదు. కర్ల్ యుటిలిటీని లేదా లిబ్కర్ల్ని ఉపయోగించి అప్లికేషన్ను ఉపయోగించి యాక్సెస్ చేసినప్పుడు క్లయింట్ వైపు దాడి చేసేవారిచే నియంత్రించబడే HTTPS సర్వర్కు. SOCKS5 ప్రాక్సీ ద్వారా యాక్సెస్ కర్ల్లో ప్రారంభించబడితే మాత్రమే సమస్య కనిపిస్తుంది. ప్రాక్సీ లేకుండా నేరుగా యాక్సెస్ చేసినప్పుడు, దుర్బలత్వం కనిపించదు. కర్ల్ 8.4.0 విడుదలలో దుర్బలత్వం పరిష్కరించబడింది. హ్యాకరోన్ యొక్క ఇంటర్నెట్ బగ్ బౌంటీ చొరవలో భాగంగా బగ్ను కనుగొన్న భద్రతా పరిశోధకుడు $4660 బహుమతిని అందుకున్నారు.
SOCKS5 ప్రాక్సీని యాక్సెస్ చేయడానికి ముందు హోస్ట్నేమ్ రిజల్యూషన్ కోడ్లో లోపం కారణంగా దుర్బలత్వం ఏర్పడింది. హోస్ట్ పేరు గరిష్టంగా 256 అక్షరాల పొడవు ఉంటే, కర్ల్ వెంటనే దాని వైపు రిజల్యూషన్ కోసం పేరును SOCKS5 ప్రాక్సీకి పంపుతుంది మరియు పేరు 255 కంటే ఎక్కువ అక్షరాలు ఉంటే, అది స్థానిక పరిష్కరిణికి మారుతుంది మరియు ఇప్పటికే నిర్వచించిన చిరునామాను SOCKS5కి పంపుతుంది. . కోడ్లో లోపం కారణంగా, SOCKS5 ద్వారా కనెక్షన్ యొక్క నెమ్మదిగా చర్చల సమయంలో స్థానిక రిజల్యూషన్ అవసరాన్ని సూచించే ఫ్లాగ్ తప్పు విలువకు సెట్ చేయబడవచ్చు, ఇది నిరీక్షణతో కేటాయించబడిన బఫర్లో పొడవైన హోస్ట్ పేరు రికార్డింగ్కు దారితీసింది. IP చిరునామా లేదా పేరును నిల్వ చేయడం, 255 అక్షరాలకు మించకూడదు.
SOCKS5 ప్రాక్సీ ద్వారా కర్ల్ ద్వారా యాక్సెస్ చేయబడిన సైట్ యజమాని అభ్యర్థన దారిమార్పు కోడ్ (HTTP 30x)ని తిరిగి అందించడం ద్వారా క్లయింట్ వైపు బఫర్ ఓవర్ఫ్లోను ట్రిగ్గర్ చేయవచ్చు మరియు "స్థానం:" హెడర్ను 16 కంటే ఎక్కువ పరిధిలో ఉన్న హోస్ట్నేమ్తో కూడిన URLకి సెట్ చేయవచ్చు. 64 KB వరకు (16 KB అనేది కేటాయించబడిన బఫర్ను ఓవర్ఫ్లో చేయడానికి అవసరమైన కనీస పరిమాణం మరియు 65 KB అనేది URLలో అనుమతించబడిన గరిష్ట హోస్ట్ పేరు పొడవు). libcurl సెట్టింగ్లలో అభ్యర్థన దారి మళ్లింపు ప్రారంభించబడితే మరియు ఉపయోగించిన SOCKS5 ప్రాక్సీ తగినంత నెమ్మదిగా ఉంటే, దీర్ఘ హోస్ట్ పేరు చిన్న బఫర్కు వ్రాయబడుతుంది, స్పష్టంగా చిన్న పరిమాణంలో ఉంటుంది.
దుర్బలత్వం ప్రధానంగా libcurl ఆధారంగా అప్లికేషన్లను ప్రభావితం చేస్తుంది మరియు 65541 కంటే తక్కువ విలువతో “--limit-rate” ఎంపికను ఉపయోగిస్తున్నప్పుడు మాత్రమే కర్ల్ యుటిలిటీలో కనిపిస్తుంది - libcurl డిఫాల్ట్గా 16 KB పరిమాణంలో బఫర్ను కేటాయిస్తుంది మరియు కర్ల్ యుటిలిటీలో ఇది 100 KB, కానీ ఇది "-limit-rate" పరామితి విలువను బట్టి పరిమాణం మారుతుంది.
ప్రాజెక్ట్ యొక్క రచయిత డేనియల్ స్టెన్బర్గ్, దుర్బలత్వం 1315 రోజులు గుర్తించబడలేదని పేర్కొన్నారు. కర్ల్ని మెమరీ-సేఫ్ లాంగ్వేజ్లో వ్రాసి ఉంటే కర్ల్లో గతంలో గుర్తించబడిన 41% దుర్బలత్వాలను నివారించవచ్చని కూడా ఇది చెబుతోంది, అయితే భవిష్యత్తులో కర్ల్ను మరొక భాషలోకి తిరిగి వ్రాయడానికి ప్రణాళికలు లేవు. కోడ్ బేస్ యొక్క భద్రతను మెరుగుపరచడానికి చర్యలుగా, కోడ్ను పరీక్షించడానికి సాధనాలను విస్తరించాలని మరియు మెమరీతో సురక్షితమైన ఆపరేషన్ను నిర్ధారించే ప్రోగ్రామింగ్ భాషలలో వ్రాసిన డిపెండెన్సీలను మరింత చురుకుగా ఉపయోగించాలని ప్రతిపాదించబడింది. ఇది రస్ట్లో అమలు చేయబడిన ప్రయోగాత్మక హైపర్ HTTP బ్యాకెండ్ వంటి సురక్షిత భాషలలో వ్రాసిన ఎంపికలతో కర్ల్ యొక్క భాగాలను క్రమంగా భర్తీ చేసే అవకాశాన్ని కూడా పరిశీలిస్తోంది.
మూలం: opennet.ru