റൂട്ട് ആക്‌സസ് അനുവദിക്കുന്ന നെറ്റ്‌വർക്ക്-ഡിസ്പാച്ചറിലെ കേടുപാടുകൾ

Microsoft-ൽ നിന്നുള്ള സുരക്ഷാ ഗവേഷകർ നിംബസ്‌പൺ എന്ന കോഡ് നാമമുള്ള നെറ്റ്‌വർക്ക്-ഡിസ്‌പാച്ചർ സേവനത്തിൽ രണ്ട് കേടുപാടുകൾ (CVE-2022-29799, CVE-2022-29800) തിരിച്ചറിഞ്ഞു, ഇത് ഒരു പ്രത്യേകാവകാശമില്ലാത്ത ഉപയോക്താവിനെ റൂട്ട് പ്രത്യേകാവകാശങ്ങളോടെ അനിയന്ത്രിതമായ കമാൻഡുകൾ നടപ്പിലാക്കാൻ അനുവദിക്കുന്നു. നെറ്റ്‌വർക്ക്ഡ്-ഡിസ്പാച്ചർ 2.2-ന്റെ റിലീസിൽ പ്രശ്നം പരിഹരിച്ചു. ഡിസ്ട്രിബ്യൂഷനുകൾ വഴിയുള്ള അപ്‌ഡേറ്റുകളുടെ പ്രസിദ്ധീകരണത്തെക്കുറിച്ച് ഇതുവരെ ഒരു വിവരവുമില്ല (Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux).

നെറ്റ്‌വർക്ക് പാരാമീറ്ററുകൾ കോൺഫിഗർ ചെയ്യുന്നതിന് systemd-networkd പശ്ചാത്തല പ്രോസസ്സ് ഉപയോഗിക്കുന്ന ഉബുണ്ടു ഉൾപ്പെടെയുള്ള നിരവധി ലിനക്സ് വിതരണങ്ങളിൽ Networkd-dispatcher ഉപയോഗിക്കുന്നു, കൂടാതെ NetworkManager-dispatcher പോലെയുള്ള പ്രവർത്തനങ്ങൾ ചെയ്യുന്നു, അതായത്. ഒരു നെറ്റ്‌വർക്ക് കണക്ഷന്റെ അവസ്ഥ മാറുമ്പോൾ സ്‌ക്രിപ്റ്റുകൾ സമാരംഭിക്കുന്നതിൽ ഏർപ്പെട്ടിരിക്കുന്നു, ഉദാഹരണത്തിന്, പ്രധാന നെറ്റ്‌വർക്ക് കണക്ഷൻ സ്ഥാപിച്ചതിന് ശേഷം ഒരു VPN സമാരംഭിക്കാൻ ഇത് ഉപയോഗിക്കുന്നു.

നെറ്റ്‌വർക്ക്-ഡിസ്പാച്ചറുമായി ബന്ധപ്പെട്ട പശ്ചാത്തല പ്രക്രിയ റൂട്ടായി പ്രവർത്തിക്കുകയും ഡി-ബസ് വഴി ഇവന്റ് സിഗ്നലുകൾ സ്വീകരിക്കുകയും ചെയ്യുന്നു. നെറ്റ്‌വർക്ക് കണക്ഷനുകളുടെ അവസ്ഥയിലെ മാറ്റങ്ങളുമായി ബന്ധപ്പെട്ട ഇവന്റുകളെക്കുറിച്ചുള്ള വിവരങ്ങൾ systemd-networkd സേവനം അയയ്ക്കുന്നു. പ്രത്യേകാവകാശമില്ലാത്ത ഉപയോക്താക്കൾക്ക് നിലവിലില്ലാത്ത ഒരു സ്റ്റേറ്റ് ഇവന്റ് സൃഷ്ടിക്കാനും അവരുടെ സ്‌ക്രിപ്റ്റ് റൂട്ടായി എക്‌സിക്യൂട്ട് ചെയ്യാനും കഴിയും എന്നതാണ് പ്രശ്‌നം.

