Fix-raxx irriżulta f'soluzzjoni mhux kompluta għal vulnerabbiltà Spectre fil-kernel tal-Linux

Iżviluppaturi tal-proġett Grsecurity maqsuma rakkont ta' kawtela li juri kif l-eliminazzjoni bla ħsieb tat-twissijiet tal-kompilatur tista' twassal għal vulnerabbiltajiet fil-kodiċi. Fl-aħħar ta 'Mejju, ġiet proposta soluzzjoni għall-kernel Linux għal vettur ġdid ta' sfruttament tal-vulnerabbiltà Spectre permezz tas-sejħa tas-sistema ptrace.

Waqt l-ittestjar tal-garża, l-iżviluppaturi nnotaw li meta jibni, il-kompilatur juri twissija dwar it-taħlit tal-kodiċi u d-definizzjonijiet (l-istruttura kienet definita wara l-kodiċi, li jassenja valur għal varjabbli eżistenti):

int indiċi = n;
jekk (n < HBP_NUM) { indiċi = array_index_nospec (indiċi, HBP_NUM); struct perf_event *bp = thread->ptrace_bps[indiċi];

Linus aċċettat korrezzjoni lill-fergħa kaptan tiegħek, wara li teħles minn mit-twissija billi tmexxi d-definizzjoni varjabbli għal blokka if:

jekk (n < HBP_NUM) { int indiċi = array_index_nospec (n, HBP_NUM); struct perf_event *bp = thread->ptrace_bps[indiċi];

F'Lulju, it-tiswija ġiet ukoll portata għall-fergħat stabbli tal-qalba 4.4, 4.9, 4.14, 4.19 u 5.2. Il-mantenituri tal-fergħat stabbli wkoll iltaqgħu mat-twissija u, minflok ma ċċekkjaw biex jaraw jekk kienx diġà rranġat fil-fergħa kaptan ta’ Linus, għamlu tiswija huma stess. Il-problema hija li mingħajr ma verament jaħsbu dwarha, huma biss imċaqlaq tiddefinixxi l-istruttura 'l fuq, sabiex is-sejħa għal array_index_nospec, li tipprovdi direttament protezzjoni kontra l-vulnerabbiltà, ma tibqax tintuża meta tiddefinixxi l-istruttura, u minflok il-varjabbli "indiċi" dejjem tintuża l-varjabbli "n":

int indiċi = n;
jekk (n < HBP_NUM ){ struct perf_event *bp = thread->ptrace_bps[indiċi];
indiċi = array_index_nospec (indiċi, HBP_NUM);

Sors: opennet.ru

Żid kumment