లినక్స్ కెర్నల్లో రెండు బలహీనతలు కనుగొనబడ్డాయి. ఈ బలహీనతలు కొన్ని రోజుల క్రితం వెల్లడైన కాపీ ఫెయిల్ బలహీనతను పోలి ఉన్నప్పటికీ, అవి వేర్వేరు సబ్సిస్టమ్లైన xfrm-ESP మరియు RxRPC లను ప్రభావితం చేస్తాయి. ఈ బలహీనతల శ్రేణికి డర్టీ ఫ్రాగ్ (దీనిని కాపీ ఫెయిల్ 2 అని కూడా పిలుస్తారు) అనే కోడ్నేమ్ పెట్టారు. ఈ బలహీనతల వల్ల, పేజ్ కాష్లోని ప్రాసెస్ డేటాను ఓవర్రైట్ చేయడం ద్వారా, ప్రత్యేక అధికారాలు లేని వినియోగదారుడు రూట్ అధికారాలను పొందగలుగుతాడు. ప్రస్తుత అన్ని లినక్స్ డిస్ట్రిబ్యూషన్లలో పనిచేసే ఒక ఎక్స్ప్లాయిట్ అందుబాటులో ఉంది. ప్యాచ్లు ప్రచురించక ముందే ఈ బలహీనత వెల్లడైంది, కానీ దీనికి ఒక తాత్కాలిక పరిష్కారం అందుబాటులో ఉంది.
డర్టీ ఫ్రాగ్ రెండు వేర్వేరు బలహీనతలను కవర్ చేస్తుంది: మొదటిది, ESP (ఎన్క్యాప్సులేటింగ్ సెక్యూరిటీ పేలోడ్) ప్రోటోకాల్ను ఉపయోగించి IPsec ఎన్క్రిప్షన్ ఆపరేషన్లను వేగవంతం చేయడానికి వాడే xfrm-ESP మాడ్యూల్లో, మరియు రెండవది, UDP పై పనిచేసే AF_RXRPC సాకెట్ ఫ్యామిలీ మరియు అదే పేరు గల RPC ప్రోటోకాల్ను అమలు చేసే RxRPC డ్రైవర్లో. విడివిడిగా తీసుకుంటే, ఈ ప్రతి బలహీనత రూట్ ప్రివిలేజ్లను అనుమతిస్తుంది. xfrm-ESP బలహీనత జనవరి 2017 నుండి లైనక్స్ కెర్నల్లో ఉంది, మరియు RxRPC బలహీనత జూన్ 2023 నుండి ఉంది. పేజ్ కాష్కు నేరుగా రైట్లను అనుమతించే ఆప్టిమైజేషన్ల వల్ల ఈ రెండు సమస్యలు తలెత్తుతాయి.
xfrm-ESP దుర్బలత్వాన్ని ఉపయోగించుకోవాలంటే, యూజర్కు నేమ్స్పేస్లను సృష్టించే అనుమతి ఉండాలి, మరియు RxRPC దుర్బలత్వాన్ని ఉపయోగించుకోవాలంటే, rxrpc.ko కెర్నల్ మాడ్యూల్ లోడ్ అయి ఉండాలి. ఉదాహరణకు, ఉబుంటులో, AppArmor నియమాలు ప్రత్యేక హక్కులు లేని యూజర్లను నేమ్స్పేస్లను సృష్టించకుండా నిరోధిస్తాయి, కానీ rxrpc.ko మాడ్యూల్ డిఫాల్ట్గా లోడ్ అయి ఉంటుంది. కొన్ని డిస్ట్రిబ్యూషన్లలో rxrpc.ko మాడ్యూల్ ఉండదు కానీ నేమ్స్పేస్ సృష్టిని నిరోధించవు. ఈ సమస్యను కనుగొన్న పరిశోధకుడు, ఈ రెండు దుర్బలత్వాల ద్వారా సిస్టమ్పై దాడి చేయగల ఒక సంయుక్త ఎక్స్ప్లాయిట్ను అభివృద్ధి చేశారు, దీనివల్ల అన్ని ప్రధాన డిస్ట్రిబ్యూషన్లలో ఈ సమస్యను ఉపయోగించుకోవడం సాధ్యమైంది. ఈ ఎక్స్ప్లాయిట్, కెర్నల్ 6.17.0-23 కలిగిన ఉబుంటు 24.04.4, కెర్నల్ 6.12.0-124.49.1 కలిగిన RHEL 10.1, కెర్నల్ 7.0.2-1 కలిగిన ఓపెన్సూస్ టంబుల్వీడ్, కెర్నల్ 6.12.0-224 కలిగిన సెంటోస్ స్ట్రీమ్ 10, కెర్నల్ 6.12.0-124.52.3 కలిగిన ఆల్మాలినక్స్ 10, మరియు కెర్నల్ 6.19.14-300 కలిగిన ఫెడోరా 44 లపై పనిచేస్తుందని నిర్ధారించబడింది.
కాపీ ఫెయిల్ దుర్బలత్వం మాదిరిగానే, xfrm-ESP మరియు RxRPC లలోని సమస్యలు కూడా splice() ఫంక్షన్ను ఉపయోగించి చేసే ఇన్-ప్లేస్ డేటా డీక్రిప్షన్ వల్ల కలుగుతాయి. ఈ ఫంక్షన్, పేజ్ కాష్లోని ఎలిమెంట్లకు రిఫరెన్స్లను పంపడం ద్వారా, కాపీ చేయకుండానే ఫైల్ డిస్క్రిప్టర్లు మరియు పైప్ల మధ్య డేటాను బదిలీ చేస్తుంది. పేజ్ కాష్లోని ఎలిమెంట్లకు డైరెక్ట్ రిఫరెన్స్లను ఉపయోగించడాన్ని పరిగణనలోకి తీసుకోవడానికి సరైన తనిఖీలు లేకుండా రైట్ ఆఫ్సెట్లు లెక్కించబడ్డాయి. దీనివల్ల, ప్రత్యేకంగా రూపొందించిన రిక్వెస్ట్లు ఒక నిర్దిష్ట ఆఫ్సెట్ వద్ద 4 బైట్లను ఓవర్రైట్ చేయడానికి మరియు పేజ్ కాష్లోని ఏ ఫైల్ కంటెంట్నైనా సవరించడానికి వీలు కలిగింది.
అన్ని ఫైల్ రీడ్ ఆపరేషన్లు మొదట పేజ్ కాష్ నుండి కంటెంట్ను పొందుతాయి. పేజ్ కాష్లోని డేటా సవరించబడితే, ఫైల్ రీడ్ ఆపరేషన్లు డ్రైవ్లో నిల్వ చేయబడిన అసలు సమాచారాన్ని కాకుండా, దాని స్థానంలో మార్చబడిన డేటాను తిరిగి ఇస్తాయి. ఈ దుర్బలత్వాన్ని ఉపయోగించుకోవడం అనేది suid రూట్ ఫ్లాగ్తో ఒక ఎగ్జిక్యూటబుల్ ఫైల్ యొక్క పేజ్ కాష్ను సవరించడంపై ఆధారపడి ఉంటుంది. ఉదాహరణకు, రూట్ అధికారాలను పొందడానికి, ఒకరు /usr/bin/su అనే ఎగ్జిక్యూటబుల్ ఫైల్ను చదివి దానిని పేజ్ కాష్లో ఉంచి, ఆపై పేజ్ కాష్లోకి లోడ్ చేయబడిన ఈ ఫైల్ యొక్క కంటెంట్లలో తమ సొంత కోడ్ను చేర్చవచ్చు. ఆ తర్వాత "su" యుటిలిటీని అమలు చేసినప్పుడు, డ్రైవ్లోని అసలైన ఎగ్జిక్యూటబుల్ ఫైల్ కాకుండా, పేజ్ కాష్ నుండి సవరించబడిన కాపీ మెమరీలోకి లోడ్ అవుతుంది.
దుర్బలత్వాన్ని బహిర్గతం చేయడం మరియు ప్యాచ్లను సమన్వయంతో విడుదల చేయడం మే 12న జరగాల్సి ఉంది, కానీ సమాచారం లీక్ అవ్వడం వల్ల, ప్యాచ్లను విడుదల చేయడానికి ముందే దుర్బలత్వానికి సంబంధించిన సమాచారాన్ని ప్రచురించాల్సి వచ్చింది. ఏప్రిల్ చివరిలో, rxrpc, ipsec, మరియు xfrm ల కోసం ప్యాచ్లను, అవి దుర్బలత్వానికి సంబంధించినవని ప్రస్తావించకుండానే netdev పబ్లిక్ మెయిలింగ్ లిస్ట్లో పోస్ట్ చేశారు. మే 5న, IPsec సబ్సిస్టమ్ మెయింటెయినర్, xfrm-esp మాడ్యూల్లో ప్రతిపాదిత పరిష్కారంతో netdev Git రిపోజిటరీకి చేసిన మార్పును ఆమోదించారు. ఆ మార్పు యొక్క వివరణ, algif_aead మాడ్యూల్లో కాపీ ఫెయిల్ దుర్బలత్వానికి దారితీసిన సమస్య యొక్క వివరణతో చాలా వరకు ఒకేలా ఉంది. ఒక భద్రతా పరిశోధకుడు ఈ పరిష్కారంపై ఆసక్తి కనబరిచి, పనిచేసే ఎక్స్ప్లాయిట్ను సృష్టించి, దానిని ప్రచురించారు. అయితే, మే 12 వరకు ఈ సమస్యకు సంబంధించిన సమాచారాన్ని బహిర్గతం చేయడంపై నిషేధం విధించబడిందని అతనికి తెలియదు.
డిస్ట్రిబ్యూషన్లలోని లైనక్స్ కెర్నల్ మరియు కెర్నల్ ప్యాకేజీల కోసం పరిష్కారాలతో కూడిన అప్డేట్లు ఇంకా ప్రచురించబడలేదు, కానీ సమస్యలను పరిష్కరించే ప్యాచ్లు అందుబాటులో ఉన్నాయి—xfrm-esp మరియు rxrpc. CVE ఐడెంటిఫైయర్లు కేటాయించబడలేదు, ఇది డిస్ట్రిబ్యూషన్లలో ప్యాకేజీ అప్డేట్లను ట్రాక్ చేయడాన్ని క్లిష్టతరం చేస్తుంది. ఒక తాత్కాలిక పరిష్కారంగా, మీరు esp4, esp6, మరియు rxrpc కెర్నల్ మాడ్యూల్స్ లోడ్ అవ్వడాన్ని నిరోధించవచ్చు: sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"
మూలం: opennet.ru