Systemd-networkd രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത് /etc/networkd-dispatcher ഡയറക്‌ടറിയിൽ സ്ഥിതി ചെയ്യുന്ന സിസ്റ്റം ഹാൻഡ്‌ലർ സ്‌ക്രിപ്റ്റുകൾ മാത്രം പ്രവർത്തിപ്പിക്കാനാണ്, ഉപയോക്തൃ മാറ്റിസ്ഥാപിക്കുന്നതിന് ലഭ്യമല്ല, എന്നാൽ ഫയൽ പാത്ത് പ്രോസസ്സിംഗ് കോഡിലെ കേടുപാടുകൾ (CVE-2022-29799) കാരണം, ഒരു പരിധിക്ക് പുറത്തുള്ള അടിസ്ഥാന ഡയറക്‌ടറിയും അനിയന്ത്രിതമായ സ്‌ക്രിപ്‌റ്റുകൾ സമാരംഭിക്കുന്നതിനുള്ള സാധ്യതയും. പ്രത്യേകിച്ചും, സ്ക്രിപ്റ്റിലേക്കുള്ള ഫയൽ പാത രൂപപ്പെടുത്തുമ്പോൾ, ഡി-ബസ് വഴി ട്രാൻസ്മിറ്റ് ചെയ്ത ഓപ്പറേഷണൽ സ്റ്റേറ്റ്, അഡ്മിനിസ്ട്രേറ്റീവ് സ്റ്റേറ്റ് മൂല്യങ്ങൾ ഉപയോഗിച്ചു, അതിൽ പ്രത്യേക പ്രതീകങ്ങൾ മായ്‌ച്ചിട്ടില്ല. ആക്രമണകാരിക്ക് സ്വന്തം അവസ്ഥ സൃഷ്ടിക്കാൻ കഴിയും, അതിന്റെ പേരിൽ “../” പ്രതീകങ്ങൾ അടങ്ങിയിരിക്കുകയും നെറ്റ്‌വർക്ക്-ഡിസ്പാച്ചർ കോൾ മറ്റൊരു ഡയറക്‌ടറിയിലേക്ക് റീഡയറക്‌ട് ചെയ്യുകയും ചെയ്യും.

രണ്ടാമത്തെ അപകടസാധ്യത (CVE-2022-29800) ഒരു റേസ് അവസ്ഥയുമായി ബന്ധപ്പെട്ടതാണ് - സ്‌ക്രിപ്റ്റ് പാരാമീറ്ററുകൾ (റൂട്ടിന്റേത്) പരിശോധിച്ച് അത് പ്രവർത്തിപ്പിക്കുന്നതിന് ഇടയിൽ, ഫയൽ മാറ്റിസ്ഥാപിക്കുന്നതിനും പരിശോധന മറികടക്കുന്നതിനും മതിയായ സമയമുണ്ടായിരുന്നു. സ്ക്രിപ്റ്റ് റൂട്ട് ഉപയോക്താവിന്റെതാണ്. കൂടാതെ, subprocess.Popen കോൾ വഴി സ്ക്രിപ്റ്റുകൾ പ്രവർത്തിപ്പിക്കുമ്പോൾ ഉൾപ്പെടെയുള്ള പ്രതീകാത്മക ലിങ്കുകൾ നെറ്റ്‌വർക്ക്-ഡിസ്പാച്ചർ പരിശോധിച്ചില്ല, ഇത് ആക്രമണത്തിന്റെ ഓർഗനൈസേഷനെ ഗണ്യമായി ലളിതമാക്കി.

