ഐപി വിലാസ പരിശോധനയെ മറികടക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന റസ്റ്റ്, ഗോ ഭാഷകളുടെ നെറ്റ്‌വർക്ക് ലൈബ്രറികളിലെ അപകടസാധ്യത

അഡ്രസ് പാഴ്സിംഗ് ഫംഗ്ഷനുകളിൽ ഒക്ടൽ അക്കങ്ങളുള്ള ഐപി വിലാസങ്ങളുടെ തെറ്റായ പ്രോസസ്സിംഗുമായി ബന്ധപ്പെട്ട കേടുപാടുകൾ റസ്റ്റ് ആൻഡ് ഗോ ഭാഷകളുടെ സ്റ്റാൻഡേർഡ് ലൈബ്രറികളിൽ തിരിച്ചറിഞ്ഞിട്ടുണ്ട്. ആപ്ലിക്കേഷനുകളിലെ സാധുവായ വിലാസങ്ങൾക്കായുള്ള പരിശോധനകൾ ബൈപാസ് ചെയ്യുന്നത് കേടുപാടുകൾ സാധ്യമാക്കുന്നു, ഉദാഹരണത്തിന്, SSRF (സെർവർ-സൈഡ് അഭ്യർത്ഥന വ്യാജം) ആക്രമണങ്ങൾ നടത്തുമ്പോൾ ലൂപ്പ്ബാക്ക് ഇന്റർഫേസ് വിലാസങ്ങളിലേക്കോ (127.xxx) ഇൻട്രാനെറ്റ് സബ്‌നെറ്റുകളിലേക്കോ ആക്‌സസ് സംഘടിപ്പിക്കുന്നതിന്. ലൈബ്രറികളിലെ നോഡ്-നെറ്റ്മാസ്ക് (JavaScript, CVE-2021-28918, CVE-2021-29418), private-ip (JavaScript, CVE-2020-28360), ipaddress (Python, CVE-) എന്നിവയിൽ മുമ്പ് കണ്ടെത്തിയ പ്രശ്നങ്ങളുടെ ചക്രം ഈ കേടുപാടുകൾ തുടരുന്നു. 2021-29921 ), ഡാറ്റ:: സാധൂകരിക്കുക:: IP (Perl, CVE-2021-29662), Net:: Netmask (Perl, CVE-2021-29424).

സ്പെസിഫിക്കേഷൻ അനുസരിച്ച്, പൂജ്യത്തിൽ ആരംഭിക്കുന്ന IP വിലാസ സ്ട്രിംഗ് മൂല്യങ്ങളെ ഒക്ടൽ നമ്പറുകളായി വ്യാഖ്യാനിക്കണം, എന്നാൽ പല ലൈബ്രറികളും ഇത് കണക്കിലെടുക്കാതെ പൂജ്യം നിരസിക്കുകയും മൂല്യത്തെ ഒരു ദശാംശ സംഖ്യയായി കണക്കാക്കുകയും ചെയ്യുന്നു. ഉദാഹരണത്തിന്, ഒക്ടലിലെ 0177 എന്ന സംഖ്യ ദശാംശത്തിലെ 127 ന് തുല്യമാണ്. "0177.0.0.1" എന്ന മൂല്യം വ്യക്തമാക്കിക്കൊണ്ട് ഒരു ആക്രമണകാരിക്ക് ഒരു ഉറവിടം അഭ്യർത്ഥിക്കാൻ കഴിയും, അത് ദശാംശ നൊട്ടേഷനിൽ "127.0.0.1" ന് തുല്യമാണ്. പ്രശ്‌നമുള്ള ലൈബ്രറിയാണ് ഉപയോഗിക്കുന്നതെങ്കിൽ, 0177.0.0.1 എന്ന വിലാസം സബ്‌നെറ്റ് 127.0.0.1/8-ലാണെന്ന് ആപ്ലിക്കേഷൻ കണ്ടെത്തുകയില്ല, എന്നാൽ വാസ്തവത്തിൽ, ഒരു അഭ്യർത്ഥന അയയ്‌ക്കുമ്പോൾ, അതിന് “0177.0.0.1” എന്ന വിലാസം ആക്‌സസ് ചെയ്യാൻ കഴിയും. നെറ്റ്‌വർക്ക് പ്രവർത്തനങ്ങൾ 127.0.0.1 ആയി പ്രോസസ്സ് ചെയ്യും. സമാനമായ രീതിയിൽ, "012.0.0.1" ("10.0.0.1" ന് തുല്യമായത്) പോലുള്ള മൂല്യങ്ങൾ വ്യക്തമാക്കിക്കൊണ്ട് നിങ്ങൾക്ക് ഇൻട്രാനെറ്റ് വിലാസങ്ങളിലേക്കുള്ള ആക്സസ് പരിശോധിക്കുന്നത് വഞ്ചിക്കാം.

