Journal OpenBSD : un bug vieux de 25ans

Posté par  .
Étiquettes : aucune
0
13
mai
2008
Lorsqu’un utilisateur d’OpenBSD [1] lui à envoyé un courriel concernant un crash de SAMBA [2], la première réaction de Marc Balmer à été de blâmer SAMBA.

Mais en remontant la piste il s'est rendu compte que le bug provenait bien d'OpenBSD. Et cela depuis aout 1983 et la version 4.2 du célèbre OS au poisson-lune.

Plus grave : ce problème devais être connu puisque SAMBA était modifié en fonction du bug pour fonctionner correctement sur les systèmes BSD.

Encore une preuve que le fameux "Only two remote holes in the default install, in more than 10 years !" est à prendre avec des pincettes (voir faux) !

1 : http://www.openbsd.org/
2 : http://www.samba.org/
Annonce OSNews : http://www.osnews.com/story/19731/The-25-Year-Old-UNIX-Bug
  • # Ouch ...

    Posté par  . Évalué à 10.

    Marc Balmer

    Ça doit être dur à porter comme nom ça ...
  • # Corrections

    Posté par  . Évalué à 10.

    Je ne suis pas utilisateur d'OpenBSD, mais il me semble qu'il y ait 2 erreurs dans le journal:

    1. Et cela depuis aout 1983 et la version 4.2 du célèbre OS au poisson-lune.
    Je pense que tu confonds OpenBSD et BSD. OpenBSD n'a commencé qu'en 94

    2. Il ne me semble pas que ce bug puisse être considéré comme un bug de sécurité permettant l'accès root à distance...

    Tom
    • [^] # Re: Corrections

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

      Effectivement et ça pique les yeux.

      Donc M. Ballmer non content d'avoir trouvé le problème et de l'avoir résolu dans OpenBSD, c'est amusé à voir depuis combien de temps le code défectueux était présent. À sa grande surprise, il était déjà présent dans 4.4BSD (la version de BSD dont sont issus tous les BSD libre), et même dans la 4.2. Donc ça fait 25 ans que ce code se balade avec ce problème.


      Rappelons au passage que OpenBSD est issu d'un fork NetBSD, lui même issu d'un fork FreeBSD, ce dernier étant partie d'une 4.4BSD.

      Voila, on verra sans doute rapidement la correction arriver dans les autres version de BSD.

      http://undeadly.org/cgi?action=article&sid=2008050819325(...)
      http://it.slashdot.org/article.pl?sid=08/05/11/1339228
      • [^] # Re: Corrections

        Posté par  . Évalué à 10.

        C'est déja fixé dans Free/Net/Dragonfly, preuve de la bonne communication entre les différents versions de ces OS.
        Et oui, ca n'a _rien_ a voir avec une faille de sécurité distante, renseigne toi un peu avant de dire des énormités pareilles dignes des journaux pipole....
      • [^] # Re: Corrections

        Posté par  . Évalué à 6.

        Rappelons au passage que OpenBSD est issu d'un fork NetBSD, lui même issu d'un fork FreeBSD, ce dernier étant partie d'une 4.4BSD.

        OpenBSD est bien issu d'un fork de NetBSD. Par contre NetBSD a démarré en parallèle de FreeBSD et n'a jamais été un fork de ce dernier. Savoir le quel des deux a débuté avant l'autre est un peu flou... Au début ils ne représentaient qu'un ensemble de patchs de 386BSD.

        Au niveau release officielle, la première de NetBSD (0.8) date d'avril 93, la première de FreeBSD date de décembre 93 (1.0).
        • [^] # Re: Corrections

          Posté par  . Évalué à 3.

          J'ajouterais que FreeBSD et NetBSD ne sont pas basés sur 4.4BSD qui est sorti *après* (juin 94), mais sur 386BSD, lui même basé sur 4.3BSD (Net/2).
          • [^] # Re: Corrections

            Posté par  . Évalué à 7.

            Pour l'historique sous forme graphique:
            http://www.levenez.com/unix/
            un grand classique, toujours mis à jour (la dernière date d'à peine une semaine)
            Si vous avez un plotter à dosposition, cette longue bande de papier de plus de deux mètre à vraiment de la gueule :-)
      • [^] # Re: Corrections

        Posté par  (site web personnel, Mastodon) . Évalué à 5.

        Donc M. Ballmer

        Un seul L, par pitié pour lui !
  • # Petit renseignement

    Posté par  . Évalué à 4.

    Avant de d’écrire n’importe quoi il faut être renseigné.
    http://www.vnode.ch/fixing_seekdir
  • # 25 ans

    Posté par  . Évalué à 6.

    C'est drôle, même si on considère qu'un bug de sécurité distante pourrait ne pas être découvert pendant aussi longtemps (...), croire que Free/Net/Open/Dragonfly ou un Linux soit aussi agé semble relever d'un pitit manque de culture...
  • # En parlant de bugs..

    Posté par  . Évalué à 4.

    Debian a fait la mega boulette et a compromis avec un patch qui leur est spécifique, la génération de clefs avec openssl.

    http://lists.debian.org/debian-security-announce/2008/msg001(...)

    Bien sur, ça touche aussi Mobutu qui se contente de reprendre tout ce que fait debian et d'y mettre du sucre :
    http://www.ubuntu.com/usn/usn-612-1

    "All OpenSSH and X.509 keys generated on such systems must be considered untrustworthy, regardless of the system on which they are used, even after the update has been applied. "
    • [^] # Re: En parlant de bugs..

      Posté par  . Évalué à 3.

      The first vulnerable version, 0.9.8c-1, was uploaded to the unstable distribution on 2006-09-17
      /o\
    • [^] # Re: En parlant de bugs..

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

      ce bug est énorme dans ses implications !

      Affected keys include SSH keys, OpenVPN keys, DNSSEC keys, and key material for use in X.509 certificates and session keys used in SSL/TLS connections. Keys generated with GnuPG or GNUTLS are not affected, though.

      affecte Debian Etch, testing depuis un bon bout de temps (date de 2006-09-17 dans sid comme déjà dit) ; Ubuntu 7.04 (Feisty), 7.10 (Gutsy), 8.04 LTS (Hardy).

      j'ai essayé de regarder rapidement la raison du bug ; appremment à l'origine, un bug a été ouvert pour faire taire valgrind sur l'utilisation de mémoire non initialisée :

      http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=363516

      ça a fini dans sid en septembre par :

      -- openssl-0.9.8c.orig/crypto/rand/md_rand.c
      +++ openssl-0.9.8c/crypto/rand/md_rand.c
      @@ -271,7 +271,10 @@
              else
                  MD_Update(&m,&(state[st_idx]),j);
                  
      +/*        
      + * Don't add uninitialised data.
              MD_Update(&m,buf,j);
      +*/
              MD_Update(&m,(unsigned char *)&(md_c[0]),sizeof(md_c));
              MD_Final(&m,local_md);
              md_c[1]++;
      @@ -465,8 +468,10 @@
              MD_Update(&m,local_md,MD_DIGEST_LENGTH);
              MD_Update(&m,(unsigned char *)&(md_c[0]),sizeof(md_c));
      #ifndef PURIFY
      +#if 0 /* Don't add uninitialised data. */
              MD_Update(&m,buf,j); /* purify complains */
      #endif
      +#endif
              k=(st_idx+MD_DIGEST_LENGTH/2)-st_num;
              if (k > 0)
                  {

      je ne comprends pas spécialement ce code, mais je soupçonne que ça a évité d'appeler MD_Update dans un cas où "buf" était non initialisé, mais *aussi* dans un cas où "buf" était initialisé avec du bon random, qui garantissait justement la sécurité des clés créées..

      ce qui m'étonne c'est que le mainteneur Debian qui a commité ce patch est probablement quelqu'un avec de grandes connaissances en sécurité ; hors dans ce domaine, il faut faire très attention à la source de random pour garantir la sécurité.. quand on fait un changement dans ce domaine il faut faire très attention ; maintenant c'est beaucoup plus facile de le voir après coup.. ce devait être tout de même très subtil.
      • [^] # Re: En parlant de bugs..

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

        Ça peut arriver à tout le monde de commettre une erreur de ce genre...

        Ce qu'on peut surtout reprocher à ce mainteneur, c'est de ne pas avoir proposé son patch au projet OpenSSH pour validation.
        • [^] # Re: En parlant de bugs..

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

          Le soucis est qu'il l'a fait, mais semble s'être trompé de liste.

          Et personne ne lui a répondu, sauf après coup quand il était trop tard...

          Je suis très content de n'avoir que des certificats cacert gratuit dans un cas pareil...
          • [^] # Re: En parlant de bugs..

            Posté par  . Évalué à 1.

            Le soucis est qu'il l'a fait, mais semble s'être trompé de liste.
            Le site d'openssl estime qu'il était sur la bonne liste.
            il était sur openssl-dev et d'après le site d'openssl, ca correspond à
            openssl-dev open subscribers Discussions on development of the OpenSSL library. Not for application development questions!

            Et personne ne lui a répondu, sauf après coup quand il était trop tard...
            Faux, on lui a répondu, et en positif.
            Simplement il y a un quiproquo (on va etre gentil) entre chaque partie (supression plus étendue que ce qu'avait peut être compris la team openssl, ...)

            bref, pas totalement aussi manichéen que certains anti-debian/anti-distribution veulent le faire croire.

            Ps : je ne dis pas que ce qu'a fait le dvp debian était "super top", je dis juste que dans le "création" du bug etc..., il était loin d'etre le seul en cause.
    • [^] # Re: En parlant de bugs..

      Posté par  . Évalué à 2.

      ça mériterait un journal à part entière ça... voir une dépêche.

Suivre le flux des commentaires

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