Une correction irréfléchie a conduit à une élimination incomplÚte de la vulnérabilité Spectre dans le noyau Linux.

Les dĂ©veloppeurs du projet Grsecurity partagĂ© partagent une histoire instructive qui illustre comment une suppression imprudente des avertissements du compilateur peut mener Ă  des vulnĂ©rabilitĂ©s dans le code. À la fin mai, un correctif a Ă©tĂ© proposĂ© pour le noyau Linux afin de remĂ©dier Ă  un nouveau vecteur d'exploitation de la vulnĂ©rabilitĂ© Spectre via un appel systĂšme ptrace.

Lors des tests du correctif, les développeurs ont remarqué qu'en compilant, le compilateur affichait un avertissement concernant le mélange de code et de définitions (la structure ayant été définie aprÚs le code assignant une valeur à une variable existante) :

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

Linus a accepté la correction dans sa branche master, se débarrassant de l'avertissement en déplaçant la définition de la variable dans le bloc if :

if (n ptrace_bps[index];

En juillet, le correctif a également été porté vers les branches stables des noyaux 4.4, 4.9, 4.14, 4.19 et 5.2. Les mainteneurs des branches stables ont également rencontré l'avertissement et au lieu de vérifier s'il avait déjà été corrigé dans la branche master de Linus, ils ont apporté leur propre correctif. Le problÚme est qu'ils n'ont pas réfléchi et ont simplement déplacé la définition de la structure vers le haut, de sorte que l'appel à array_index_nospec, qui assurait directement la protection contre la vulnérabilité, n'était plus utilisé lors de la définition de la structure, et au lieu de la variable "index", c'était toujours la variable "n" qui était utilisée :

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

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster