Linux కెర్నల్ స్థాయిలో కోడ్ అమలును అనుమతించే eBPF సబ్‌సిస్టమ్‌లో దుర్బలత్వం

eBPF సబ్‌సిస్టమ్‌లో ఒక దుర్బలత్వం (CVE-2021-4204) గుర్తించబడింది, ఇది JITతో ఒక ప్రత్యేక వర్చువల్ మెషీన్‌లో Linux కెర్నల్ లోపల హ్యాండ్లర్‌లను అమలు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది, ఇది స్థానిక అన్‌ప్రివిలేజ్డ్ యూజర్‌ను ప్రివిలేజ్ ఎస్కలేషన్‌ను సాధించడానికి మరియు వారి కోడ్‌ను అమలు చేయడానికి అనుమతిస్తుంది. Linux కెర్నల్ స్థాయి. సమస్య Linux కెర్నల్ 5.8 నుండి కనిపిస్తుంది మరియు పరిష్కరించబడలేదు (విడుదల 5.16తో సహా). పంపిణీలలో సమస్యను పరిష్కరించడానికి రూపొందించబడిన నవీకరణల స్థితిని ఈ పేజీలలో ట్రాక్ చేయవచ్చు: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. వర్కింగ్ ఎక్స్‌ప్లోయిట్ సృష్టించబడిందని ప్రకటించబడింది, ఇది జనవరి 18న ప్రచురించబడుతుందని యోచిస్తున్నారు (దుర్బలత్వాన్ని పరిష్కరించడానికి వినియోగదారులు మరియు డెవలపర్‌లకు ఒక వారం సమయం ఇవ్వబడింది).

అమలు కోసం ప్రసారం చేయబడిన eBPF ప్రోగ్రామ్‌ల యొక్క తప్పు ధృవీకరణ కారణంగా దుర్బలత్వం ఏర్పడుతుంది. eBPF సబ్‌సిస్టమ్ సహాయక విధులను అందిస్తుంది, దీని యొక్క సరైన ఉపయోగం ప్రత్యేక ధృవీకరణ ద్వారా ధృవీకరించబడుతుంది. కొన్ని ఫంక్షన్‌లకు PTR_TO_MEM విలువను ఆర్గ్యుమెంట్‌గా పాస్ చేయడం అవసరం మరియు సాధ్యమయ్యే బఫర్ ఓవర్‌ఫ్లోలను నిరోధించడానికి, వెరిఫైయర్ తప్పనిసరిగా ఆర్గ్యుమెంట్‌తో అనుబంధించబడిన మెమరీ పరిమాణాన్ని తెలుసుకోవాలి. bpf_ringbuf_submit మరియు bpf_ringbuf_discard ఫంక్షన్‌ల కోసం, బదిలీ చేయబడిన మెమరీ పరిమాణంపై డేటా వెరిఫైయర్‌కు నివేదించబడలేదు, ఇది ప్రత్యేకంగా రూపొందించిన eBPF కోడ్‌ని అమలు చేస్తున్నప్పుడు బఫర్ సరిహద్దును దాటి మెమరీ ప్రాంతాలను ఓవర్‌రైట్ చేయడానికి ఉపయోగించబడుతుంది.

దాడిని నిర్వహించడానికి, వినియోగదారు తప్పనిసరిగా తన స్వంత BPF ప్రోగ్రామ్‌ను లోడ్ చేయగలగాలి మరియు అనేక ఇటీవలి Linux పంపిణీలు డిఫాల్ట్‌గా ఈ సామర్థ్యాన్ని నిరోధించాయి (eBPFకి అన్‌ప్రివిలేజ్డ్ యాక్సెస్‌తో సహా ఇప్పుడు కెర్నల్‌లోనే డిఫాల్ట్‌గా నిషేధించబడింది, విడుదల 5.16తో ప్రారంభమవుతుంది). ఉదాహరణకు, Ubuntu 20.04 LTSలోని డిఫాల్ట్ కాన్ఫిగరేషన్‌లో దుర్బలత్వాన్ని ఉపయోగించుకోవచ్చు, కానీ పరిసరాలలో Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 మరియు Fedora 33 సెట్‌లో కనిపిస్తే మాత్రమే అది కనిపిస్తుంది. kernel.unprivileged_bpf_disabled పరామితి 0కి. దుర్బలత్వాన్ని నిరోధించడానికి ప్రత్యామ్నాయంగా, మీరు “sysctl -w kernel.unprivileged_bpf_disabled=1” కమాండ్‌తో అన్‌ప్రివిలేజ్డ్ యూజర్‌ల ద్వారా BPF ప్రోగ్రామ్‌ల అమలును నిరోధించవచ్చు.

మూలం: opennet.ru

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