Ko tetahi papaki kino i whakaarohia i puta he whakatikatika kore mo te whakaraeraetanga o te Specter i roto i te kernel Linux.

Nga Kaihanga o te kaupapa Grsecurity tohaina he korero whakatupato e whakaatu ana me pehea te whakakore i nga whakatupato whakahiato ka arahi ki nga whakaraeraetanga o te waehere. I te mutunga o Haratua, i whakaarohia he whakatika mo te kakano Linux mo tetahi vector hou mo te whakaraeraetanga o te Specter na roto i te waea ptrace system.

I a ia e whakamatautau ana i te papaki, i kite nga kaihanga i te wa e hanga ana, ka whakaatuhia e te kaitoi he whakatupato mo te whakaranu i nga waehere me nga whakamaarama (i tautuhia te hanganga i muri i te waehere, ka tautapa he uara ki tetahi taurangi o naianei):

int taupū = n;
ki te (n <HBP_NUM) { taupū = array_index_nospec(taupū, HBP_NUM); struct perf_event *bp = miro->ptrace_bps[index];

I whakaae a Linus whakatika ki to peka rangatira, kua whakakorea atu mai i te whakatupato ma te nuku i te whakamaramatanga taurangi ki te paraka:

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

I te marama o Hūrae, i tukuna ano te whakatika ki nga manga kernel pumau 4.4, 4.9, 4.14, 4.19 me 5.2. I tutaki ano nga kai tiaki o nga manga taumau i te whakatupato, a, kaore i te tirotirohia mena kua oti te whakatika ki roto i te peka matua o Linus, na ratou ano i whakatika. Ko te raruraru ko te kore e tino whakaaro, ko ratou noa neke te tautuhi i te hanganga ake, kia kore ai e whakamahia te piiraa ki array_index_nospec, e tiaki tika ana i te whakaraeraetanga, i te wa e tautuhi ana i te hanganga, hei utu mo te taurangi "taupu" ka whakamahia tonu te taurangi "n":

int taupū = n;
ki te (n <HBP_NUM ){ struct perf_event *bp = miro->ptrace_bps[index];
taupū = array_index_nospec(taupū, HBP_NUM);

Source: opennet.ru

Tāpiri i te kōrero