Journal [FAILLE] Code execution dans Vim via un fichier malicieux forgé

Posté par  . Licence CC By‑SA.
29
11
juin
2019

La vulnérabilité est tombée hier:

https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md

Il s'agit d'execution de code, possiblement distante (merci netcat) en exploitant une //faille// dans la gestion des modeline (Fonctionnalité qui permet de configurer vim pour le buffer courant, via une ligne spécialement formaté au début du fichier)

L'astuce intéressante est que, par l'utilisation de caractères d'échappement, l'attaquant peut même rendre la ligne malicieuse invisible via cat.

Des mitigations existent (désactiver les modelines), tout est détaillé sur la page.

  • # Les méfaits du sucre

    Posté par  (site web personnel) . Évalué à 3.

    Comme quoi l'informatique est parfois un miroir de la vraie vie. Le sucre (syntaxique), c'est bon. Mais pleins de dangers caché. Si je comprends bine avec des outils moins sophistiqués, comme un éditeur de texte qui ne fasse qu'éditer du texte, ou des shells qui n'essaient pas d'interpréter ce qu'on leur balance à afficher les problèmes ne se seraient pas posé. C'est bien ça ?

    « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

    • [^] # Re: Les méfaits du sucre

      Posté par  . Évalué à 4.

      Vive les cartes perforées !
      </ironie>

      Il faut tout de même bien avancer et la coloration syntaxique (qui n'est pas du sucre) permet d'aller plus vite et d'y aller mieux.

      De plus la coloration syntaxique permet de montrer des erreurs qu'avec un "éditeur de texte qui ne fasse qu'éditer du texte" (sic) tu laisserais passer.

      Les features avancées permettent de mieux maintenir le code (refactoring, check de la qualité…) et AMHA l'effet bénéfique vaut largement l'effet négatif.

      Bref sans ces outils tu ferais surtout moins de choses bien.

  • # Solution de facilité

    Posté par  . Évalué à 10.

    Je passe sous Emacs.
    Euh, mince, comment on fait pour sauvegarder ?…

    • [^] # Re: Solution de facilité

      Posté par  . Évalué à 10.

      Si tu as réussi à quitter Vi, sauvegarder sous Emacs devrait être un jeu d'enfants.

      • [^] # Re: Solution de facilité

        Posté par  (site web personnel) . Évalué à 10. Dernière modification le 11 juin 2019 à 21:48.

        À condition d'avoir un ami qui peut te prêter ses doigts.

      • [^] # Re: Solution de facilité

        Posté par  . Évalué à 3.

        Si tu as réussi à quitter Vi […]

        Si je me souviens, la première fois, j'ai dû faire redémarrer mon ordi. Bon, en même temps, je venais de passer de Windows XP à Gentoo, pas taper.

        • [^] # Re: Solution de facilité

          Posté par  . Évalué à 4.

          Titre de l'image

          • [^] # Re: Solution de facilité

            Posté par  . Évalué à 5.

            Ce n'est pas la première fois que je vois des francophones sortir la version anglaise de commitstrip, je ne comprends pas bien pourquoi. Les non-francophones qui après une suite de commentaires en français seront arrivé jusqu'à ton commentaire ? Ou juste parce que « ça fait mieux » de parler anglais ?

            • [^] # Re: Solution de facilité

              Posté par  . Évalué à -4.

              […] ? Ou juste parce que « ça fait mieux » de parler anglais ?

              Non, c'était juste pour t'inviter à lâcher un commentaire. C'est bon pour mon référencement. Tu vois, ça marche :-D .

            • [^] # Re: Solution de facilité

              Posté par  . Évalué à -5.

              Le fait est que, depuis le temps que tu passes à commenter sur mes commentaires, je ne suis pas persuadé qu'une quelconque explication de ma part te convienne, quelqu'en soit la teneur. Et à part troller là où il s'agissait d'une simple tentative, évidente, d'humour, je ne vois pas non plus à quoi sert le tien (je parle de ton commentaire). Ce sera probablement la dernière fois que je perds mon temps à te répondre.

            • [^] # Re: Solution de facilité

              Posté par  . Évalué à -1.

              Bon, franchement, ce moinssage intempestif, ça me gonfle, vraiment!

              Tu veux une réponse? En voilà une. Mais je ne suis pas certain qu'elle te plaise. Mais bon, peu importe, je commence à avoir l'habitude.

              On va commencer par une petite histoire. Un type entre dans un bar et trouve, à une table au beau milieu de la pièce, un groupe de gars, qu'il ne connaît pas, en train de bavarder. Il en voit un qui semble lâcher une feinte, visiblement, car tout le groupe se met à rigoler. Là-dessus, le type s'approche et dit:

              — Dites, ça vous fait rien de parler dans une langue que les autres ne comprennent pas? Vous vous prenez pour qui? Ça vous plaît de faire les malins ou quoi?

              Autour de la table, un des gars fronce les sourcils, lève sa main droite en refermant les doigts, sauf son index, qu'il porte à sa tempe à plusieurs reprises. Un autre, tellement surpris, garde la bouche grande ouverte. Le troisième, visiblement dérangé, se tourne vers son voisin, l'air complètement surpris, et lui demande, en pointant son pouce vers le type:

              — C'est qui, ce guignol?

              Là-dessus le barman s'approche du type et le sort du bar à coup de lattes dans le train.


              Tu visionnes bien la tronche de ces gaillards à la table du bar? Bon. Maintenant, prends-les toutes, ensemble et t'auras la mienne quand j'ai lu ton commentaire.

              Maintenant faisons un peu de sociologie et de psychologie, veux-tu.

              D'abord l'idée de base: «Tout message est laissé à l'interprétation de celui qui le reçoit.»

              Je cite:

              Ce n'est pas la première fois que je vois des francophones sortir la version anglaise de commitstrip, je ne comprends pas bien pourquoi. Les non-francophones qui après une suite de commentaires en français seront arrivé jusqu'à ton commentaire ? Ou juste parce que « ça fait mieux » de parler anglais ?

              Ne verrais-tu pas, dans ces quelques lignes, quelque chose qui ne va pas? Je vais essayer de te mettre sur la piste et décortiquer ces trois phrases une par une.

              «Ce n'est pas la première fois que je vois des francophones sortir la version anglaise de commitstrip, je ne comprends pas bien pourquoi.»

              Bon, d'accord. Tu formules visiblement une critique, basée sur la forme d'un message à vocation humoristique. Je t'aurais bien répondu à ce stade, sauf que…

              «Les non-francophones qui après une suite de commentaires en français seront arrivé jusqu'à ton commentaire ?»

              Pardon? Tu m'excuseras mais je ne comprends pas l'objet de ta question.

              «Ou juste parce que " ça fait mieux " de parler anglais ?»

              Hein? Tu me prêtes des intentions, là, c'est bien ça? Bon, ça suffit, le godet est plein, il déborde même.


              Tu sais comment ça s'appelle, ce que tu fais dans ta troisième strophe?

              • prêter des intentions à quelqu'un (que tu ne connais pas, permets-moi de te le rappeler)
              • penser à la place de l'autre
              • faire un procès d'intention
              • manifester un préjugé sur la personne à qui on s'adresse

              Je vais te poser une série de questions:

              • Tu aimes, toi, qu'on te fasse des procès d'intention?
              • Tu apprécies qu'on pense à ta place?
              • Si tu t'étais limité à la première phrase, je t'aurais volontiers répondu — alors même que ta phrase ne constitue pas une question! Tu en es conscient?
              • Estimes-tu que l'attaque, verbale, est la meilleure méthode pour obtenir une réponse?
              • Si un quidam s'en prend à toi et qu'il manifeste la même attitude à ton égard, te sens-tu gentiment invité à satisfaire sa demande?
              • La communication non violente, tu connais?
              • Sais-tu comment formuler une question pour motiver ton interlocuteur à te fournir une réponse?
              • Si j'avais trouvé la même planche avec des hiéroglyphes, ta réaction aurait-elle été la même?
              • Si la planche était dépourvue de textes, aurais-tu réagi pareillement?
              • T'es-tu assuré que je comprends bien l'anglais?
              • Quand tu tombes sur des paroles ou des textes que tu ne piges pas — ou pour lesquels tu estimes que d'autres ne les comprennent pas — tu adoptes toujours la même attitude? Je veux parler de la forme «je rentre dans le tas et je pose des questions»?
              • As-tu, toi, compris la planche? Si oui, ne penses-tu pas, si d'autres n'ont pas compris, que ce n'est pas à toi de manifester leurs intentions?
              • Sais-tu que ta critique n'est en rien constructive?
              • Sais-tu pourquoi elle n'est pas constructive?
              • Sais-tu seulement comment établir une critique constructive?
              • As-tu vérifié que la version francophone de cette planche existe?
              • Est-ce vraiment essentiel d'avoir le texte en français, dans ce cas précis pour avoir une idée du message que la planche exprime?
              • As-tu conscience d'être rentré par la force dans une discussion qui ne t'était pas adressée directement?
              • As-tu conscience que, dans ces cas-là, il est de bon ton de rester poli et courtois?
              • Qu'est-ce que la courtoisie et la politesse pour toi?
              • As-tu la moindre idée de ce que ton interlocuteur ressent en te lisant?
              • T'en soucies-tu?

              Bref, tu as complètement loupé une série d'occasions de me laisser te répondre, qui plus est avec la gentillesse que tu aurais sans doute mérité si tu t'en étais donné les moyens. Une attitude comme la tienne ne fournit à ton interlocuteur aucune motivation à satisfaire ta demande, même si tu l'exprimes clairement et sans ambiguïté, ce qui n'est déjà pas le cas ici.

              Tu t'attendais à quoi, avec un truc du genre « Ou juste parce que " ça fait mieux " de parler anglais » ? De la sympathie de ma part? De la compassion? De l'empathie? Crois-tu sincèrement que ça donne envie de te répondre? Te sens-tu respectueux de ton interlocuteur avec une affirmation pareille?

              Visiblement, si tu as envisagé d'autres possibilités, celles que tu as retenues sont celles que tu as formulées, exact? Alors en quoi me donnes-tu de la latitude pour te répondre? Tu jettes un pavé dans la mare avec un a priori sur ma personne. Ça signifie que tu ne laisses aucune chance à un débat constructif ni à une discussion dans un esprit ouvert.

              Si la réponse qui me vient à l'esprit est «tu te prends pour qui?» ça te fait quoi comme effet?

              Et si tout ce qui t'intéresse c'est d'avoir la version franco-française de cette planche, pourquoi ne l'as-tu pas ajoutée, toi-même, de ton plein gré? Visiblement, ce fut plus facile pour toi de juste balancer ta critique à travers l’agression verbale. Une critique constructive, dans ce cas précis, consisterait:

              1. déjà à ne pas agresser la personne à qui tu t'adresses, vu que tout ce qu'elle souhaitait était de partager un moment d'humour,

              2. à fournir au minimum une piste, par exemple une version de la planche dans la langue qui t'intéresse

              et là, tout le monde est gagnant. Au lieu de ça, tu critiques et tu fais un procès d'intention. Franchement, tu t'attendais vraiment à ce que je te fournisse une réponse?

              La version française n'existe pas? Et après? C'est ma faute? Ma responsabilité? Si je ne comprends pas, je passe mon chemin, je cherche la traduction et si je pige, tant mieux. Si je ne pige pas, je continue mon chemin et ça s'arrête là.

              Je te rappelle que la planche en question ne t'était pas adressée à titre personnel. Tu as fait le choix de te sentir concerné. Est-ce à moi d'en assumer la responsabilité? Non!

              Si d'autres personnes se sentent lésées (ce qui reste à vérifier) pour ne pas comprendre le sens du message, c'est à elles de s'exprimer, pas à toi et encore moins sous cette forme.

              Ma réponse ne te plaît pas? Te tracasse pas, au vu de nos échanges, je passe invariablement les 48 heures qui suivent à ruminer ma frustration de m'être fait haranguer par un quidam qui n'a rien compris de mes intentions, ni fait le moindre effort pour les comprendre.

              De ce côté-là, tu es gagnant, haut la main. Preuve que j'ai encore du pain sur la planche sur la voie de la désensibilisation. Je me casse, j'ai du noir à broyer.

              • [^] # Re: Solution de facilité

                Posté par  . Évalué à 10.

                Tu t’énerves (un peu tout seul) car tu ne comprends pas le message de barmic parce-que visiblement, tu n’as pas trouvé l’image depuis son origine (CommitStrip) mais depuis un site qui l’a repompée.

                Or, il se trouve que CommitStrip est francophone et traduit ses BD en anglais. Dans ce contexte la question de barmic est légitime, pourquoi diffuser la version en anglais qui n’est ni l’originale, ni dans la langue principale utilisée sur LinuxFR ?

                Tu aurais pu répondre que tu ne savais pas, perdre moins de karma, broyer moins de noir, bref répondre à la question.

                Et donc pour répondre à la tienne

                As-tu vérifié que la version francophone de cette planche existe?

                http://www.commitstrip.com/fr/2017/05/29/trapped/

                • [^] # Re: Solution de facilité

                  Posté par  . Évalué à 4.

                  Or, il se trouve que CommitStrip est francophone et traduit ses BD en anglais. Dans ce contexte la question de barmic est légitime, pourquoi diffuser la version en anglais qui n’est ni l’originale, ni dans la langue principale utilisée sur LinuxFR ?

                  Merci pour ton explication. Je ne savais pas que la version française existait, ni que commitstrip était traduit en français. Je m'étais juste souvenu avoir vu cette planche il y a des années (ce qui est déjà un effort de ma part) et vouloir la partager.

                  Cependant ne crois-tu pas, même si sa question te paraît légitime, que la manière qu'il a eue de l'aborder était complètement contre-productive? La preuve, tu viens d'aborder le sujet de manière bien plus constructive et je t'ai fourni la réponse que lui attendait.

                  Je ne cherche pas à donner des leçons, j'essaie aussi de faire passer un message.

                  Quant à dire que je n'ai pas compris son message, s'il était seulement parti du principe que j'ignorais, en toute bonne foi, la présence d'une version française au lieu de me faire un procès d'intention, j'aurais acquiescé.

                  Un truc genre: « Sais-tu que la version française de cette planche existe à cette adresse […] ? La version anglaise a été inspirée de celle-là.»

                  Ma réponse aurait été : «Ah? Merci pour l'info, je note.»

                  Et il n'y aurait eu aucun malentendu. La forme compte autant que le fond dans une question, tu ne crois pas?

                  • [^] # Re: Solution de facilité

                    Posté par  . Évalué à 1. Dernière modification le 14 juin 2019 à 20:43.

                    La forme compte autant que le fond dans une question, tu ne crois pas?

                    Ce ne serait pas pour cette raison, ainsi que pour éviter que des malentendus de ce type dégénèrent qu'on assiste à une émergence de codes de conduite? (Je m'inclus dans le lot aussi.)

                  • [^] # Re: Solution de facilité

                    Posté par  (site web personnel) . Évalué à 4.

                    (Plus exactement, commitstrip n'est pas traduit en français, il est d'abord en français puis traduit en anglais)

                    • [^] # Re: Solution de facilité

                      Posté par  . Évalué à 2.

                      Je n'ai pas employé les bons mots pour ce passage-là en particulier, c'est juste. Mais plus bas je dis aussi:

                      Un truc genre: « Sais-tu que la version française de cette planche existe à cette adresse […] ? La version anglaise a été inspirée de celle-là

                • [^] # Re: Solution de facilité

                  Posté par  . Évalué à 3. Dernière modification le 17 juin 2019 à 13:25.

                  Tu t’énerves (un peu tout seul)

                  Ce qui m'énerve, me chagrine surtout, c'est le rapport entre la cote défavorable de mes commentaires face à celle de son message et surtout de sa forme.

                  J'ai tâché de retrouver les conditions d'utilisation de ce site et tout ce que j'ai pu trouver est ceci, dans les règles de modération, qui sont indiquées depuis la création d'un compte:

                  • Être courtois et ouvert

                  De même lors de l'ajout d'un commentaire personnalisé lors de la modération, il convient de rester poli et courtois envers le proposant. Il est facile d'être trop cassant involontairement dans un tel commentaire.

                  Je n'ai pas trouvé de "conditions d'utilisations" sur la seule écriture de commentaires.

                  Toute la litanie que j'ai passé des heures à écrire — qui au fond découle de conditions d'utilisation qui pleuvent un peu partout internet et qui tentent de motiver les utilisateurs à rester courtois et ouverts — vu sa cote horriblement négative tente à montrer qu'elle est hors propos, alors que c'est précisément le sujet ici.

                  Je me fous de perdre du karma. Je déteste l'injustice. Et, dans ce fil, c'est ce sentiment qui domine: la note du commentaire de barmic rend légitime la forme ostentatoire de l'attaque. Et le silence auquel je suis confronté, ainsi que la démesure de ce "pertinentage"/"moinssage" ne fait qu'ajouter à mon dégoût, comme si j'étais jugé "coupable de n'avoir pas su" alors que je n'étais animé d'aucune mauvaise intention.

                  Tout ce que je voulais, c'était de rigoler avec les autres. Et pour des raisons que j'ignore toujours (je parle de cet acharnement à "dépertinenter" mes commentaires ici), la pilule est plutôt amère.

    • [^] # Re: Solution de facilité

      Posté par  . Évalué à 10.

      C'est un très bon OS, mais il lui manque un bon éditeur de texte.

    • [^] # Re: Solution de facilité

      Posté par  (site web personnel) . Évalué à 4.

      perso sous emacs je fais

      :w

      Tu vois c'est facile.

      • [^] # Re: Solution de facilité

        Posté par  . Évalué à 6.

        mais ça c'est parce que tu est méchant :P

        Il ne faut pas décorner les boeufs avant d'avoir semé le vent

    • [^] # Re: Solution de facilité

      Posté par  (site web personnel) . Évalué à 4. Dernière modification le 11 juin 2019 à 22:37.

      Si tu veux trouver la voie je te suggère la vidéo de la présentation de Aaron Bieber:Evil Mode: Or, How I Learned to Stop Worrying and Love Emacs

      C'est l'histoire d'un mec qui va au “Boston Vim user group” pour dire “ben maintenant j'utilise Emacs”. Son raisonnement est que le evil-mode donne une bonne partie de la puissance de vim et que Emacs est bien plus simple à configurer que Vi.

  • # Rien de nouveau

    Posté par  (site web personnel) . Évalué à 7.

    Même la doc des modelines (:he modeline) indique Still, there is always a small risk that a modeline causes trouble.
    C'est pas la première fois que ça arrive. Tant qu'il y aura des programmes qui consomment des données externes, il y aura des attaques contre ces programmes.

    • [^] # Re: Rien de nouveau

      Posté par  (site web personnel) . Évalué à 4. Dernière modification le 11 juin 2019 à 17:48.

      J'allais le dire.

      D'ailleurs je ne sais plus sous quelle distribution ou système BSD il y avait un message disant que les modelines étaient risquées (en installant le paquet je crois).

      git is great because linus did it, mercurial is better because he didn't

      • [^] # Re: Rien de nouveau

        Posté par  . Évalué à 0.

        A ma connaissance, mes modelines ne sont activés par défaut nulle part. Précisément pour le risque qu'ils induisent.

        C'est pour ça quej'ai mon vimrc tout prêt sur mon git "profil": comme dit par ailleurs, les avantages des modelines surpassent devoir leurs inconvénients !

  • # correctif chez Ubuntu

    Posté par  . Évalué à 5.

    Ce soir il y a des mises à jour pour vim et neovim sur Ubuntu qui corrigent cette faille (CVE-2019-12735)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.