FreeBSD Core Team Statement on FreeBSD Development Processes
lists.freebsd.org
lists.freebsd.org
There is a reason there's a growing push of people leaving pfSense for OPNsense.
Remember when they bought their competitor's domain and put up this? http://web.archive.org/web/20160314132836/http:/www.opnsense...
Just checked:
r/opnsense is a private community
The moderators of r/opnsense have set this community to private.
Only approved members can view and take part in its discussions.The response then from Netgate was very much on-brand, they indeed have a history of colorful PR. And of course they are ultimately responsible for things they put their name on.
But this also highlights how difficult participating in open source can be.
Netgate seems to want to brag about their contributions (despite the fact they don't even show up on the foundation page) while also somehow not taking any responsibility for when they screw up.
https://freebsdfoundation.org/our-donors/donors/?donationYea...
I mean, I see what you're saying, but I can't 100% agree with this. As a textbook example, I still remember way back when Apple was getting started with KHTML and what would eventually become WebCore and WebKit, and they got quite a lot of heat for a while early on for just doing big fat block code dumps without following project procedures and such. "Contributions welcome" is true for anyone, but there is an implicit (and often these days explicit for larger projects) "...as long as you follow our code standards, communicate, put in the basic effort to do a professional job, etc". Contributions don't have to be perfect but there needs to be some meat there or it's just a waste of everyone's time. Even for a big corp doing big work, just "throwing code over the fence" so to speak often is not appreciated.
Netgate hired him, so they were ultimately responsible. They apparently did a very, very poor job of both checking on him and supporting him, which is on them. They didn't see about coordinating with the actual guy who created the entire thing. They didn't do a basic sanity check of what he'd finished before trying to have it pushed right to main, and they were aggressive about deploying a security product that was really really shoddy and in context quite dangerous right out to the general public. And then they were complete dicks about even relatively low-key efforts to try to fix it with as much face saved all around, too much even.
I'm sorry, but that doesn't actually seem like a great example of how corps can participate productively. Nor do I honestly think it "highlights how difficult participating in open source can be". Can't just expect unlimited gratitude purely for volunteering something useless/dangerous.
Even the areas of it that have been "open" have largely hidden, incomplete and non-buildable for the longest.
It's really a mixed bag. They pay for a bit of development but throw their weight around in ways that are harmful to the project.
I dunno, I was shopping around for network appliances and I considered a netgate box until I saw how Netgate representatives conduct themselves on their reddit. Participating in open source doesn't need to be difficult; a modicum of humility is all it ought to take but the Netgate folks seem arrogant an abrasive pretty much as their default position.
Gave my money to someone else instead.
Yes, but Netgate's TSNR is based on Linux. So it seems they will be pivoting to Linux, or at least have less emphasis on FreeBSD.
My guess is that going forward there will be less money and participation going to FreeBSD from Netgate. Whether that is a good thing or bad thing depends on your perspective.
Our commitment to FreeBSD continues unabated.
https://abcnews.go.com/US/exclusive-landlord-hell-defends-te...
Just in case there wasn't enough evidence that the people at Netgate are not good human beings.
0. https://arstechnica.com/gadgets/2021/03/buffer-overruns-lice...
They caught it, the person has lost trust, they all moved on. Big whup.
Bad code going unreviewed from a single author into a main branch from which people build production systems is definitely beyond "Big whup" severity. The equivalent would be if one person pushed an unreviewed driver into Fedora Rawhide or an Ubuntu Beta, say. It's a clear violation of the principles behind the service the distro is supposed to be providing for you.
There are a zillion ways to make sure code gets reviewed before merge. Linux does it informally via Signed-off-by headers and a tree structure of trusted maintainers. Services like github provided automated tooling to enforce review. FreeBSD needs to just pick one. It's 2021, for goodness sake. A fixed COMMITTERS list just isn't going to cut it.
Call me mean, but I don't associate FreeBSD with a project that is quick to adopt modern development practices.
I remember the time that FreeBSD moved from CVS to SVN, and it was hailed as revolutionary. The world was already embracing Git, which, despite its flaws back then, was perceived as a bliss compared to SVN.
There is much value in not constantly hopping onto every hypetrain that comes along. For a reliable project, I want to see engineering practices that favor remaining on proven stable technologies as long as possible. Let all the hypes die down, don't go down with them.
An analogy would be lawyers. They don't represent family because they may overlook something they think is meaningless, but a "fresh pair of eyes" would say is very important. With code, it's the same way: your eyes are biased towards your own code which can cause you to miss a bug.
https://lobste.rs/s/sh2kcf/buffer_overruns_license_violation...
I mean, the question of how the rough-draft Wireguard implementation made it into the kernel in the first place without sufficient review is a pretty big question.
I'm happy the FreeBSD team is addressing it directly.
We all have times when we don't ship our best work. Life happens. It's also worth noting to the readers that Donenfeld's criticism of bad code is completely dispassionate and that he isn't above criticising himself. He seems to be genuinely among the nicest people in the community.
This seems unfortunate for mmacy and unfortunately exacerbated by the behavior of Netgate.
Er, what? Donenfeld's hyperbole and wild characterizations are part of what fanned the flames and made this a tech-press mess instead of some quiet collaboration and bug reports.[0]
> The first step was assessing the current state of the code the previous developer had dumped into the tree. It was not pretty. I imagined strange Internet voices jeering, “this is what gives C a bad name!” There were random sleeps added to “fix” race conditions, validation functions that just returned true, catastrophic cryptographic vulnerabilities, whole parts of the protocol unimplemented, kernel panics, security bypasses, overflows, random printf statements deep in crypto code, the most spectacular buffer overflows, and the whole litany of awful things that go wrong when people aren’t careful when they write C.
While some details are based in reality, the paragraph goes well beyond the realm of truth. It makes totally unnecessarily jabs at Macy as "the previous developer." He is (broadly) a competent C/kernel developer. Yes, he did an inadequate job here. No, some Greek chorus isn't jeering about the C code just because stylistically it differs from how Donenfeld would write it.
To my knowledge:
* There was only a single "validation function that returned true," and it involved validating an ip address internal to a validated and decoded message from a wg peer. The message is already cryptographically verified; only peers that are part of the same mesh could spoof IPs outside of their configured range. (Donenfeld described this as validation functions, plural.)
* Donenfeld's only ever found a single real buffer overflow. It's the one where Jumbo frames can cause heap overflow. His other buffer overflow claims are not realistic due to other constraints on the inputs. Mostly they seem to reflect stylistic preferences about using mallocarray(a, n) instead of malloc(a * n). So the claims of "spectacular" buffer overflow(s), plural, feels disingenuous. (I don't know what "spectacular" is supposed to mean in a cold technical critique, either.)
Maybe this is "dispassionate," but it seems unnecessarily careless with the facts when writing technical criticism.
To be clear, Netgate's press response to this was totally inappropriate and also just a dumb move. The public narrative would be more in their favor if they had been totally silent instead of posting the angry screed they did.
Ars takes Donenfeld's hyperbole and runs with it, fact-checking only the easily verified claims. And there is some truthiness to it! Unfortunately, it's the rest of the communication that leaves something wanting.
Anyway, I love wireguard and what Donenfeld has accomplished. I just wish the guy would be a bit more considerate and less colorful when writing sensitive emails.
[0]: https://lists.zx2c4.com/pipermail/wireguard/2021-March/00649...
Would you employ somebody for work on a security product that obviously behaved as a maniac, basically robbed his own family of savings and landed together with his wife in prison for years? Is this person that good that there was literally nobody else to ask? It seems, Donenfeld at al. did a good job in 1-2 weeks porting code to FreeBSD, it may be better quality than the Macy's quasi-original developed over months of work. (Some of the code seems to have been rather similar to a differently licensed code elsewhere.)
* Ok, so Donenfeld maybe is right, maybe he just dropped an extra s in an _email_. * The buffer overflow was quite spectacular. A network professional in a security product should handle jumbo frames. Maybe there are other less obvious and maybe less spectacular overflows elsewhere. This one just hit Jim Salters eye (grep).
Btw. how would you feel about somebody basically doing your trademark (Wireguard in this case) a bad reputation? I could understand it, if Donenfeld took it personally. It seems though, he didn't. Macy on the other hand wouldn't admit to the poor quality of the software he wrote until pressured with clear evidence and even then he couldn't fully swallow his ego.
Ars Technica/ Jim Salter did some great journalism here. It goes way beyond the quality of the average article even at Ars and that is a very decent bar.
Yes, Wireguard is great, Donenfeld and friends have done a tremendous job over the years.
For what it's worth, I tend to advocate for using mallocarray and would use mallocarray in the same places Donenfeld does here. But unless overflow can actually happen, it's stylistic rather than "bug."
https://lists.freebsd.org/pipermail/freebsd-current/2015-Feb...
https://old.reddit.com/r/BSD/comments/cid3ud/freebsdsa1912te...
https://svnweb.freebsd.org/base?view=revision&revision=32439...
https://lists.freebsd.org/pipermail/svn-src-head/2018-June/1...
https://lists.freebsd.org/pipermail/freebsd-security/2018-Ja...
Although I initially thought the Illumos code review and commit processes (request to integrate; RTI) [0] [1] seemed overly-cumbersome and laborious (and to some extent, perhaps they are still slightly), I now have a much greater appreciation for the safety mechanisms built in.
Strictly based on code quality and engineering I wish we could rewrite history, have Sun open up OpenSolaris sooner and faster (and perhaps with a different license) such that Illumos stood as a/the dominant Linux alternative today. But maybe that's just nostalgia talking.
Best of luck to FreeBSD going forward; I'm sure this event will lead to even better processes in the future.
[0] https://illumos.org/docs/contributing/ [1] https://illumos.org/docs/contributing/#code-review
It’s fine for corporate and medium sized networks but not worth it for home stuff any more. Just costs time, money and eats a lot of power.
I've watched it before and it is compelling; however, at the end of the day, an OS that tries to take security seriously is probably better than one that doesn't. The OpenBSD code is small and I suspect that the defects/KLOC is far less than other projects capable of routing. I'd love to hear more critiques for using it as a home router though.
I look forward to wg, and I understand the rush to want it out.
The folks behind PVStudio regularly spam the /r/cpp subreddit with actually very intersting articles about issues their static analyser finds in several open source projects. Does anyone here use it?
(I do not work for them or use their product)
It is very hard to be a static analysis tool developer. All the easy cases have been done, most have been folded into the compiler. What is left is the hard cases where you have to figure out how to not trigger on the false positives. Get this wrong and your customers will dump you - doesn't matter if you get it wrong by not detection many problems, or you get it wrong by too many false positives. It doesn't help that once the customer has fixed all the problems they forget about them, but the false positives come up all the time.
You can't get out by making it possible to mark false positives. Once you allow that everyone will just get in the habit of marking all messages as a false positive. I tracked one production bug to a line that was immediately preceded by a false positive suppression - the problem was real but the someone decided instead of thinking they would suppress the issue like every other one found.
Not sure that any of that has to do with FreeBSD's use of Coverity, which I'm curious about. (rereading the OP I guess I'm not sure the FreeBSD project itself is a regular user of Coverity or if there's something else to it)
Linux still has WONT FIX kernel bugs, WONT FIX bugs do not exist in freebsd that are userland based, they fix both kernel and userland.
When someone publish a +10kloc patch in an area maybe 1 or 2 other developers are competent in, nobody's gonna read it in details. Heck, I probably couldn't even review my code from 1 year ago without lots of metadata/comments attached to it.
What is unfortunate is that the project has not publicly defended itself, which is what core should have addressed -- that the situation has been broadly and unfairly misreported. The history of wireguard is bizarre, Donnefeld is hellbent on total control of both the protocol and implementations. He blew the same gasket on NetBSD developers for implementing his protocol http://mail-index.netbsd.org/tech-net/2020/08/22/msg007842.h.... The real story here, that the Ars reporter missed because he allowed himself to be compromised by Donnefeld, is how this single person is accumulating and aiming a cult following as he chooses and what are the security and business implications of this in the future. This is a simple tunneling protocol. I don't expect WG to end well. At the very least, you are subject to public zero days and shakedowns if you don't do exactly what Donnefeld wants. A new black hat open source business model of monetization by mob rule and "scooping" low intellect reporters instead of license and implementation.
NetBSD hasn't renamed "wireguard" which they said they were considering as an option if Jason was going to keep pushing back on the existing code. The lack of major changes to the code makes me think they also didn't take him up on his offer to scrap the whole thing and start from scratch or port the OpenBSD implementation.
Anyone happen to have any further insight?
Given how bungled implementations can apparently end up (case in point), as a user of wireguard, I'm like.. thankful I guess?
This _is_ crypto/security stuff, and I'm glad it is being held to a higher standard by _someone_ at least.
There is also a layer 8 and 9 vulnerability. One guy now tightly controls a protocol in several free *nix kernels and has interesting reactions whenever anything happens without his blessing. He was able to cause a disproportionate reaction by talking to a journalist. This probably doesn't matter if you are encrypting your home PC traffic but it does to people who work in the Internet industry. Say whatever you want about the particular technology and particular individuals, it boils down to whether you think the desire for control of implementation is a weird situation or not.
Do you believe that a blackhat presentation taints the code quality of WireGuard? Do you believe that Donnefeld's desire to maintain tight control over kernel implementations suggests he has ulterior motives?