FrÄn kodbasen som lÄg till grund för releasen av FreeBSD 13 togs med skandal bort kod med implementationen av VPN-protokollet WireGuard, utvecklad pÄ uppdrag av företaget Netgate utan konsultation med utvecklarna av originalet WireGuard, och redan inkluderad i stabila versioner av distrodistrubitionen pfSense. Efter en granskning av koden av Jason A. Donenfeld, skaparen av original WireGuard, visade det sig att den föreslagna implementationen för FreeBSD av WireGuard var ett exempel pÄ lÄgt kvalificerad kod, fylld med buffertöverskridningar och som bröt mot GPL-licensen.
I implementationen upptÀcktes katastrofala brister i kryptografikoden, en del av WireGuard-protokollet hade utelÀmnats, det fanns fel som ledde till kÀrnkrash och kringgÄdde skyddsÄtgÀrder, och för indata anvÀndes buffertar med fast storlek. Kvaliteten pÄ koden talar mycket för sig sjÀlv med bristen pÄ kontroller, som alltid returnerar vÀrdet 'true', samt glömda debug printf som visar parametrar som anvÀnds för kryptering, och anvÀndningen av funktionen sleep för att förhindra race conditions.
Vissa delar av koden, som funktionen crypto_xor, bröt mot GPL-licensen dÄ de hade överförts frÄn WireGuard-implementationen utvecklad för Linux. Till slut tog Jason Donenfeld tillsammans med Kyle Evans och Matt Dunwoodie, skaparen av WireGuard-porten för OpenBSD, sig an att omarbeta den problematiska implementationen och bytte ut hela koden frÄn den utvecklare som anlitats av Netgate inom en vecka. Den omarbetade versionen slÀpptes som en separat uppsÀttning patchar, lagts i projektets WireGuard-repository och har Ànnu inte blivit en del av FreeBSD.
Det Àr intressant att inget alls pekade mot problem i början. Företaget Netgate, som ville fÄ möjlighet att anvÀnda WireGuard i pfSense-distributionen, anstÀllde Matthew Macy, som har god kunskap om FreeBSD:s kÀrna och nÀtverksstack. Han har medverkat i buggfixning och har erfarenhet av att utveckla nÀtverksdrivrutiner för detta operativsystem. Macy fick ett flexibelt schema utan deadlines och mellanliggande granskningar. Utvecklarna som hade samarbetat med Macy i arbetet med FreeBSD beskrev honom som en begÄvad och professionell programmerare, som begick ungefÀr lika mÄnga misstag som andra och som reagerade adekvat pÄ kritik. Den dÄliga kvaliteten pÄ koden i implementeringen av WireGuard för FreeBSD kom som en överraskning för dem.
Efter nio mÄnaders arbete lade Macy i december förra Äret till sin implementering i HEAD-grenen utan slutförd granskning och testning av externa deltagare, vilket anvÀndes för att skapa releasen FreeBSD 13. Utvecklingen utfördes utan kontakt med utvecklarna av den ursprungliga WireGuard samt portarna för OpenBSD och NetBSD. I februari integrerade Netgate WireGuard i den stabila release av pfSense 2.5.0 och började leverera den i brandvÀggar baserade pÄ det. Efter att problem upptÀcktes togs koden för WireGuard bort frÄn pfSense.
I den tillagda koden upptÀcktes kritiska sÄrbarheter som anvÀndes i 0-dagars-exploits, men Netgate erkÀnde till en början inte förekomsten av sÄrbarheterna och försökte skylla pÄ utvecklaren av den ursprungliga WireGuard för angrepp och partiskhet, vilket pÄverkade deras rykte negativt. Portens utvecklare avfÀrdade först anklagelserna om kodkvalitet som överdrivna, men efter att felen visats upp, insÄg han att en verkligt viktig frÄga var avsaknaden av adekvat granskning av kodkvaliteten i FreeBSD, eftersom problemen förblev oidentifierade i mÄnga mÄnader (representanter för Netgate angav att offentlig granskning inleddes redan i augusti 2020, men vissa utvecklare av FreeBSD pÄpekade att granskningen i Phabricator stÀngdes av Macy utan att genomföras och med ignorering av kommentarer). FreeBSD:s Core Team reagerade pÄ incidenten med ett löfte att modernisera processen för kodgranskning.
Matthew Maisy, en utvecklare av den problematiska porten för FreeBSD, kommenterade situationen med att han gjorde ett stort misstag genom att ta sig an arbetet utan att vara redo att genomföra detta projekt. Det resulterande resultatet förklarar Maisy med kÀnslomÀssig utmattning och problem som orsakades av postcovid-syndromet. Samtidigt lyckades inte Maisy hitta modet att avstÄ frÄn de Ätaganden han tagit pÄ sig och försökte fullfölja projektet.
Maisys tillstÄnd kan ocksÄ ha pÄverkats av den senaste fÀngelsestraff han fick för olagliga aktiviteter i sina försök att fÄ ut hyresgÀster frÄn sitt nyinköpta hus som inte ville flytta frivilligt. Tillsammans med sin fru saboterade de balkarna i taket och bröt upp hÄl i golven för att göra huset obeboeligt, samt försökte skrÀmma hyresgÀsterna, bröt sig in i bebodda lÀgenheter och tog med sig Àgodelar (aktionen bedömdes som inbrott). För att undvika ansvar för de begÄngna handlingarna flydde Maisy och hans fru till Italien, men han utlÀmnades till USA och avtjÀnade mer Àn fyra Är i fÀngelse.
KĂ€lla: opennet.ru
