Xerabbûna 0-rojî ya Linux IPv6 stackê ku destûrê dide têkçûna kernelê ya dûr

Agahdarî li ser zerariyek nepatched (0-roj) (CVE-2023-2156) di kernel Linux de hate eşkere kirin ku destûrê dide sekinandina pergalê bi şandina pakêtên IPv6 yên taybetî yên çêkirî (pakêta mirinê). Pirsgirêk tenê dema ku piştgirî ji bo protokola RPL (Protokola Rêvekirinê ji bo Tora Kêm-hêz û Zindan) were çalak kirin, ku ji hêla xwerû ve di belavkirinan de neçalak e û bi giranî li ser cîhazên pêvekirî yên ku di torên bêtêl de bi windabûna pakê ya zêde dixebitin tê bikar anîn.

Zehfbûn ji ber nerastkirina daneyên derveyî di koda parskirina protokola RPL de çêdibe, ku dibe sedema têkçûnek dadrêsî û kernel ber bi rewşek panîkê ve diçe. Dema ku daneyên ku di encama parskirina sernavê pakêtê ya IPv6 RPL de di strûktûra k_buff (Socket Tampon) de hatine bi cîh kirin, heke qada CmprI li ser 15-ê were danîn, qada Segleft wekî 1-ê û CmprE were danîn 0-ê, vektora 48-byte ya bi navnîşanan vekêşandî ye û dema ku rewş ji bo 528aritan têra xwe bufferî nebe, tê vekêşandin. Di vê rewşê de, fonksiyona skb_push ku tê bikar anîn da ku daneyan di nav strukturê de bikişîne, ji bo mezinahiya nehevseng a daneyan û tamponê kontrol dike, rewşek panîkê çêdike da ku pêşî li nivîsandina tamponê bigire.

Nimûneya îstîsmarê: # Em ê Scapy bikar bînin da ku pakêtê ji scapy çêkin.all import * soketê import # IPv6-ê ji navrûya LAN-a xwe bikar bînin DST_ADDR = sys.argv[1] SRC_ADDR = DST_ADDR # Ji bo şandina pakêtê em soketan bikar tînin sockfd = socket.socket.IPROP6, SOCET. _RAW) # Pakêtê biafirîne # Tîp = 3 vê pakêtê RPL dike # Navnîşan 3 navnîşanan dihewîne, lê ji ber ku CmprI 15 e, # her okteta her du navnîşanên pêşîn wekî navnîşanek pêçandî tê derman kirin # Segleft = 1 ji bo ku zêdekirinê bişopîne # lastentry = 0xfmprE ji bo CmprE torc0 û Cmpr set = 15xfmprE DR.

Hêjayî gotinê ye ku pêşdebirên kernelê dîsa di Çileya 2022-an de di derbarê qelsbûnê de agahdar bûne û di nav 15 mehên borî de wan sê caran hewl dane ku pirsgirêkê çareser bikin bi derxistina pêçanan di Îlona 2022, Cotmeha 2022 û Nîsana 2023-an de, lê her carê rastkirin têrê nedikir û qelsî dikaribû ji nû ve hilberîne. Di dawiyê de, projeya ZDI, ku xebata ji bo rakirina xizaniyê koordîne kir, biryar da ku agahdariya hûrgulî di derbarê qelsiyê de eşkere bike, bêyî ku li bendê bimîne ku paçek xebitandinê di kernelê de xuya bibe.

Ji ber vê yekê, qelsî hîn jî nehatiye paqij kirin. Tevlî pêça ku di kernel 6.4-rc2 de tê de ne bandorker e. Ji bikarhêneran re tê pêşniyar kirin ku verast bikin ku protokola RPL li ser pergalên wan nayê bikar anîn, ku dikare bi karanîna sysctl -a | grep -i rpl_seg_enabled

Source: opennet.ru

Add a comment