Connexion
Abonnez-vous

Sur LibSSH, une « faille triviale » existait depuis quatre ans

 Sur LibSSH, une « faille triviale » existait depuis quatre ans

Le 18 octobre 2018 à 10h54

Le Cert-FR explique que la faille réside dans la bibliothèque côté serveur et « permet à un attaquant de provoquer un contournement de la politique de sécurité ». Les versions 0.6 et plus récentes sont concernées.

Le moins que l'on puisse dire, c'est que son exploitation est on ne peut plus triviale : « En envoyant au serveur un message SSH2_MSG_USERAUTH_SUCCESS à la place de SSH2_MSG_USERAUTH_REQUEST auquel le serveur s'attendait pour lancer l'authentification, l'attaquant pouvait s'authentifier avec succès sans aucune information d'identification ».

Des correctifs ont évidemment été déployés pour avec LibSSH 0.8.4 et 0.7.6. Bien qu'utilisant LibSSH, GitHub affirme ne pas être impacté grâce à la manière dont il exploite cette bibliothèque.

La version 0.6 ayant été publiée en janvier 2014, cela fait plus de quatre ans que le contournement des protections pouvait être réalisé de cette manière.

Le 18 octobre 2018 à 10h54

Commentaires (12)

Vous devez être abonné pour pouvoir commenter.

Abonnez-vous
votre avatar

Ca sent le contournement du dev pour faire ses test qui n’a pas été retirer au moment du commit <img data-src=" />

votre avatar

Ca sent surtout la forfanterie “given enough eyeballs every bug is shallow” qu’on se ramasse dans la poire à chaque fois.

votre avatar

C’est-à-dire plus spécifiquement ?

votre avatar

J’ai voulu être bref, on me demande d’être disert, alors je me lance…



Le souci c’est que ça donne du grain à moudre aux adversaires FUD de l’open source : “d’une part il n’y a pas moins de bugs que dans le propriétaire, mais en plus n’importe qui peut les exploiter simplement en lisant le code”.



Le grand avantage annoncé de l’open source est précisément que, les sources étant librement disponibles, les bugs ne résistent pas longtemps aux scrutations des personnes intéressées. Après heartbleed, voici encore une fois la preuve que ce n’est vrai que dans un univers parallèle au nôtre.



Ensuite vient le fait qu’on fait essentiellement confiance aux tests automatisés. Le catastrophique “ça compile donc c’est bon” d’antan a fait place à “les tests automatisés passent, donc c’est bon” pas tellement meilleur. Les tests montrent que le code ne fait pas moins qu’annoncé, ils sont incapables de démontrer qu’il ne fait pas plus qu’annoncé. Or les protocoles de sécurité sont extrêmement sensibles à ces petits à-côté.

&nbsp;



&nbsp;

votre avatar

Oui, enfin pour quelque chose comme libSSH avoir des tests de blocage de tentative de connexion c’est pas plus mal.



Mais c’est vrai qu’en dehors de monkey testing c’est difficile de tester absoluement tous les cas. On va tester le blocage si mauvais password mais oon va pas penser au cas où l’utilisateur fait semblant d’être déjà authetifié.

votre avatar







33A20158-2813-4F0D-9D4A-FD05E2C42E48 a écrit :



Ca sent surtout la forfanterie “given enough eyeballs every bug is shallow” qu’on se ramasse dans la poire à chaque fois.





L’Open Source reste quand même meilleur pour la sécurité, ce me semble. Si on fait des comparaisons (et encore, MS a fait des progrès par rapport aux années 90 et 2000 où c’était la fête du slip).



Personne ne dit que ça garanti l’absence totale de bugs ou de failles.


votre avatar







Krogoth a écrit :



Mais c’est vrai qu’en dehors de monkey testing c’est difficile de tester absoluement tous les cas. On va tester le blocage si mauvais password mais oon va pas penser au cas où l’utilisateur fait semblant d’être déjà authetifié.





En effet, pas facile de penser à tout. Je m’en suis rendu compte quand, après avoir moi-même fait beaucoup de tests unitaires, j’ai vu que les équipes de test arrivaient à trouver des bugs dans l’utilisation général du logiciel.



Il y a aussi le “fuzzy testing” (qui ressemble un peu au monkey testing) qui est pas mal, pour tester ne serait-ce que la robustesse, mais je ne sais pas si c’est souvent fait.



Quand j’ai commencé adolescent à programmer au siècle dernier, avant Internet, mon père m’avait dit “teste tout ce qui est entré, il ne faut pas que le programme plante si on se trompe de valeur”. Et déjà si un programme est robuste vis-à-vis de ce qui est entré, c’est une bonne condition (non suffisante) pour être sûr face aux tentatives de “craquage”.


votre avatar

Mettrais pas mes machines à jour, YOLO comme disent les jeunes. <img data-src=" />



En même temps, libssh n’est installé sur aucune <img data-src=" />

votre avatar

ouais pour le coup, ça aide un peu <img data-src=" />

votre avatar

Je ne suis pas sûr que cette lib soit beaucoup utilisée.

votre avatar







John Shaft a écrit :



Mettrais pas mes machines à jour, YOLO comme disent les jeunes. <img data-src=" />

En même temps, libssh n’est installé sur aucune <img data-src=" />









WereWindle a écrit :



ouais pour le coup, ça aide un peu <img data-src=" />









fred42 a écrit :



Je ne suis pas sûr que cette lib soit beaucoup utilisée.





Merci pour la remarque, du coup j’ai regardé sur mon Ubuntu 16.04, et je vois ceci :

libssh2-1 : SSH2 client-side library



On dirait que ça ne concerne pas le serveur (qui est installé chez moi aussi, openssh-server).


votre avatar

Chez moi sur la même ubuntu que toi, en plus de cette libssh2, j’ai bien la libssh concernée qui est utilisée par l’unique programme :

remmina : remote desktop client for GNOME desktop environment



Je pense qu’en tant que client (et pas serveur), il n’est pas pas concerné.



La lib a de toute façon bien été mise à jour.

Sur LibSSH, une « faille triviale » existait depuis quatre ans

Fermer