Ang usa ka dali nga pag-ayo miresulta sa usa ka dili kompleto nga pag-ayo alang sa usa ka kahuyang sa Spectre sa Linux kernel

Mga developer sa proyekto sa Grsecurity gipaambit usa ka pasidaan nga sugilanon nga nagpakita kung giunsa ang walay pagtagad nga pagwagtang sa mga pasidaan sa compiler mahimong mosangpot sa mga kahuyang sa code. Sa katapusan sa Mayo, alang sa Linux kernel, gisugyot ang usa ka pag-ayo alang sa usa ka bag-ong vector sa pagpahimulos sa kahuyang sa Spectre pinaagi sa ptrace system call.

Sa proseso sa pagsulay sa patch, ang mga developers nakamatikod nga sa diha nga ang pagtukod, ang compiler nagpakita sa usa ka pasidaan mahitungod sa pagsagol sa code ug mga kahulugan (ang istruktura gihubit human sa code uban sa assign sa usa ka bili sa usa ka kasamtangan nga variable):

int index = n;
kon (n <HBP_NUM) {index = array_index_nospec(index, HBP_NUM); struct perf_event *bp = thread->ptrace_bps[index];

Gidawat ni Linus pagtul-id sa imong master branch, pagpahawa sa gikan sa pasidaan pinaagi sa pagputos sa variable definition sa kung block:

kon (n <HBP_NUM) { int index = array_index_nospec(n, HBP_NUM); struct perf_event *bp = thread->ptrace_bps[index];

Niadtong Hulyo, ang pag-ayo gi-port usab sa 4.4, 4.9, 4.14, 4.19, ug 5.2 stable nga mga sanga sa kernel. Ang stable maintainer nakasugat usab sa pahimangno, ug imbes nga susihon kon naayo na ba kini sa master branch ni Linus, sila mismo ang nagtapik niini. Ang problema mao nga sila, sa walay daghang paghunahuna, lang mibalhin structure definition up, aron ang tawag sa array_index_nospec, nga direktang naghatag og proteksyon batok sa vulnerability, wala na gigamit sa pagpasabot sa structure, ug imbes nga "index" variable, ang "n" variable kanunay gigamit:

int index = n;
kon (n <HBP_NUM ){ struct perf_event *bp = thread->ptrace_bps[index];
index = array_index_nospec(index, HBP_NUM);

Source: opennet.ru

Idugang sa usa ka comment