സ്പെക്ടർ, മെൽറ്റ്ഡൗൺ ദുർബലതകൾ കണ്ടെത്തിയ ഗൂഗിളിന്റെ പ്രോജക്ട് സീറോ ടീമിലെ ജാൻ ഹോൺ, കേർണൽ മാലിന്യ ശേഖരണത്തിലെ ഒരു ദുർബലത (CVE-2021-4083) ചൂഷണം ചെയ്യുന്നതിനുള്ള ഒരു സാങ്കേതികത പ്രസിദ്ധീകരിച്ചു. Linuxയുണിക്സ് സോക്കറ്റ് ഫയൽ ഡിസ്ക്രിപ്റ്ററുകൾ ക്ലിയർ ചെയ്യുമ്പോഴുള്ള ഒരു റേസ് അവസ്ഥയാണ് ഈ ദുർബലതയ്ക്ക് കാരണം, കൂടാതെ ഒരു ലോക്കൽ അൺപ്രിവിലേജ്ഡ് ഉപയോക്താവിന് കേർണൽ കോഡ് എക്സിക്യൂട്ട് ചെയ്യാൻ അനുവദിക്കാനും സാധ്യതയുണ്ട്.
യഥാർത്ഥ ചൂഷണങ്ങൾ സൃഷ്ടിക്കാൻ റേസ് അവസ്ഥ പ്രകടമാകുന്ന സമയ വിൻഡോ വളരെ ചെറുതായി കണക്കാക്കപ്പെട്ടിരുന്നതിനാൽ പ്രശ്നം രസകരമാണ്. എന്നിരുന്നാലും, ചൂഷണ സ്രഷ്ടാവിന് ആവശ്യമായ കഴിവുകളും സമയവും ഉണ്ടെങ്കിൽ, തുടക്കത്തിൽ സംശയാസ്പദമായ അത്തരം ദുർബലതകൾ പോലും യഥാർത്ഥ ആക്രമണങ്ങളുടെ ഉറവിടമായി മാറുമെന്ന് പഠനത്തിന്റെ രചയിതാവ് തെളിയിച്ചു. ഒരേസമയം close() ഉം fget() ഉം വിളിക്കുമ്പോൾ സംഭവിക്കുന്ന ഒരു റേസ് അവസ്ഥയെ എങ്ങനെ സൂക്ഷ്മമായ കൃത്രിമത്വങ്ങളിലൂടെ പൂർണ്ണമായും ചൂഷണം ചെയ്യാവുന്ന ഉപയോഗത്തിന് ശേഷമുള്ള ദുർബലതയിലേക്ക് ചുരുക്കാമെന്ന് ജാൻ ഹോൺ തെളിയിച്ചു, ഇത് ഇതിനകം സ്വതന്ത്രമാക്കിയ കേർണൽ ഡാറ്റ ഘടനയിലേക്ക് പ്രവേശനം അനുവദിക്കുന്നു.
close() ഉം fget() ഉം ഒരേസമയം കോൾ ചെയ്ത് ഒരു ഫയൽ ഡിസ്ക്രിപ്റ്റർ അടയ്ക്കുമ്പോൾ ഒരു റേസ് അവസ്ഥ സംഭവിക്കുന്നു. fget() ന് മുമ്പ് close() കോൾ പൂർത്തിയാകാം, ഇത് ഗാർബേജ് കളക്ടറെ ആശയക്കുഴപ്പത്തിലാക്കുന്നു, കാരണം refcount അനുസരിച്ച്, ഫയൽ ഘടനയ്ക്ക് ബാഹ്യ റഫറൻസുകൾ ഉണ്ടാകില്ല, പക്ഷേ അത് ഫയൽ ഡിസ്ക്രിപ്റ്ററിൽ തന്നെ അറ്റാച്ചുചെയ്തിരിക്കും. ഇതിനർത്ഥം ഗാർബേജ് കളക്ടർക്ക് ഘടനയിലേക്ക് എക്സ്ക്ലൂസീവ് ആക്സസ് ഉണ്ടെന്ന് അനുമാനിക്കും, എന്നാൽ വാസ്തവത്തിൽ, ഒരു ചെറിയ സമയത്തേക്ക്, ഫയൽ ഡിസ്ക്രിപ്റ്റർ പട്ടികയിൽ ശേഷിക്കുന്ന എൻട്രി ഇപ്പോഴും ഘടന സ്വതന്ത്രമാകുന്നതിലേക്ക് വിരൽ ചൂണ്ടും.
റേസ് സാഹചര്യങ്ങൾ നേരിടാനുള്ള സാധ്യത വർദ്ധിപ്പിക്കുന്നതിന്, നിരവധി തന്ത്രങ്ങൾ ഉപയോഗിച്ചു, ഇത് സിസ്റ്റം-നിർദ്ദിഷ്ട ഒപ്റ്റിമൈസേഷനുകൾ അവതരിപ്പിച്ചതോടെ ചൂഷണ വിജയ നിരക്ക് 30% ആയി വർദ്ധിപ്പിക്കാൻ അനുവദിച്ചു. ഉദാഹരണത്തിന്, ഫയൽ ഡിസ്ക്രിപ്റ്ററുകളുള്ള ഒരു ഘടനയിലേക്ക് പ്രവേശിക്കാൻ എടുക്കുന്ന സമയം നൂറുകണക്കിന് നാനോസെക്കൻഡ് വർദ്ധിപ്പിക്കുന്നതിന്, മറ്റൊരു സിപിയു കോറിലെ പ്രവർത്തനത്താൽ കാഷെ മലിനമാക്കി പ്രോസസ്സർ കാഷെയിൽ നിന്ന് ഡാറ്റ നീക്കം ചെയ്തു. വേഗതയേറിയ സിപിയു കാഷെയിൽ നിന്ന് ഘടന വീണ്ടെടുക്കുന്നതിന് പകരം മെമ്മറിയിൽ നിന്ന് ഘടന വീണ്ടെടുക്കാൻ ഇത് അനുവദിച്ചു.
രണ്ടാമത്തെ പ്രധാന സവിശേഷത, റേസ് അവസ്ഥ വിപുലീകരിക്കുന്നതിന് ഹാർഡ്വെയർ ടൈമർ സൃഷ്ടിക്കുന്ന ഇന്ററപ്റ്റുകളുടെ ഉപയോഗമായിരുന്നു. റേസ് അവസ്ഥയിൽ ഇന്ററപ്റ്റ് ഹാൻഡ്ലർ പ്രവർത്തനക്ഷമമാക്കുന്നതിനും, കോഡ് എക്സിക്യൂഷൻ താൽക്കാലികമായി തടസ്സപ്പെടുത്തുന്നതിനും വേണ്ടിയാണ് സമയം തിരഞ്ഞെടുത്തത്. നിയന്ത്രണം തിരികെ നൽകുന്നത് കൂടുതൽ വൈകിപ്പിക്കാൻ, ഇപോൾ ഏകദേശം 50 വെയ്റ്റ്ക്യൂ എൻട്രികൾ സൃഷ്ടിച്ചു, ഇന്ററപ്റ്റ് ഹാൻഡ്ലറിൽ ആവർത്തനം ആവശ്യമായി വന്നു.
90 ദിവസത്തെ വെളിപ്പെടുത്താത്ത കാലയളവിനുശേഷം ഈ ദുർബലതയ്ക്കുള്ള ചൂഷണ സാങ്കേതികത വെളിപ്പെടുത്തി. കേർണൽ 2.6.32 മുതൽ പ്രശ്നം പ്രകടമായി, ഡിസംബർ ആദ്യം പരിഹരിച്ചു. കേർണൽ 5.16 ൽ ഈ പരിഹാരം ഉൾപ്പെടുത്തിയിരുന്നു, കൂടാതെ വിതരണങ്ങളിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന എൽടിഎസ് കേർണൽ ബ്രാഞ്ചുകളിലേക്കും കേർണൽ പാക്കേജുകളിലേക്കും ബാക്ക്പോർട്ട് ചെയ്തു. ശ്രദ്ധേയമായി, സമാനമായ ഒരു പ്രശ്നമായ CVE-2021-0920 ന്റെ വിശകലനത്തിനിടയിലാണ് ദുർബലത കണ്ടെത്തിയത്, ഇത് MSG_PEEK ഫ്ലാഗ് കൈകാര്യം ചെയ്യുമ്പോൾ മാലിന്യ ശേഖരണത്തെ ബാധിക്കുന്നു.
അവലംബം: opennet.ru
