Perbaikan rash nyebabake perbaikan sing ora lengkap kanggo kerentanan Spectre ing kernel Linux

Pangembang proyek Grsecurity dituduhake dongeng cautionary sing nduduhake carane eliminasi ceroboh bebaya compiler bisa mimpin kanggo vulnerabilities ing kode. Ing pungkasan Mei, kanggo kernel Linux, ndandani diusulake kanggo vektor anyar eksploitasi kerentanan Spectre liwat panggilan sistem ptrace.

Ing proses nguji tembelan, pangembang weruh yen nalika mbangun, kompiler nampilake bebaya babagan campur kode lan definisi (struktur kasebut ditetepake sawise kode kanthi menehi nilai menyang variabel sing ana):

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

Linus nampi koreksi menyang cabang master sampeyan, nyingkirake saka bebaya kanthi mbungkus definisi variabel ing blok yen:

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

Ing wulan Juli, perbaikan kasebut uga ditransfer menyang cabang kernel stabil 4.4, 4.9, 4.14, 4.19, lan 5.2. Para pangurus stabil uga nemoni peringatan kasebut, lan tinimbang mriksa manawa wis dipasang ing cabang master Linus, dheweke nambal dhewe. Masalah iku padha, tanpa mikir akeh, mung dipindhah definisi struktur munggah, supaya telpon kanggo array_index_nospec, sing langsung menehi pangayoman marang kerentanan, ora digunakake maneh ing definisi struktur, lan tinimbang variabel "indeks", variabel "n" tansah digunakake:

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

Source: opennet.ru

Add a comment