Fra koden, som dannede grundlaget for udgivelsen af FreeBSD 13, blev der med stor ståhej fjernet kode til implementeringen af VPN-protokollen WireGuard, der blev udviklet på bestilling af virksomheden Netgate uden konsultation med udviklerne af den oprindelige WireGuard. Denne kode var allerede blevet inkluderet i stabile udgivelser af distributionen pfSense. Efter en gennemgang af koden af Jason Donenfeld, skaberen af den oprindelige WireGuard, viste det sig, at den foreslåede implementering af WireGuard til FreeBSD var et eksempel på lavkvalitetskode, der var fyldt med buffer-overløb og overtrådte GPL-licensen.
I implementeringen blev der fundet katastrofale fejl i kryptografikoden, vigtige dele af WireGuard-protokollen var blevet overset, der var fejl, der førte til kernefejl, samt omgåelse af beskyttelsesmetoder. For inddata blev der anvendt buffer med fast størrelse. Kvaliteten af koden belyses også af tilstedeværelsen af pladsholdere i stedet for kontroller, som altid returnerede værdien 'true', samt glemte debug printf'er, der viste parametre, der blev anvendt til kryptering, og brugen af funktionen sleep til at forhindre race-tilstande.
Nogle dele af koden, såsom funktionen crypto_xor, blev i strid med GPL-licensen overført fra implementeringen af WireGuard, som blev udviklet til Linux. Som et resultat heraf tog Jason Donenfeld sammen med Kyle Evans og Matt Dunwoodie, forfatteren af porten til WireGuard for OpenBSD, fat på at omarbejde den problematiske implementering og udskiftede hele koden fra udvikleren, der var ansat af Netgate, på en uge. Den omarbejdede version blev udsendt som et separat sæt patches, der er placeret i WireGuard-projektets repository og er endnu ikke inkluderet i FreeBSD.
Det er interessant, at intet i starten forudså problemerne. Virksomheden Netgate, som ønskede at få muligheden for at bruge WireGuard i pfSense-distributionen, ansatte Matthew Macy, som har stor viden om FreeBSDs kerne og netværksstak, deltager i rettelserne af fejl og har erfaring med at udvikle netværksdrivere til dette operativsystem. Macy fik en fri tidsplan uden deadlines og mellemcheck. Udviklerne, der har arbejdet sammen med Macy på FreeBSD, karakteriserede ham som en talentfuld og professionel programmør, som lavede lige så få fejl som andre og reagerede passende på kritik. Den dårlige kvalitet af koden til implementeringen af WireGuard for FreeBSD kom dem bag på.
Efter 9 måneders arbejde i december sidste år tilføjede Macy sin implementering i HEAD-grenen uden afslutning af gennemgang og testning af tredjepart. Denne gren blev brugt til at danne gratis BSD 13. Udviklingen blev udført uden forbindelse til udviklerne af den originale WireGuard og portene til OpenBSD og NetBSD. I februar integrerede Netgate WireGuard i den stabile udgave pfSense 2.5.0 og begyndte at levere det i de firewalls baseret på det. Efter problemerne blev koden til WireGuard fjernet fra pfSense.
I den tilføjede kode blev der opdaget kritiske sårbarheder, som blev udnyttet i 0-dags exploits, men Netgate anerkendte i starten ikke eksistensen af sårbarhederne og forsøgte at anklage udvikleren af den originale WireGuard for angreb og fordomme, hvilket negativt påvirkede deres omdømme. Port-udvikleren afviste i begyndelsen anklagerne om kodens kvalitet og anså dem for overdrevet, men efter demonstration af fejlene bemærkede han, at en reel og væsentlig problem var den manglende ordentlige gennemgang af kodekvaliteten i FreeBSD, for problemerne forblev uopdagede i mange måneder (repræsentanter fra Netgate nævnte, at offentlig gennemgang blev startet allerede i august 2020, men enkelte FreeBSD-udviklere påpegede, at gennemgangen i Phabricator blev lukket af Macy uden at fuldføre og ignorere kommentarer). FreeBSD Core Team reagerede på hændelsen med et løfte om at modernisere procedurerne for kodekontrol.
Matthew Maisey, udvikleren af den problematiske port til FreeBSD, kommenterede situationen ved at sige, at han begik en stor fejl ved at påtage sig arbejdet, da han ikke var klar til at realisere dette projekt. Det endelige resultat forklarer Maisey med følelsesmæssig udbrændthed og problemer som følge af post-COVID-syndromet. Alligevel fandt Maisey ikke modet til at trække sig fra de forpligtelser, han allerede havde påtaget sig, og forsøgte at færdiggøre projektet.
Maiseys tilstand kunne også være påvirket af en nylig fængselsdom, som han fik for ulovlige handlinger i sit forsøg på at tvangsudflytte lejere fra det hus, han havde købt, som ikke ønskede at flytte frivilligt. Sammen med sin kone skar de i bjælkerne og lavede huller i gulvene for at gøre huset ubeboeligt, og de prøvede også at skræmme lejerne, brød ind i de beboede lejligheder og transporterede deres ejendele (handlingen blev kvalificeret som indbrud). For at undgå ansvar for de begåede handlinger flygtede Maisey med sin kone til Italien, men han blev udleveret til USA og tilbragte mere end fire år i fængsel.
Kilde: opennet.ru