റസ്റ്റിൽ, സ്റ്റാൻഡേർഡ് ലൈബ്രറി "std::net" ഒരു പ്രശ്നം ബാധിച്ചു (CVE-2021-29922). ഈ ലൈബ്രറിയുടെ ഐപി അഡ്രസ് പാഴ്‌സർ വിലാസത്തിലെ മൂല്യങ്ങൾക്ക് മുമ്പായി പൂജ്യം നിരസിച്ചു, എന്നാൽ മൂന്ന് അക്കങ്ങളിൽ കൂടുതൽ വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ മാത്രം, ഉദാഹരണത്തിന്, "0177.0.0.1" ഒരു അസാധുവായ മൂല്യമായും തെറ്റായ ഫലമായും കാണപ്പെടും. 010.8.8.8, 127.0.026.1 എന്നിവയ്ക്കുള്ള പ്രതികരണമായി തിരികെ നൽകും. ഉപയോക്തൃ-നിർദ്ദിഷ്‌ട വിലാസങ്ങൾ പാഴ്‌സ് ചെയ്യുമ്പോൾ std::net::IpAddr ഉപയോഗിക്കുന്ന അപ്ലിക്കേഷനുകൾ SSRF (സെർവർ-സൈഡ് അഭ്യർത്ഥന വ്യാജം), RFI (റിമോട്ട് ഫയൽ ഉൾപ്പെടുത്തൽ), LFI (ലോക്കൽ ഫയൽ ഉൾപ്പെടുത്തൽ) ആക്രമണങ്ങൾക്ക് വിധേയമാകാൻ സാധ്യതയുണ്ട്. റസ്റ്റ് 1.53.0 ബ്രാഞ്ചിൽ കേടുപാടുകൾ പരിഹരിച്ചു.

ഐപി വിലാസ പരിശോധനയെ മറികടക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന റസ്റ്റ്, ഗോ ഭാഷകളുടെ നെറ്റ്‌വർക്ക് ലൈബ്രറികളിലെ അപകടസാധ്യത

Go-യിൽ, സാധാരണ ലൈബ്രറി "നെറ്റ്" ബാധിച്ചു (CVE-2021-29923). net.ParseCIDR ബിൽറ്റ്-ഇൻ ഫംഗ്‌ഷൻ, ഒക്ടൽ നമ്പറുകൾക്ക് മുമ്പുള്ള പൂജ്യങ്ങളെ പ്രോസസ്സ് ചെയ്യുന്നതിനുപകരം ഒഴിവാക്കുന്നു. ഉദാഹരണത്തിന്, ഒരു ആക്രമണകാരിക്ക് 00000177.0.0.1 മൂല്യം കൈമാറാൻ കഴിയും, അത് net.ParseCIDR(00000177.0.0.1/24) ഫംഗ്‌ഷനിൽ പരിശോധിക്കുമ്പോൾ, 177.0.0.1/24 ആയി പാഴ്‌സ് ചെയ്യപ്പെടും, 127.0.0.1/24 എന്നല്ല, 1.16.3/1.17. കുബെർനെറ്റസ് പ്ലാറ്റ്‌ഫോമിലും പ്രശ്‌നം പ്രകടമാകുന്നു. ഗോ റിലീസ് XNUMX, ബീറ്റ XNUMX എന്നിവയിൽ കേടുപാടുകൾ പരിഹരിച്ചിരിക്കുന്നു.

ഐപി വിലാസ പരിശോധനയെ മറികടക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന റസ്റ്റ്, ഗോ ഭാഷകളുടെ നെറ്റ്‌വർക്ക് ലൈബ്രറികളിലെ അപകടസാധ്യത


അവലംബം: opennet.ru

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