Le module et protocole VPN connaît un grand succès depuis sa première version, avec notamment des performances supérieures à la concurrence, une surface de code très réduite et des protocoles modernes pour la cryptographie.
Déjà intégré au noyau Linux, il était prévu depuis longtemps qu’il soit présent dans celui de FreeBSD. C’était même l’objet de la demande de Netgate (qui édite pfSense) au développeur Matt Maxy il y a plus d’un an. Un premier commit avait été poussé en février 2020 et le travail avait continué depuis.
Alors que l’on pensait la mission accomplie pour FreeBSD 13 – qui sera là dans deux semaines – une révision du code par Jason Donenfeld (auteur de WireGuard) et plusieurs développeurs FreeBSD et OpenBSD a montré une situation problématique.
L’avis de Donenfeld est particulièrement tranché sur la qualité du code, évoquant « des fonctions de validation renvoyant de vraies vulnérabilités cryptographiques catastrophiques, des pans entiers du protocole non implémentés, des kernel panics, des contournements de sécurité, […] les plus spectaculaires dépassements de mémoire tampon et la litanie complète des choses horribles qui peuvent aller mal quand les gens ne font pas attention à ce qu’ils écrivent en C ».
Le travail a donc été repris et Donenfeld pense désormais avoir une bonne base, en tout cas fonctionnant comme WireGuard est censé le faire. Mais il y a de très fortes chances que ce ne soit pas fini à temps pour FreeBSD 13. Les développeurs recommandent d’attendre la 13.1 pour que la qualité de l’implémentation augmente encore.