MÔttetu parandamine viis Spectre haavatavuse osalise likvideerimiseni Linuxi tuumas.

Grsecurity projekti arendajad jagati Ă”petliku looga, mis nĂ€itab, kuidas ettevaatamatu kompilaatori hoiatuste eemaldamine vĂ”ib viia koodi haavatavuste tekkimiseni. Mais pakuti Linuxi kĂ€rgi jaoks vĂ€lja uus parandus Spectre haavatavuse eksploitatsiooni uue vektori jaoks lĂ€bi sĂŒsteemi kutsumise ptrace.

Paranduse testimise kÀigus mÀrkasid arendajad, et kompilaator annab hoiatuse koodi ja mÀÀratluste segamise kohta (struktuur defineeriti pÀrast olemasoleva muutuja vÀÀrtuse mÀÀramist):

int index = n;
if (n ptrace_bps[index];

Linus vÔttis parandus oma master-oksasse, vabanedes hoiatustest, viies muutuja mÀÀratluse if-plokki:

if (n ptrace_bps[index];

Juulis viidi parandused ka stabiilsetesse kerni okstesse 4.4, 4.9, 4.14, 4.19 ja 5.2. Stabiilsete okste hooldajad kohtasid samuti hoiatust ning selle asemel, et kontrollida, kas see on juba Linuse master-oksas lahendatud, tegid nad paranduse ise. Probleem oli selles, et nad, eriti mitte mĂ”eldes, lihtsalt lĂŒkkasid struktuuri mÀÀratluse ĂŒles, nii et array_index_nospec'i kutsumine, mis otseselt kaitseb haavatavuse eest, ei saanud enam struktuuri mÀÀramisest osa ning muutuja "index" asemel kasutati alati muutujat "n":

int index = n;
if (n ptrace_bps[index];
index = array_index_nospec(index, HBP_NUM);

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster