• # "sans patch possible"

    Posté par (site web personnel, Mastodon) . En réponse au journal Une vulnérabilité sans patch possible.... Évalué à 9.

    "sans patch possible", vraiment? L'article dit exactement le contraire et propose deux façons de corriger l'implémentation (c'est pas difficile à trouver, c'est le chapitre "Mitigations"):

    1) Valider les entrées, en particulier vérifier qu'il n'y a que des 1 et des 0 dedans (la machine représente chaque case par un octet et utilise en interne d'autres valeurs "A" et "B", et ne vérifie pas avant de démarrer l'exécution que le programme ne contient pas autre chose que des 1 et des 0)

    2) Spécifier complètement la machine, en gros dans le code il y a des tests du genre if (valeur == 0) { ... } else { ... } sous-entendant que le else s'exécute pour valeur == 1, mais en fait il s'exécute aussi pour "A" et "B". Donc on peut réécrire le code: if (valeur == 0) { ... } else if (valeur == 1) { ... } else { erreur }

    Les problèmes ne sont pas dans l'idée même d'une machine de Turing universelle, mais bien dans cette implémentation spécifique. Implémentation dont le but était, non pas d'être sécurisée, mais d'être le plus simple possible.