No koda bÄzes, uz kuras tika izveidots FreeBSD 13 laidiens, skandalozi tika iestrÄdÄts WireGuard VPN protokola kods, kas tika izstrÄdÄts pÄc Netgate pasÅ«tÄ«juma bez konsultÄcijÄm ar sÄkotnÄjÄ WireGuard izstrÄdÄtÄjiem un jau iekļauts pfSense izplatÄ«Å”anas stabilajos laidienos. noÅemts. PÄc koda pÄrskatÄ«Å”anas, ko veica Džeisons A. Donenfelds, oriÄ£inÄlÄ WireGuard autors, izrÄdÄ«jÄs, ka FreeBSD piedÄvÄtÄ WireGuard ievieÅ”ana bija nederÄ«gs kods, kas ir pÄrpildÄ«ts ar bufera pÄrpildÄ«Å”anu un pÄrkÄpj GPL.
IevieÅ”anÄ bija katastrofÄli kriptogrÄfijas koda trÅ«kumi, daļa WireGuard protokola tika izlaista, bija kļūdas, kas izraisÄ«ja kodola avÄriju un droŔības metožu apieÅ”anu, un ievades datiem tika izmantoti fiksÄta izmÄra buferi. Stublu klÄtbÅ«tne pÄrbaužu vietÄ, kas vienmÄr atgriež ātrueā, kÄ arÄ« aizmirstÄs atkļūdoÅ”anas printfs ar Å”ifrÄÅ”anai izmantoto parametru izvadi un miega funkcijas izmantoÅ”ana sacensÄ«bu apstÄkļu novÄrÅ”anai daudz saka par koda kvalitÄti.
Dažas koda daļas, piemÄram, funkcija crypto_xor, tika pÄrnestas no WireGuard ievieÅ”anas, kas izstrÄdÄta operÄtÄjsistÄmai Linux, pÄrkÄpjot GPL licenci. RezultÄtÄ Džeisons DonenfÄ«lds kopÄ ar Kailu Evansu un Metu Danvudiju (OpenBSD WireGuard porta autors) uzÅÄmÄs uzdevumu pÄrstrÄdÄt problemÄtisko ievieÅ”anu un nedÄļas laikÄ pilnÄ«bÄ nomainÄ«ja visu Netgate nolÄ«gtÄ izstrÄdÄtÄja kodu. . ModificÄtÄ versija tika izlaista kÄ atseviŔķs ielÄpu komplekts, ievietots WireGuard projektu repozitorijÄ un vÄl nav iekļauts FreeBSD.
Interesanti, ka sÄkotnÄji nekas neliecinÄja par problÄmÄm; Netgate, kas vÄlÄjÄs izmantot WireGuard pfSense izplatÄ«Å”anÄ, nolÄ«ga MetjÅ« Meisiju, kurÅ” labi pÄrzina FreeBSD kodolu un tÄ«kla steku, ir iesaistÄ«ts kļūdu laboÅ”anÄ un viÅam ir pieredze izstrÄdÄ. Ŕīs operÄtÄjsistÄmas tÄ«kla draiveri. Meisijai tika noteikts elastÄ«gs grafiks bez termiÅiem vai vidusposma pÄrbaudÄm. IzstrÄdÄtÄji, kas satika Macy, strÄdÄjot pie FreeBSD, raksturoja viÅu kÄ talantÄ«gu un profesionÄlu programmÄtÄju, kurÅ” nepieļÄva vairÄk kļūdu nekÄ citi un adekvÄti reaÄ£Äja uz kritiku. FreeBSD WireGuard ievieÅ”anas koda sliktÄ kvalitÄte viÅiem bija pÄrsteigums.
PÄc 9 mÄneÅ”u darba Macy pievienoja savu implementÄciju HEAD filiÄlei, kas tika izmantota FreeBSD 13 laidiena formulÄÅ”anai, pagÄjuÅ”Ä gada decembrÄ«, nepabeidzot salÄ«dzinoÅ”o pÄrskatÄ«Å”anu un testÄÅ”anu. IzstrÄde tika veikta bez saziÅas ar sÄkotnÄjÄ WireGuard izstrÄdÄtÄjiem un OpenBSD un NetBSD porti. FebruÄrÄ« Netgate integrÄja WireGuard stabilajÄ pfSense 2.5.0 laidienÄ un sÄka piegÄdÄt uz to balstÄ«tus ugunsmÅ«rus. PÄc problÄmu identificÄÅ”anas WireGuard kods tika noÅemts no pfSense.
Pievienotais kods atklÄja kritiskas ievainojamÄ«bas, kas tika izmantotas 0-dienu ekspluatÄcijÄs, taÄu sÄkumÄ Netgate neatzina ievainojamÄ«bu esamÄ«bu un mÄÄ£inÄja apsÅ«dzÄt sÄkotnÄjÄ WireGuard izstrÄdÄtÄju uzbrukumos un aizspriedumos, kas negatÄ«vi ietekmÄja tÄ reputÄciju. Portu izstrÄdÄtÄjs sÄkotnÄji noraidÄ«ja apgalvojumus par koda kvalitÄti un uzskatÄ«ja tos par pÄrspÄ«lÄtiem, taÄu pÄc kļūdu demonstrÄÅ”anas viÅÅ” vÄrsa uzmanÄ«bu uz to, ka patieÅ”Äm bÅ«tiska problÄma ir koda kvalitÄtes pienÄcÄ«gas pÄrbaudes trÅ«kums FreeBSD, jo problÄmas palika neatklÄtas daudzus mÄneÅ”us. (Netgate pÄrstÄvji norÄdÄ«ja, ka publiskais apskats tika palaists 2020. gada augustÄ, taÄu atseviŔķi FreeBSD izstrÄdÄtÄji atzÄ«mÄja, ka programmÄ Phabricator Macy pÄrskatÄ«Å”anu slÄdza bez pabeigÅ”anas un ar ignorÄtajiem komentÄriem). FreeBSD Core Team reaÄ£Äja uz incidentu, solot modernizÄt savus koda pÄrskatÄ«Å”anas procesus.
MetjÅ« Meisijs, problemÄtiskÄ FreeBSD porta izstrÄdÄtÄjs, komentÄja situÄciju, sakot, ka pieļÄva lielu kļūdu, uzÅemoties darbu, nebÅ«dams gatavs Ä«stenot projektu. Meisija iegÅ«to rezultÄtu skaidro ar emocionÄlu izdegÅ”anu un problÄmu, kas raduÅ”Äs postCovid sindroma dÄļ. TajÄ paÅ”Ä laikÄ Meisijs neatrada apÅÄmÄ«bu atteikties no jau uzÅemtajÄm saistÄ«bÄm un centÄs projektu novest lÄ«dz galam.
Meisija stÄvokli, iespÄjams, ietekmÄja arÄ« nesen piespriestais cietumsods, ko viÅÅ” saÅÄma par nelikumÄ«gu mÄÄ£inÄjumu izlikt no iegÄdÄtÄ mÄjokļa Ä«rniekus, kuri nevÄlÄjÄs brÄ«vprÄtÄ«gi izvÄkties. TÄ vietÄ viÅÅ” ar sievu zÄÄ£Äja grÄ«das sijas un lauza bedrÄ«tes grÄ«dÄs, lai mÄju padarÄ«tu nederÄ«gu, kÄ arÄ« mÄÄ£inÄja iebiedÄt iedzÄ«votÄjus, ielauzÄs apdzÄ«votos dzÄ«vokļos un iznesa mantas (darbÄ«ba klasificÄta kÄ ielauÅ”anÄs). Lai izvairÄ«tos no atbildÄ«bas par savu rÄ«cÄ«bu, Meisijs un viÅa sieva aizbÄga uz ItÄliju, taÄu tika izdoti ASV un izcieta vairÄk nekÄ Äetrus gadus cietumÄ.
Avots: opennet.ru