Wayland కోసం షార్ట్‌కట్ మేనేజర్ అయిన swhkdలో దుర్బలత్వాలు

తాత్కాలిక ఫైల్‌లు, కమాండ్ లైన్ పారామీటర్‌లు మరియు Unix సాకెట్‌లతో తప్పుగా పని చేయడం వల్ల swhkd (సింపుల్ వేలాండ్ హాట్‌కీ డెమోన్)లో దుర్బలత్వాల శ్రేణి గుర్తించబడింది. ప్రోగ్రామ్ రస్ట్‌లో వ్రాయబడింది మరియు వేలాండ్ ప్రోటోకాల్ (X11-ఆధారిత పరిసరాలలో ఉపయోగించే sxhkd ప్రక్రియ యొక్క కాన్ఫిగరేషన్ ఫైల్-అనుకూల అనలాగ్) ఆధారంగా పరిసరాలలో హాట్‌కీ నొక్కడం నిర్వహిస్తుంది.

ప్యాకేజీ హాట్‌కీ చర్యలను నిర్వహించే అన్‌ప్రివిలేజ్డ్ swhks ప్రక్రియ మరియు రూట్‌గా రన్ అయ్యే మరియు uinput API స్థాయిలో ఇన్‌పుట్ పరికరాలతో పరస్పర చర్య చేసే నేపథ్య swhkd ప్రక్రియను కలిగి ఉంటుంది. swhks మరియు swhkd మధ్య పరస్పర చర్యను నిర్వహించడానికి Unix సాకెట్ ఉపయోగించబడుతుంది. Polkit నియమాలను ఉపయోగించి, ఏ స్థానిక వినియోగదారు అయినా /usr/bin/swhkd ప్రక్రియను రూట్‌గా అమలు చేయవచ్చు మరియు దానికి ఏకపక్ష పారామితులను పంపవచ్చు.

