От кода, на базе которого был подготовлен релиз FreeBSD 13, был с большим скандалом удалён код реализации протокола VPN WireGuard, разработанный по заказу компании Netgate без консультаций с создателями оригинального WireGuard, который уже был включён в стабильные версии дистрибутива pfSense. По результатам анализа кода Джейсона Доненфилда, автора оригинального WireGuard, было установлено, что реализация WireGuard для FreeBSD представляет собой пример низкокачественного кода, переполненного буферами и нарушающего лицензию GPL.
В реализации были обнаружены катастрофические недостатки в криптографическом коде, была пропущена часть протокола WireGuard, присутствовали ошибки, приводившие к сбоям ядра и обходу защитных механизмов, для входных данных использовались буферы фиксированной длины. О качестве кода свидетельствует наличие заглушек вместо полноценных проверок, которые всегда возвращали значение «true», а также забытые отладочные printf, выводящие параметры, используемые для шифрования, и применение функции sleep для предотвращения состояний гонки.
Некоторые части кода, такие как функция crypto_xor, нарушающие лицензию GPL, были перенесены из реализации WireGuard, разработанной для Linux. В итоге Джейсон Доненфилд вместе с Кайлом Эвансом и Мэттом Данвуди, автором порта WireGuard для OpenBSD, взялись за переработку проблемной реализации и за неделю полностью заменили весь код разработчика, нанятого Netgate. Переработанный вариант был выпущен отдельным набором патчей, размещённых в репозитории проекта WireGuard и пока не вошёл в состав FreeBSD.
Интересно, че в началото нищо не предвещаваше беда, компанията Netgate, която желаеше да получи възможност за използване на WireGuard в дистрибуцията pfSense, нае Мэттью Мэйси (Matthew Macy), добре запознат с ядрото и мрежовия стек на FreeBSD, участващ в поправката на грешки и имащ опит в разработването на мрежови драйвери за тази операционна система. Мэйси беше предоставен свободен график без дедлайни и междинни проверки. Разработчиците, които работеха с Мэйси по FreeBSD, го описваха като талантлив и професионален програмист, допускащ не повече грешки от другите и адекватно реагиращ на критика. Тъжното качество на кода на реализацията на WireGuard за FreeBSD ги изненада.
След 9 месеца работа през декември миналата година, Мэйси добави своята реализация в клон HEAD, без завършено рецензиране и тестване от трети страни, който беше използван за формирането на релиза FreeBSD 13. Разработката беше извършена без връзка с разработчиците на оригиналния WireGuard и портовете за OpenBSD и NetBSD. През февруари компанията Netgate интегрира WireGuard в стабилната версия pfSense 2.5.0 и започна доставките в междусетевите стени, основани на него. След откритите проблеми, кодът на WireGuard беше премахнат от pfSense.
В добавения код бяха открити критични уязвимости, които бяха използвани в 0-day експлойти, но Netgate в началото не признаваше наличието на уязвимости и се опитваше да обвини разработчика на оригиналния WireGuard в атаки и предвзятост, което негативно се отрази на репутацията ѝ. Разработчикът на порта първоначално отхвърляше претенциите за качеството на кода и ги смяташе за преувеличени, но след демонстрацията на грешките обърна внимание, че наистина важен проблем е отсъствието на адекватно рецензиране на качеството на кода в FreeBSD, тъй като проблемите оставали незабелязани много месеци (представителите на Netgate посочиха, че публичното рецензиране е било стартирано още през август 2020 г., но отделни разработчици на FreeBSD отбелязаха, че в Phabricator рецензиите бяха затворени от Мэйси без изпълнение и с игнориране на коментарите). Екипът на FreeBSD Core Team реагира на инцидента с обещание да модернизира процесите по проверка на кода.
Матю Мейси, разработчик на проблемния порт за FreeBSD, коментира ситуацията като казва, че е направил голяма грешка, като се е захванал с работата, без да е готов да реализира проекта. Полученият резултат Мейси обяснява с емоционално изчерпване и проблеми, произтекли от постковидния синдром. Въпреки това, Мейси не намери смелост да се откаже от поетите ангажименти и се опита да доведе проекта до край.
Състоянието на Мейси също така е под влиянието на скорошната му присъда в затвора, която получи за незаконни действия в опит за изселване на наематели от закупената от него къща, които не желаят да се изнесат доброволно. Заедно със съпругата си те изпили носещите греди и пробили дупки в подовете, за да направят къщата непригодна за живеене, а също така се опитвали да заплашват наемателите, разчупили обитавани апартаменти и изнесли наличните вещи (действието е квалифицирано като кражба с взлом). За да избегне отговорност за извършените действия, Мейси заедно със съпругата си избяга в Италия, но беше экстрадиран в САЩ и излежа повече от четири години в затвора.
Източник: opennet.ru
