How Ubiquiti Networks Is Creatively Violating the GPL
New submitter futuristicrabbit writes: Networking company Ubiquiti Networks violates the GPL, but not in the way you'd expect. Not only did the kernel shipped in their router firmware not correspond to the sources given, but their failure to provide the source led to a vulnerability they created being unpatched long after its disclosure. They're maintaining the appearance of compliance without actually complying with the GPL.
The GPL was violated. Doesn't matter how they did it.
Isn't outing a manufacturer over product issues more of a Twitter thing?
Interesting, I have been looking at their WISP stuff for awhile, and one thing I liked was they were using lots of COTS and open source software. Funny I would not want to publish my code either, as apparently it was buggy, they would have been lash wipped by Linus!
And in what way is this not how I'd expect?
Sleazy corporation skirts around rules, film at 11.
Lost at C:>. Found at C.
I have the edgerouter POE, which is a fantastic piece of hardware, but it still doesn't support proper vlan tagging controls on the embedded switch ports. A feature I would add myself but the hardware isn't open enough to do it without a lot of reverse engineering.
So, this makes me wonder if they are sort of stuck between stupid hardware companies and the GPL. They may not be able to publish changes to the open source products without violating their NDAs with the manufactures of assorted chips/etc they use.
I'm not trying to defend them, just point out a situation I've found myself in. GPL software is great for bootstraping a project, but for some of these platforms it can be a real PITA. I feel for small companies like Ubiquiti. But I'm pretty irritated by Sony, broadcom, cisco, etc which are also playing the same game.
I was expecting three things: fear, surprise, ruthless efficiency, and an almost fanatical devotion to the Pope.
Never attribute to malice that which is adequately explained by stupidity.
Some settling may occur during posting.
Never attribute to stupidity when it's a habitual offender.
ELOI, ELOI, LAMA SABACHTHANI!?
How will this impact BroadBand HamNet (formerly HSMM) which mainly targets Ubiquiti hardware, and obsolete Linksys stuff?
Red to red, black to black. Switch it on, but stand well back.
Never attribute to malice that which is adequately explained by stupidity.
Raise your hands if you have ever worked somewhere where there was an official build system and most developers did not get matching binaries from their development systems.
So you are saying that corporations don't trust the GPL because they do not comply with the GPL? Seems like an easy fix isn't it?
What's not to trust? Either you use the GPL code knowing full well the ramifications of doings so... or you Write It Yourself.
I am very small, utmostly microscopic.
Why because they want to steal other peoples work? It's a fucking copyright violation regardless of it's GPL status.
Sorry, teleporters just kill you and then make a copy. A perfect, soul-less copy.
Yeah, really odd that. They don't trust the GPL because they can get into trouble when ignoring the license of someone else's code.
Unlike Microsoft...
Uh...
Well, I guess corporations don't trust EULAs or ToS either, then.
Right?
that is four things ...
Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
This issue is why people are leaving... the GPL and going to BSD, MIT, others.
Last time I checked, WiFi routers are still full of GPLed software such as Linux, u-boot and busybox. What's the BSD or MIT alternative? The only manufacturer selling BSD-based routers I know is Apple. I don't think companies such as Linksys, Netgear or TP-Link have the resources to develop their own OS. It's either they use Linux and comply with the GPL, or pay for a proprietary alternative.
Sorry, but what?
Nobody forced the company to use GPL stuff. Nobody forced them to build a product around it.
That they failed to comply with their obligations under the license is their own damned problem.
Use the GPL stuff, don't use the GPL stuff .. it's your choice. But if you choose to use the GPL stuff, you don't get to piss and moan that you don't want to live by the license.
Corporations aren't entitled to use GPL code and not adhere to the license. It's not a situation in which you can just decide how you'll interpret releasing the code.
These corporations which don't trust the GPL are entirely free to piss off and write their own code, or start with something like BSD which says "go ahead, do whatever you want with it".
Lost at C:>. Found at C.
that is four things ...
https://www.youtube.com/watch?v=vt0Y39eMvpI
So you are saying that corporations don't trust the GPL because they do not comply with the GPL? Seems like an easy fix isn't it?
This.
It isn't the GPL that has earned distrust here. It's Ubiquiti Networks.
If it weren't for deadlines, nothing would be late.
Dev: we moved to new Gentoo servers over the weekend and the script that exports builds is broken. it dies trying to get to the compliance server
Ops: we shut that thing down, its ancient and would take too much time to patch for heartbleed. besides it only hosted an FTP server with some open source code. use the new server, USCMPSRV013435 to sync the GPL code outside the firewall
PHB: NO DONT i read an article on how GPL code is viral and also Edward Snowden stole Wikileaks 6 months ago from chinese hackers in the presidents internet.
Ops: er...okay...sooo....the last data up there is what we restored from old sparky...
Dev: oh dear thats ancient....we had to patch new GPL'd code into the product to get ipv6 to stop crashing
Good people go to bed earlier.
Probably that they were not providing the source at all, not that they were providing a fake source.
When you cant win, ad hominem.
You are not getting my .config and trivial kernel patches either (for value of patches, a few well placed /* */'s). Do your own homework.
Well, this just screwed the legal pooch... your posting pretty much kills any recovery change you hd in court.
They could easily claim:
(1) Witness tampering
(2) Jury tampering
(3) Impossibility of a fair hearing (and they get to pick the venue; how's East Texas sound?)
(4) They were attempting to remedy the issue, and this posting did irreparable harm to their business
Most likely they are just trying to hide a hard-coded signing key.
Most likely, you are just bitching because you can't run your firmware on their hardware without the hard coded signing key.
The linked site in TFS is suffering from (possibly slashdot-induced) overload. Here's the text from the linked page:
Four ways Ubiquiti Networks is creatively violating the GPL
Ubiquiti Networks is a company which makes long-range wireless equipment. Admittedly, you can do some pretty amazing stuff with it, but the company has a dark history of securities fraud, violation of U.S. sanctions, trademark and copyright lawsuits and software patents, which isn't as amazing.
In addition to this, they have been violating the GPL. However, because they did it creatively, most people don't know about it, and Ubiquiti still hasn't come into compliance.
Here are four ways that they have succeeded in making the violations hard to notice, and even harder to act upon.
1. Giving the appearance of compliance
'You can find the complete and corresponding source in the GPL archive.'
Ubiquiti had a website set up where you can download tarballs purportedly containing all GPL source for each and every firmware release. (I can't find it any more, but that doesn't mean that it isn't still there.) When you look through these tarballs, they appear to be complete, and there are build instructions which allow you to make your own custom firmware.
It's only when you look closer that you start to notice problems, such as...
2. Refusing to provide the source to their modified bootloader, even though they made changes that introduced security vulnerabilities
Security keys
Up until version 5.5.4 of Ubiquiti's airOS, the locally-modified u-boot bootloader contained a security issue - It was possible to extract the plain-text config from devices running the firmware, without leaving a trace. And the plain-text config contains unencrypted WPA/WPA2/RADIUS passwords.
Even worse than this security issue, was Ubiquiti's response to it. Namely, they:
Refused to provide the source code, even though u-boot is under the GPL
Didn't fix the security issue for a long time after it was publicly disclosed
To this day, Ubiquiti still has not provided the u-boot source code.
3. Providing source code to a version of Linux, just not the one that they actually ship, and hoping that nobody notices
Ubiquiti Source Ubiquiti Binaries
It would be natural to think that the binaries that Ubiquiti provides were compiled from the source code that Ubiquti provides. As it turns out, for a large number of their releases, the kernel source given does not correspond to the kernel in the official firmware images.
As evidence, consider that in version 5.5.4 of the AirMax firmware, the kernel was modified such that the MTD partitions would be read only, however this change cannot be found in the corresponding kernel patches or source.
Such practices make finding violations extremely difficult, and we can't know for certain that they haven't done this with anything else in the GPL tarball. It's possible that this was just a mistake, but remember that people have complained about this without much of a response.
And speaking of complaining...
4. Dragging out GPL code requests for months on end, then inexplicably going silent
Bureaucracy is a challenge to be conquered with a righteous attitude, a tolerance for stupidity, and a bulldozer when necessary
In case you think that I am being mean to Ubiquiti by going public, please note that I have been trying to contact Ubiquiti for the past year about the issue of the u-boot source code. You can see my attempts here, here and here.
In fact, I even got a copyright holder of u-boot to ask for the source, and they still haven't provided it.
From my conversations with Ubiquiti, I have found that they claimed that it's alright to refuse to provide source code to GPL-licensed software if "This decision was taken with the security of the users in mind". Furthermore, my conversations were endlessly delayed by the supposed necessity to forward m
If it weren't for deadlines, nothing would be late.
I used to work for a company that was meant to be a partner of Ubiquiti -- from the first meeting with Robert, one could tell this was not going to be a "share and share alike" partnership -- more likely it was going to be a one party gives, the other takes partnership. We as partners needed access to some parts of the code, and in meetings said we'd like to get the source, and given that it was built on GPL'd code, we figured it would be a non-issue. How wrong we were. Basically told that was never gonna happen, not for us, nor anyone else that wanted it, it was their IP. Robert's one of Forbe's 10 youngest billionaires. He's gotten stinking rich off others, and refuses to give back. It certainly douses your faith in the human spirit somewhat. Anyway, not that it's much better, but you can always buy from MikroTik (ducks! ;-) )
Honest mistakes happen, but copyright violation is copyright violation. Ubiquiti needs to put things right ASAP, and thank their lucky stars that the copyright they violated was owned by a bunch of copyleft hippies and not a big lawsuit-happy corporation.
Plenty of higher end networking gear is BSD based, there's really no reason you couldn't use BSD for lower end gear other than your parts supplier might not have ready made drivers or images for you to modify (although even Atheros has support for current chips in FreeBSD so that appears to no longer be much of an issue).
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
If "you" are a one-man shop, that's fine.
If "you" are the legal department for a company with 10,000 developers, the GPL is scary. You can either blanket-ban GPL code, and make your life easy, or create a system for separately evaluating the use of each and every piece of GPL code you allow in, plus some auditing process to catch cheaters (who check in GPL code as their own work, which happens).
Cloud services companies usually go with the latter: because you don't have to share your code if you don't distribute it, the payoff is good to allow use of GPL code, and police the corner cases where you do distribute code. Blanket bans on GPL code are still common at old-school software companies.
Socialism: a lie told by totalitarians and believed by fools.
If you can spare a minute, please do any or all of the following so that we can retain the GPL's power to help the community:
- Raise awareness - upvote it, send it to friends or write a blog post about it
- Write to Ubiquiti requesting the source - their email addresses are support@ubnt.com and info@ubnt.com. You should try both.
- Send me an email telling me what you've done. My email address is riley@openmailbox.org
This is too bad. They are currently the only supported hardware maker for one of ham radio's more interesting projects: A self discovering/healing/organizing mesh network providing WiFi networking over dozens of miles on the portions of the WiFi spectrum available to hams. http://www.broadband-hamnet.org The project still officially supports the venerable Linksys WRT54G, but official support for this router is ending this month and it is a pretty old router. Then again, when you use Ubiquiti hardware and this firmware, I suppose you are no longer violating the GPL! Still, it'd be nice to not give your dollars to a GPL violator.
The problem with this "maybe it's just a mistake" line of thought is that, usually, whenever these GPL violation issues come up publicly, it's because the accusers have already contacted the alleged infringer and sought to rectify the situation, and it didn't go over well.
We are talking about kernel accessing hardware here.
How does this disagree with the GP? Comply with the license, or pay to license something proprietary. It's not that hard.
The problem with this "it's probably not malice" idea is that, usually, whenever a public GPL project complains about some company violating the GPL, they've already contacted the company through official channels, seeking to rectify the situation, because they have the exact same idea: that this is just a misunderstanding, the right hand doesn't know what the left is doing, etc. Most of the time, this is most likely the problem, and the company, after consulting with their lawyer, realizes its mistake and fixes it, and we never see a story like this with the title "ABC Corp is violating the GPL!!!". However, when the company refuses to comply, then we get what we're seeing now. Occasionally, some dumb company even gets dragged into court over it, and loses: this happened not too long ago in Germany I believe.
Higher-end networking gear has serious CPU horsepower compared to your average Belkin or Linksys consumer-grade router, enough horsepower to rival a high-end PC probably, if not more.
How often do you see BSD used on any small embedded device with an ARM or MIPS CPU? I can't say I've ever even heard of this. It's always either Linux or something proprietary like QNX or VxWorks.
Breech of license of GPL code is like raping a three year old, and blaming the license for being restrictive is like blaming the child for being cute, therefore its their fault you raped them.
There is no viral nature to GPL.
The only viral nature is copyright. Get copyright banned if you like.
If you can't trust your developers, you have more than the GPL to worry about. If you think the cost of a GPL violation is bad, just wait and see the results of someone borrowing code claimed by a former employer (or even writing code too similar). Just ask Google where the one thing that has cost them the most pain so far, was a 9 line function that one of their programmers copied into the Android source code..
How does this disagree with the GP? Comply with the license, or pay to license something proprietary. It's not that hard.
I'm sure these guys did it on purpose, but that's not always the case. Many junior developers are simply oblivious to any concern about mixing GPL code in with their own work, and a few will cheat deliberately. Do you rely on code reviews? Do you run an auditing tool like Black Duck? In a large enough shop, you can't just make a policy and hope for the best, so the very existence of GPL code causes headaches for the legal team.
Yeah, sure, someone could copy closed source too, but that's much less likely to happen, especially by ignorance or accident.
Socialism: a lie told by totalitarians and believed by fools.
Forget to check the post anonymously box? Be careful, you might get attacked by Stallman and his followers :)
APK likes to ask for responses to the same things over and over. Maybe he just likes the responses?
If "you" are a one-man shop, that's fine.
If "you" are the legal department for a company with 10,000 developers, the GPL is scary. You can either blanket-ban GPL code, and make your life easy, or create a system for separately evaluating the use of each and every piece of GPL code you allow in, plus some auditing process to catch cheaters (who check in GPL code as their own work, which happens).
Cloud services companies usually go with the latter: because you don't have to share your code if you don't distribute it, the payoff is good to allow use of GPL code, and police the corner cases where you do distribute code. Blanket bans on GPL code are still common at old-school software companies.
Most non-free licenses are quite scary too, but they often get a pass since they are not that open to begin with.
However, if GPL had been more permissive this whole incident would never have happened.
Of course it wouldn't. And Linux/U-Boot/Busybox wouldn't be as great as they currently are because corporations wouldn't have contributed back to these projects.
Legal departments already know how to deal with that (I've signed something at every new job promising I wouldn't do that, as a condition of employment), and it's obviously the wrong thing to do. Open source code is right there when you google for a solution to the problem in front of you, and it's often fine to incorporate. Quick, what license is the code you find on Stack Overflow under? OK to copy into commercial code or not?
p.s., probably not
Socialism: a lie told by totalitarians and believed by fools.
What if this was an intentional backdoor so that they-who-shall-not-be-named can spy on internet traffic of closed networks and WISPS?
And it was not included in the the source packages because the source is subjected to a gag order and publishing it would be showing it to the world.
Lastly, if this is true, what if this is "standard procedure" for backdoors inserted into many open-source projects, where the code presented is actually a fork of the true, backdoored code, running on lots of hardware? Or, as per Ken Thompson's watershed article, "Reflections on Trusting Trust", they-who-shall-not-be-named has a version of GCC capable of adding backdoors to open source code and we're all blaming Ubiquiti for something they didn't even put there?
I'll be the first to admit, there's plenty of speculation here. But if there's anything we've learned in the last few years, the state of spying is way more prevalent than we thought it was. So while I have no proof, I'm certainly holding onto this information should more evidence come out.
Plenty of higher end networking gear is BSD based, there's really no reason you couldn't use BSD for lower end gear other than your parts supplier might not have ready made drivers or images for you to modify
You pretty much nailed the problem. Board support packages (not just raw drivers) for WiFi router chips are much more available/complete/mature for Linux than for BSD.
So people are not leaving the GPL. Linux probably never had such a large share of the WiFi router market, while BSD is close to 0%.
I feel for small companies like Ubiquiti.
So a multi-billion dollar company like Ubiquiti, which has made its CEO one of Forbes' 10 youngest billionaires, is a small company?
"Politicians and diapers must be changed often, and for the same reason."
Note that if anyone with copyright over the kernel wins such a suit, the rights to use the kernel are lost for all time ("terminated"). And, there's no way to get those rights to use the kernel back. (Well, maybe they could negotiate with every individual copyright holder...)
Those who don't honor the requirements are playing with fire, and risking their entire business. That includes large firms like Samsung, who makes a habit of not releasing Linux (Android) kernel source for a considerable time after releasing new phones.
Someday, someone with a copyright interest in the kernel is going to sue a Samsung, and get a billion dollar negotiated settlement because their business couldn't exist without a valid license to the kernel.
"National Security is the chief cause of national insecurity." - Celine's First Law
Yeah either use BSD like Apple or pull a EEE like Google and be showered with praise for the teabagging by the FOSS community. Since they don't have the funds to pull the latter? The former would be the wise move.
ACs don't waste your time replying, your posts are never seen by me.
They use Linux because they think it's a superior product. Despite the license. If they thought *BSD was superior, they'd use it. If they preferred the GPL, then they would make a GPL fork of *BSD.
So you are suggesting them to use an inferior product, just so that they don't have to release their minor modifications to the Linux kernel? Remember they are hardware companies. Their profit isn't on the kernel they are shipping with their routers.
the GPL and going to BSD, MIT, others.
I think you're confused about what "the issue" is.
Ubiquiti Networks modified GPL code and released binaries, and in the process, created a security problem with their product that they have yet to fix themselves. Under the GPL, they are obliged to release their modifications to the GPL code, but they refuse to do so. If they released the changes, then their customers could find and fix the problem without having to wait for Ubiquity Networks to do it.
Now, if Ubiquity Networks had used BSD or MIT code, they would be under no obligation to reveal the changes they made. Therefore, they could continue to ignore the problem, and the customers would be unable to find and fix the problem themselves. In short, a BSD/MIT license would benefit Ubiquity Networks, but obviously not its customers.
If it weren't for deadlines, nothing would be late.
Your theory that one employee or one team screwed up might fit if this were just a case of a single customer requesting the source and the employee or team mistakenly saying no, but that's not the case here. This has been going on for months now, with multiple contacts to the company. Even the copyright holder of uboot sent them a letter last July threatening legal action if this doesn't get resolved, and they've ignored it for 9 months now. That's far beyond a single person or team making a mistake, or a miscommunication, now you're in the territory of a company willfully violating the licence.
The author might consider removing the "dark history" claim or risk the label of hyperbole.
... or risk the *libel* of hyperbole!
No, they used linux because that's what Atheros gave them as a base for the Atheros reference AP implementation.
Please don't make stuff up.
As the article said "the company has a dark history of securities fraud, violation of U.S. sanctions, trademark and copyright lawsuits and software patents".
I personally discovered that their standard wifi board didn't follow the mini-pcie spec on flight mode (W_DISABLE). In fact there is no way, other than cutting power to the card, of disabling radio transmissions. Multiple inquiries on this topic were all met with stunned silence. At the time I was working for a substantial company buying boxes of cards at a time, I can't imagine their response to individuals raising issues would be better.
I wouldn't trust a Ubiquiti device in the future, their attitude to standards and specifications could best be described as flexible. As a manufacturer once you incorporate their device into your product you become liable for all their RF creativity, not something any rational company should accept.
My company (specifically, my department) uses and contributes to a number of open source projects. From time to time stuff gets lost in revision control and either a commit isn't upstreamed, upstream doesn't merge pull our changes right away, the patch hasn't made it to the mainline trunk or is staged for the next release.
It's not completely uncommon for me to pull from an upstream project and hit a bug I know we patched and then have to track down that patch's merge history internally (sometimes it doesn't make it from one developer's local working copy to our git/svn server) and then see if it's been accepted upstream. It's nothing intentional, but it happens; sometimes a commit just slips through the cracks and you don't realize it right away.
If I mod you up, it doesn't necessarily mean I agree with what you've said, sorry.
> Your theory that one employee or one team screwed up might fit if this were just a case of a single customer requesting the source
There is another potential source of the problem. One of the most difficult situations I've encountered is when developers build software, including kernels, on their own workstations with their own source code and never submit their changes to the corporate source control. I've especially encountered this when the code is heavily customized with "optimizations" that do not match the normal distribution, especially with kernels that do not build modules that the developers has decided they do not need and statically loaded the ones they do want. It's been a screaming nightmare to get these developers to share their work and get their changes in source code, partly because on code review it turns out to be _horrible_. One of my worst such experiences involved a highly paid developer cutting and pasting public patches they did not understand and did not test into the kernel, taking credit for the "improvements" they did not write and which were only detectible in contrived and unrealistic performance tests, and breaking entire deployments by including broken old code from their private source branches, which were impossible to merge due to unnecessary rewrites and re-organizations of upstream code.
The chaos in production use was predictable. Features which were included, and tested, in the standard kernel were left out of the "tuned" kernel, for which there is no reference code available to anyone else, and debugging its failures is a QA and systems debugging nightmare. It's part of the reason to build the code only on a well defined build environment, and only build from a defined source control repository that is checked out with every build.
The way this worked when I was working for a big company was that the people who did the final build weren't the developers, and the build team only worked from the checked in versions of the code.
People seem to have got a lot sloppier these days.
(System-X , Plessey Telecommunications, 1980).
Watch this Heartland Institute video
Actually, their profit is in the software. Their hardware isn't significantly different from everyone else's hardware. The reason most people buy their hardware is because their software makes that hardware very easy to monitor and manage. With routers, just like with phones, good software sells hardware.
They all have the same software functionality. Most people never access their router's web interface. They can differentiate their product on the web interface, but switching from Linux to BSD won't help them sell more routers.
As others said, it is your type no one wants to deal with.
I never said "the GPL is this" I said my understanding of it was X. I am no lawyer, nor do I have a couple hours to dedicate to reading a license I already know I don't break (I don't distribute, at all). I was asking a damn question and get attacked by morons like you that have nothing better to do than rage at someone that was wrong on the internet.
Here is something for you, now go chill out.
https://xkcd.com/386/
APK likes to ask for responses to the same things over and over. Maybe he just likes the responses?
You're suggesting that they should violate license terms because the product with the inconvenient license is superior? Most people consider Windows 7 to be a more useful operating system than Fedora Linux, so you say they should make their own copies of Windows 7 rather than use an inferior product?
They're a hardware company. In what way would releasing the kernel modifications they made hurt them?
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
Uh? Were you replying to me?
Why did Atheros use it? And was it theirs to "give".
==
GPL2:
>You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License.
Note that if anyone with copyright over the kernel wins such a suit, the rights to use the kernel are lost for all time ("terminated").
==
That is not what that clause means. For example GPL also says that they not have to accept the license.
What it means, is that they then have distributed the kernel without permission from the GPL.
And they could get in trouble for that.