గుర్తించబడిన దుర్బలత్వాలు:

  • CVE-2022-27815 – ఒక ప్రాసెస్ PIDని ఊహాజనిత పేరుతో ఫైల్‌కి మరియు ఇతర వినియోగదారులు (/tmp/swhkd.pid) వ్రాయగలిగే డైరెక్టరీలో సేవ్ చేస్తోంది. ఏ వినియోగదారు అయినా /tmp/swhkd.pid ఫైల్‌ను సృష్టించవచ్చు మరియు ఇప్పటికే ఉన్న ప్రక్రియ యొక్క pidని దానిలో ఉంచవచ్చు, ఇది swhkdని ప్రారంభించకుండా చేస్తుంది. /tmpలో సింబాలిక్ లింక్‌లను సృష్టించకుండా రక్షణ లేకపోతే, ఏదైనా సిస్టమ్ డైరెక్టరీలో (PID ఫైల్‌కి వ్రాయబడింది) ఫైల్‌లను సృష్టించడానికి లేదా ఓవర్‌రైట్ చేయడానికి లేదా సిస్టమ్‌లోని ఏదైనా ఫైల్‌లోని కంటెంట్‌లను గుర్తించడానికి హానిని ఉపయోగించవచ్చు (swhkd ప్రింట్ చేస్తుంది PID ఫైల్‌లోని మొత్తం కంటెంట్‌లు stdoutకు). విడుదల చేసిన ఫిక్స్‌లో PID ఫైల్ /run డైరెక్టరీకి కాకుండా /etc డైరెక్టరీకి (/etc/swhkd/runtime/swhkd_{uid}.pid) తరలించబడింది, ఇక్కడ అది కూడా చెందదు.
  • CVE-2022-27814 – కాన్ఫిగరేషన్ ఫైల్‌ను పేర్కొనడానికి ఉపయోగించే “-c” కమాండ్ లైన్ ఎంపికను మార్చడం ద్వారా, సిస్టమ్‌లోని ఏదైనా ఫైల్ ఉనికిని గుర్తించడం సాధ్యమవుతుంది. ఉదాహరణకు, /root/.somefileని తనిఖీ చేయడానికి మీరు “pkexec /usr/bin/swhkd -d -c /root/.somefile”ని అమలు చేయవచ్చు మరియు ఫైల్ తప్పిపోయినట్లయితే, లోపం “/root/.somefile ఉనికిలో లేదు. ” అని ప్రదర్శించబడుతుంది. మొదటి దుర్బలత్వం విషయంలో వలె, సమస్యను పరిష్కరించడం అస్పష్టంగా ఉంది - సమస్యను పరిష్కరించడం అనేది బాహ్య యుటిలిటీ “క్యాట్” ('కమాండ్:: న్యూ(“/బిన్/క్యాట్”))) ఆర్గ్(మార్గం) కాన్ఫిగరేషన్ ఫైల్‌ను చదవడానికి ఇప్పుడు ప్రారంభించబడింది. output()').
  • CVE-2022-27819 – సమస్య “-c” ఎంపిక యొక్క వినియోగానికి సంబంధించినది, దీని వలన ఫైల్ పరిమాణం మరియు రకాన్ని తనిఖీ చేయకుండా మొత్తం కాన్ఫిగరేషన్ ఫైల్ లోడ్ చేయబడుతుంది మరియు అన్వయించబడుతుంది. ఉదాహరణకు, ఉచిత మెమరీ అయిపోవడం మరియు నకిలీ I/Oని సృష్టించడం ద్వారా సేవ యొక్క తిరస్కరణకు కారణం కావడానికి, మీరు ప్రారంభంలో బ్లాక్ పరికరాన్ని పేర్కొనవచ్చు ("pkexec /usr/bin/swhkd -d -c /dev/sda") లేదా డేటా యొక్క అనంతమైన స్ట్రీమ్‌ను ఉత్పత్తి చేసే అక్షర పరికరం. ఫైల్‌ను తెరవడానికి ముందు అధికారాలను రీసెట్ చేయడం ద్వారా సమస్య పరిష్కరించబడింది, కానీ పరిష్కారం పూర్తి కాలేదు, ఎందుకంటే వినియోగదారు ID (UID) మాత్రమే రీసెట్ చేయబడింది, కానీ సమూహం ID (GID) అలాగే ఉంటుంది.
  • CVE-2022-27818 – వ్రాయదగిన డైరెక్టరీలో సృష్టించబడిన /tmp/swhkd.sock ఫైల్‌ని ఉపయోగించి Unix సాకెట్ సృష్టించబడింది, ఇది మొదటి దుర్బలత్వం (ఏ వినియోగదారు అయినా /tmp/swhkd.sock సృష్టించవచ్చు మరియు సృష్టించవచ్చు లేదా అంతరాయం కలిగించవచ్చు) వంటి సమస్యలకు దారి తీస్తుంది. కీ ప్రెస్ ఈవెంట్స్).
  • CVE-2022-27817 - ఇన్‌పుట్ ఈవెంట్‌లు అన్ని పరికరాల నుండి మరియు అన్ని సెషన్‌లలో ఆమోదించబడతాయి, అనగా. మరొక వేలాండ్ సెషన్ నుండి లేదా కన్సోల్ నుండి ఒక వినియోగదారు ఇతర వినియోగదారులు హాట్‌కీలను నొక్కినప్పుడు ఈవెంట్‌లను అడ్డుకోవచ్చు.
  • CVE-2022-27816 swhks ప్రక్రియ, swhkd వంటిది, వ్రాయదగిన /tmp డైరెక్టరీలో PID ఫైల్ /tmp/swhks.pidని ఉపయోగిస్తుంది. సమస్య మొదటి దుర్బలత్వాన్ని పోలి ఉంటుంది, కానీ swhks ఒక అన్‌ప్రివిలేజ్డ్ యూజర్ కింద రన్ అవుతున్నందున అంత ప్రమాదకరమైనది కాదు.

మూలం: opennet.ru

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