പ്രവർത്തന സാങ്കേതികത:

  • “/tmp/nimbuspwn” എന്ന ഡയറക്‌ടറിയും “/tmp/nimbuspwn/poc.d” എന്ന പ്രതീകാത്മക ലിങ്കും “/sbin” ഡയറക്‌ടറിയിലേക്ക് ചൂണ്ടിക്കാണിച്ച് സൃഷ്‌ടിക്കപ്പെട്ടു, ഇത് റൂട്ടിന്റെ ഉടമസ്ഥതയിലുള്ള എക്‌സിക്യൂട്ടബിൾ ഫയലുകൾ പരിശോധിക്കാൻ ഉപയോഗിക്കുന്നു.
  • “/sbin”-ൽ നിന്നുള്ള എക്‌സിക്യൂട്ടബിൾ ഫയലുകൾക്കായി, അതേ പേരിലുള്ള ഫയലുകൾ “/tmp/nimbuspwn” ഡയറക്‌ടറിയിൽ സൃഷ്‌ടിക്കുന്നു, ഉദാഹരണത്തിന്, “/sbin/vgs” ഫയലിനായി “/tmp/nimbuspwn/vgs” എക്‌സിക്യൂട്ടബിൾ ഫയൽ ഒരു പ്രത്യേകാവകാശമില്ലാത്ത ഉപയോക്താവിന്റെ ഉടമസ്ഥതയിലുള്ള, ആക്രമണകാരി പ്രവർത്തിപ്പിക്കാൻ ആഗ്രഹിക്കുന്ന കോഡ് അതിൽ സ്ഥാപിച്ചിരിക്കുന്നു.
  • OperationalState-ൽ "../../../tmp/nimbuspwn/poc" എന്ന മൂല്യത്തെ സൂചിപ്പിക്കുന്ന നെറ്റ്‌വർക്ക്-ഡിസ്പാച്ചർ പ്രോസസിലേക്ക് D-Bus വഴി ഒരു സിഗ്നൽ അയയ്ക്കുന്നു. "org.freedesktop.network1" എന്ന നെയിംസ്പേസിൽ ഒരു സിഗ്നൽ അയയ്‌ക്കുന്നതിന്, അതിന്റെ ഹാൻഡ്‌ലറുകളെ systemd-networkd-ലേക്ക് ബന്ധിപ്പിക്കുന്നതിനുള്ള കഴിവ് ഉപയോഗിച്ചു, ഉദാഹരണത്തിന്, gpgv അല്ലെങ്കിൽ epmd ഉപയോഗിച്ചുള്ള കൃത്രിമങ്ങൾ വഴി, അല്ലെങ്കിൽ നിങ്ങൾക്ക് systemd-networkd എന്ന വസ്തുത പ്രയോജനപ്പെടുത്താം. സ്ഥിരസ്ഥിതിയായി പ്രവർത്തിക്കുന്നില്ല (ഉദാഹരണത്തിന്, Linux Mint-ൽ).
  • സിഗ്നൽ ലഭിച്ചതിനുശേഷം, റൂട്ട് ഉപയോക്താവിന്റെ ഉടമസ്ഥതയിലുള്ള എക്സിക്യൂട്ടബിൾ ഫയലുകളുടെ ഒരു ലിസ്റ്റ് Networkd-dispatcher നിർമ്മിക്കുന്നു, കൂടാതെ "/etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d" എന്ന ഡയറക്ടറിയിൽ ലഭ്യമാണ്, ഇത് യഥാർത്ഥത്തിൽ "/sbin" ലേക്ക് ലിങ്ക് ചെയ്യുന്നു.
  • ഫയലുകളുടെ ലിസ്റ്റ് ലഭിച്ചു, എന്നാൽ സ്ക്രിപ്റ്റ് ഇതുവരെ സമാരംഭിച്ചിട്ടില്ലാത്ത നിമിഷത്തിൽ, പ്രതീകാത്മക ലിങ്ക് “/tmp/nimbuspwn/poc.d” എന്നതിൽ നിന്ന് “/tmp/nimbuspwn” ലേക്ക് റീഡയറക്‌ട് ചെയ്യുകയും നെറ്റ്‌വർക്ക്-ഡിസ്പാച്ചർ ലോഞ്ച് ചെയ്യുകയും ചെയ്യും. റൂട്ട് അവകാശങ്ങളോടെ ആക്രമണകാരി ഹോസ്റ്റ് ചെയ്ത സ്ക്രിപ്റ്റ്.

റൂട്ട് ആക്‌സസ് അനുവദിക്കുന്ന നെറ്റ്‌വർക്ക്-ഡിസ്പാച്ചറിലെ കേടുപാടുകൾ


അവലംബം: opennet.ru

ഒരു അഭിപ്രായം ചേർക്കുക