• [^] # Re: Comment est-ce possible?

    Posté par . En réponse au journal [MS11-083] Vulnérabilité dans la pile TCP/IP de Windows permettant l'execution distante de code. Évalué à 3.

    pas forcément.

    La carte réseau peut pousser directement le paquet udp en mémoire (dma toussa), et toi tu fais juste une lecture du header (pas de manipulation de donnée, juste de la lecture).

    De cette façon, des données corrompues -> t'en fous, pas lu
    des données trop grosses -> tu t'en fous, elles sont pas écrites (il faut que la carte réseau soit "ok" aussi et/ou une IOMMU. Mais bon, on va supposer que le matos n'est pas vérolé sinon on en sort pas ^^).
    Un header corrompu -> euh c'est des champs de tailles fixes en udp, donc au pire un integer overflow, mais ca ce résoud assez facilement au niveau binaire.
    (en supposant un paquet forger, ie avec un checksum correct).
    buffer overflow -> ben non tu ne regardes que des données de tailles fixés et fixe (port)

    Il n'y a aucune option en udp, donc toute l'entête est vraiment statique niveau taille.

    Ensuite je suis une bille en dvp noyau, donc pe qu'il est plus intéressant pour eux de tout copier etc...

    Mais bon, une attaque comme ça sur tcp serait plus logique (paramètres d'options), même si elles ne devraient arriver que pour le routage et/ou un port ouvert.
    (Un port fermé, hop RST et basta.
    En udp hop droppage paquet et basta).