Mar thoradh air fuasgladh broth chaidh fuasgladh neo-choileanta a dhèanamh airson so-leòntachd Specter anns an kernel Linux

Luchd-leasachaidh a’ phròiseict Grsecurity co-roinnte sgeulachd rabhaidh a sheallas mar a dh’ fhaodadh cuir às gu faiceallach rabhaidhean cruinneachaidh gu so-leòntachd sa chòd. Aig deireadh a ’Chèitein, airson an kernel Linux, chaidh fuasgladh a mholadh airson vectar ùr de bhith a’ gabhail brath air so-leòntachd Specter tro ghairm siostam ptrace.

Ann a bhith a’ dèanamh deuchainn air a’ phaiste, mhothaich an luchd-leasachaidh, nuair a bhios iad a’ togail, gu bheil an compiler a’ nochdadh rabhadh mu bhith a’ measgachadh còd agus mìneachaidhean (chaidh an structar a mhìneachadh às deidh a’ chòd le bhith a’ sònrachadh luach do chaochladair a th’ ann mar-thà):

int clàr-amais = n;
ma tha (n < HBP_NUM) { index = array_index_nospec(clàr-innse, HBP_NUM); structar perf_event * bp = thread-> ptrace_bps [clàr-amais];

Ghabh Linus ris ceartachadh do d' mhaighstir, a' faighinn air falbh bhon rabhadh le bhith a’ pasgadh a’ mhìneachadh caochlaideach ann am bloca ma tha:

ma tha (n < HBP_NUM) { int index = array_index_nospec(n, HBP_NUM); structar perf_event * bp = thread-> ptrace_bps [clàr-amais];

Anns an Iuchar, chaidh an suidheachadh a ghluasad cuideachd gu meuran kernel 4.4, 4.9, 4.14, 4.19, agus 5.2 seasmhach. Thachair an luchd-gleidhidh stàbaill ris an rabhadh cuideachd, agus an àite a bhith a’ dèanamh cinnteach an robh e stèidhichte ann am prìomh mheur Linus mu thràth, ghlèidh iad iad fhèin. Is e an duilgheadas a th 'ann gu bheil iad, gun mòran smaoineachaidh, dìreach ghluais mìneachadh structar suas, gus nach bi a’ ghairm gu array_index_nospec, a tha gu dìreach a’ toirt dìon an aghaidh so-leòntachd, air a chleachdadh tuilleadh ann am mìneachadh an structair, agus an àite an caochladair “clàr-amais”, chaidh an caochladair “n” a chleachdadh an-còmhnaidh:

int clàr-amais = n;
ma tha (n < HBP_NUM ){ structar perf_event * bp = thread-> ptrace_bps [clàr-amais];
clàr-amais = array_index_nospec(clàr-innse, HBP_NUM);

Source: fosgailtenet.ru

Cuir beachd ann