ʻO kahi pānaʻi noʻonoʻo maikaʻi ʻole i hopena i kahi hoʻoponopono piha ʻole no ka nāwaliwali o Specter i ka kernel Linux.

Nā mea hoʻomohala o ka papahana Grsecurity kaʻana like he moʻolelo hoʻomanaʻo e hōʻike ana i ke ʻano o ka hoʻopau ʻole ʻia ʻana o nā ʻōlelo aʻoaʻo compiler hiki ke alakaʻi i nā nāwaliwali o ke code. I ka hopena o Mei, ua noi ʻia kahi hoʻoponopono no ka kernel Linux no kahi vector hou o ka hoʻohana ʻana i ka nāwaliwali o Specter ma o ka ptrace system call.

ʻOiai e hoʻāʻo ana i ka patch, ʻike nā mea hoʻomohala i ke kūkulu ʻana, hōʻike ka mea hōʻuluʻulu i kahi ʻōlelo aʻo e pili ana i ka hui ʻana i nā code a me nā wehewehe (ua wehewehe ʻia ke ʻano ma hope o ke code, e hāʻawi ana i kahi waiwai i kahi hoʻololi e kū nei):

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

Ua ʻae ʻo Linus hooponopono ana i kou lālā haku, i ka hemo ana mai ka ʻōlelo aʻo ʻana ma ka hoʻoneʻe ʻana i ka wehewehe wehewehe i kahi poloka inā:

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

I Iulai, ua hoʻokomo ʻia ka hoʻoponopono i nā lālā kernel paʻa 4.4, 4.9, 4.14, 4.19 a me 5.2. Ua hālāwai pū ka poʻe mālama i nā lālā paʻa i ka ʻōlelo aʻo, a ma kahi o ka nānā ʻana inā ua hoʻopaʻa ʻia i loko o ka lālā kumu o Linus, ua hana lākou iā lākou iho. ʻO ka pilikia, me ka noʻonoʻo ʻole, ʻo lākou wale nō neʻe ka wehewehe ʻana i ke kūkulu ʻana, no laila ʻaʻole i hoʻohana hou ʻia ke kelepona iā array_index_nospec, ka mea e hāʻawi pololei i ka palekana i ka nāwaliwali, i ka wehewehe ʻana i ke ʻano, a ma kahi o ka "index" hoʻololi i ka "n" e hoʻohana mau ʻia:

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

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka