à partir de la base de code sur laquelle le lancement de FreeBSD 13 a été formulé, le code implémentant le protocole VPN WireGuard, développé à la demande de la société Netgate sans consultation avec les développeurs d'origine de WireGuard, a été supprimé dans un scandale. Il avait déjà été inclus dans les versions stables de la distribution pfSense. AprÚs avoir examiné le code, Jason Donenfeld, l'auteur original de WireGuard, a découvert que la réalisation proposée pour FreeBSD était un échantillon de code de mauvaise qualité, truffé de dépassements de tampon et enfreignant la licence GPL.
Des erreurs catastrophiques ont été trouvées dans l'implémentation du code cryptographique, une partie du protocole WireGuard a été omise, des erreurs ont conduit à des plantages du noyau et à des contournements des méthodes de protection, et pour les entrées, des tampons de taille fixe ont été utilisés. La qualité du code est fortement remise en question par la présence de bouchons à la place des vérifications, qui renvoient toujours la valeur « true », ainsi que par l'oubli de printf de débogage affichant les paramÚtres utilisés pour le cryptage et l'utilisation de la fonction sleep pour éviter les conditions de course.
Certaines parties du code, comme la fonction crypto_xor, ont été transférées de l'implémentation de WireGuard développée pour Linux, en violation de la licence GPL. En conséquence, Jason Donenfeld, avec Kyle Evans et Matt Dunwoodie (auteur du portage de WireGuard pour OpenBSD), a entrepris de retravailler l'implémentation problématique et a entiÚrement remplacé le code de l'éditeur engagé par Netgate en l'espace d'une semaine. La version retravaillée a été publiée sous forme d'un ensemble de patches distincts, placés dans le dépÎt du projet WireGuard et n'est pas encore inclus dans FreeBSD.
Il est intéressant de noter qu'au départ, rien ne laissait présager le pire. La société Netgate, désireuse d'intégrer WireGuard dans la distribution pfSense, a engagé Matthew Macy, un expert du noyau et de la pile réseau de FreeBSD, impliqué dans la correction de bugs et ayant de l'expérience dans le développement de pilotes réseau pour ce systÚme d'exploitation. Macy a été assigné à un emploi du temps libre sans délais ni revues intermédiaires. Les développeurs ayant collaboré avec Macy sur FreeBSD le décrivaient comme un programmeur talentueux et professionnel, commettant pas plus d'erreurs que d'autres et réagissant de maniÚre adéquate aux critiques. La mauvaise qualité du code de l'implémentation de WireGuard pour FreeBSD a été une surprise pour eux.
AprÚs 9 mois de travail, en décembre de l'année derniÚre, Macy a ajouté sa réalisation à la branche HEAD sans avoir terminé la révision et les tests par des participants extérieurs, ce qui a servi à créer le release de FreeBSD 13. Le développement s'est fait sans lien avec les développeurs de l'original WireGuard et des ports pour OpenBSD et NetBSD. En février, Netgate a intégré WireGuard dans la version stable de pfSense 2.5.0 et a commencé à le déployer dans les pare-feu basés sur celui-ci. AprÚs la découverte de problÚmes, le code de WireGuard a été retiré de pfSense.
Des vulnĂ©rabilitĂ©s critiques ont Ă©tĂ© identifiĂ©es dans le code ajoutĂ©, qui ont Ă©tĂ© exploitĂ©es dans des exploits 0-day. Pourtant, au dĂ©but, Netgate ne reconnaissait pas la prĂ©sence de ces vulnĂ©rabilitĂ©s et a tentĂ© de blĂąmer le dĂ©veloppeur original de WireGuard pour des attaques et des prĂ©jugĂ©s, ce qui a eu un impact nĂ©gatif sur sa rĂ©putation. Le dĂ©veloppeur du port a d'abord rejetĂ© les prĂ©occupations concernant la qualitĂ© du code, les considĂ©rant comme exagĂ©rĂ©es, mais aprĂšs la dĂ©monstration des erreurs, a pris conscience que la vĂ©ritable problĂ©matique Ă©tait le manque de revue adĂ©quate de la qualitĂ© du code dans FreeBSD, puisque les problĂšmes Ă©taient restĂ©s non dĂ©tectĂ©s pendant de nombreux mois (les reprĂ©sentants de Netgate ont indiquĂ© que la rĂ©vision publique avait Ă©tĂ© lancĂ©e en aoĂ»t 2020, mais certains dĂ©veloppeurs de FreeBSD ont notĂ© que la rĂ©vision dans Phabricator avait Ă©tĂ© fermĂ©e par Macy sans ĂȘtre effectuĂ©e et avec une ignorance des commentaires). L'Ă©quipe FreeBSD Core Team a rĂ©agi Ă l'incident en promettant de moderniser les processus de vĂ©rification du code.
Matthew Macy, dĂ©veloppeur du port problĂ©matique pour FreeBSD, a commentĂ© la situation en affirmant qu'il avait commis une grave erreur en s'attaquant Ă ce projet sans ĂȘtre prĂȘt. Le rĂ©sultat obtenu par Macy est attribuĂ© Ă l'Ă©puisement Ă©motionnel et aux problĂšmes causĂ©s par le syndrome post-Covid. Toutefois, Macy n'a pas eu le courage de renoncer aux engagements dĂ©jĂ pris et a tentĂ© de mener le projet Ă son terme.
L'Ă©tat de Macy a Ă©galement pu ĂȘtre influencĂ© par sa rĂ©cente peine de prison, qu'il a purgĂ©e pour des actions illĂ©gales dans une tentative d'expulser des locataires de la maison qu'il a achetĂ©e, qui refusaient de partir volontairement. Avec sa femme, ils ont sciĂ© les poutres du plafond et créé des trous dans les planchers pour rendre la maison inhabitable, tout en essayant d'intimider les locataires, en dĂ©truisant des appartements occupĂ©s et en emportant leurs biens (l'action a Ă©tĂ© qualifiĂ©e de vol avec effraction). Pour Ă©viter des poursuites pour ses actions, Macy et sa femme se sont enfuis en Italie, mais il a Ă©tĂ© extradĂ© vers les Ătats-Unis et a purgĂ© plus de quatre ans en prison.
Source : opennet.ru
