• [^] # Re: "sans patch possible"

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

    L'article parle également de l'architecture de Harvard avec plusieurs arguments qui expliquent pourquoi ça ne suffit pas:

    • D'abord, l'architecture de Harvard "pure" ne permet pas de charger du code arbitraire (puisque la mémoire programme est en lecture seule), et donc, ça limite les possibilités.
    • Un contournement de cette limitation est possible: ajouter une instruction qui permet d'écrire dans la mémoire programme, mais dans ce cas l'instruction en question peut également être exploitée pour injecter du code, et donc on a rien gagné,
    • Sur les ordinateurs récents, il n'est pas rare d'avoir du code interprété (scripts bash, python, javascript, ou tout simplement exécution de commandes sur un prompt shell) et cela pourrait être exploité également,
    • Enfin, il existe des attaques dans lesquelles il n'y a pas à proprement parler d'injection de code. Par exemple le "return oriented programming" qui consiste à appeler des petits bouts de code existants et à les enchaîner de façon à faire ce qu'on veut.

    En pratique, sur les ordinateurs modernes, on est pas loin d'avoir une architecture de Harvard, avec la MMU qui peut indiquer quelles zones de la mémoire peuvent être écrites et quelles zones peuvent être exécutées (en principe ce ne sont pas les mêmes). C'est apparu sur les processeurs x86 en 2003 par exemple: https://fr.wikipedia.org/wiki/NX_Bit et on peut pas vraiment dire que ça a bouché d'un coup toutes les failles, même si ça a sûrement rendu le travail des vilains pirates un peu plus difficile.