Linux కెర్నల్ యొక్క VFSలో ఒక దుర్బలత్వం మీ అధికారాలను పెంచుకోవడానికి మిమ్మల్ని అనుమతిస్తుంది

Linux కెర్నల్ అందించిన ఫైల్‌సిస్టమ్ కాంటెక్స్ట్ APIలో ఒక దుర్బలత్వం (CVE-2022-0185) గుర్తించబడింది, ఇది సిస్టమ్‌లో రూట్ అధికారాలను పొందేందుకు స్థానిక వినియోగదారుని అనుమతిస్తుంది. సమస్యను గుర్తించిన పరిశోధకుడు డిఫాల్ట్ కాన్ఫిగరేషన్‌లో ఉబుంటు 20.04లో కోడ్‌ని రూట్‌గా అమలు చేయడానికి మిమ్మల్ని అనుమతించే దోపిడీ యొక్క ప్రదర్శనను ప్రచురించారు. పంపిణీలు దుర్బలత్వాన్ని పరిష్కరించే నవీకరణను విడుదల చేసిన తర్వాత ఒక వారంలోపు దోపిడీ కోడ్ GitHubలో పోస్ట్ చేయబడుతుంది.

VFSలోని legacy_parse_param() ఫంక్షన్‌లో దుర్బలత్వం ఉంది మరియు ఫైల్‌సిస్టమ్ కాంటెక్స్ట్ APIకి మద్దతివ్వని ఫైల్ సిస్టమ్‌లలో అందించబడిన పారామితుల గరిష్ట పరిమాణాన్ని సరిగ్గా తనిఖీ చేయడంలో వైఫల్యం కారణంగా ఏర్పడింది. చాలా పెద్ద పరామితిని పాస్ చేయడం వలన వ్రాయవలసిన డేటా పరిమాణాన్ని గణించడానికి ఉపయోగించే పూర్ణాంకం వేరియబుల్ ఓవర్‌ఫ్లో కావచ్చు - కోడ్‌లో బఫర్ ఓవర్‌ఫ్లో చెక్ "if (len > PAGE_SIZE - 2 - size)" ఉంది, ఇది చేయదు పరిమాణం విలువ 4094 కంటే ఎక్కువ ఉంటే పని చేయండి. దిగువ బౌండ్ ద్వారా పూర్ణాంకం ఓవర్‌ఫ్లో కోసం (పూర్ణాంక అండర్‌ఫ్లో, 4096 - 2 - 4095ను సంతకం చేయని పూర్ణానికి ప్రసారం చేసినప్పుడు, ఫలితం 2147483648).

ఈ లోపం ప్రత్యేకంగా రూపొందించిన ఫైల్ సిస్టమ్ ఇమేజ్‌ని యాక్సెస్ చేస్తున్నప్పుడు, బఫర్ ఓవర్‌ఫ్లో మరియు కేటాయించిన మెమరీ ప్రాంతాన్ని అనుసరించి కెర్నల్ డేటాను ఓవర్‌రైట్ చేయడానికి అనుమతిస్తుంది. దుర్బలత్వాన్ని ఉపయోగించుకోవడానికి, మీరు తప్పనిసరిగా CAP_SYS_ADMIN హక్కులను కలిగి ఉండాలి, అనగా. నిర్వాహక అధికారాలు. సమస్య ఏమిటంటే, సిస్టమ్‌లో వినియోగదారు నేమ్‌స్పేస్‌లకు మద్దతు ఉంటే, ప్రత్యేకించబడని వినియోగదారు అటువంటి అనుమతులను వివిక్త కంటైనర్‌లో పొందవచ్చు. ఉదాహరణకు, Ubuntu మరియు Fedoraలో యూజర్ నేమ్‌స్పేస్‌లు డిఫాల్ట్‌గా ప్రారంభించబడతాయి, కానీ Debian మరియు RHEL (కంటైనర్ ఐసోలేషన్ ప్లాట్‌ఫారమ్‌లు ఉపయోగించకపోతే) ఎనేబుల్ చేయబడవు.

సమస్య Linux కెర్నల్ 5.1 నుండి కనిపిస్తుంది మరియు నిన్నటి 5.16.2, 5.15.16, 5.10.93, 5.4.173 నవీకరణలలో పరిష్కరించబడింది. RHEL, Debian, Fedora మరియు Ubuntu కోసం దుర్బలత్వాన్ని పరిష్కరించే ప్యాకేజీ నవీకరణలు ఇప్పటికే విడుదల చేయబడ్డాయి. Arch Linux, Gentoo, SUSE మరియు openSUSEలలో పరిష్కారం ఇంకా అందుబాటులో లేదు. కంటైనర్ ఐసోలేషన్‌ని ఉపయోగించని సిస్టమ్‌లకు భద్రతా ప్రత్యామ్నాయంగా, మీరు sysctl "user.max_user_namespaces" విలువను 0కి సెట్ చేయవచ్చు: echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf # sysctl -p /etc/ sysctl.d/userns.conf

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి