Из FreeBSD удалили халтурную реализацию WireGuard

Недавно из кодовой базы для релиза FreeBSD 13 удалили реализацию протокола VPN WireGuard от компании Netgate. Всё потому, что автор WireGuard Джейсон Доненфилд проверил код и пришёл к выводу, что код очень низкого качества. В нём было много багов и он нарушал лицензию GPL.

Разработчики написали ошибки в коде криптографии. Ещё оставили баги, вызывавшие крах ядра или переполнение буфера.  Пропустили часть протокола WireGuard, поставили кучу заглушек, вместо проверок выдававших простоянное “true”. Это лишь часть проблем.

Немного кода просто взяли и перенесли из WireGuard для Linux, нарушая лицензию GPL. Доденфилд, Мэтт Данвуди и Кайл Эванс в итоге за неделю поменяли код от компании Netgate. Переработанный код выпустили набором патчей в репозитории WireGuard; в состав FreeBSD он пока не вошёл.

Всё началось с того, что Netgate наняли для развития WireGuard в своём дистрибутиве pfSense разработчика Мэттью Мейси. Он разбирается в ядре и сетях в FreeDSB, исправляет ошибки в дистрибутиве и пишет сетевые драйвера. Мейси дали свободный график, так как коллеги характеризовали его как профессионала, адекватно воспринимающего критику. Итог его работы стал для всех шоком.

Мейси работал над задачей 9 месяцев и в декабре 2020 года без рецензий и тестов добавил код в ветку HEAD, из которой код брали напрямую для релиза FreeBSD 13. В феврале Netgate добавила реализацию Мейси в стабильный pfSense 2.5.0, из которого начали поставлять межсетевые экраны. Сейчас код WireGuard удалили из pfSense.

В коде нашли критические уязвимости, которые использовали в 0-day эксплойтах. Netgate сначала всё отрицала и обвиняла разработчика оригинального WireGuard в травле. В итоге выяснилось, что у FreeBSD есть большие проблемы с рецензированием, и Core Team пообещала улучшить это.

Мэттью Мейси объяснил низкое качество кода тем, что не был готов воплотить этот проект. Он эмоционально выгорел, получил постковидный синдром и побоялся отказаться от работы. Кроме того, Мейси получил тюремный срок из-за попытки выселить жильцов дома, который он купил. Он провёл в тюрме 4 года.

Вывод: любите людей и работайте с умом. Овертаймы не идут на пользу.

Добавить комментарий

Спасибо, что поделились