Nvidia with their binary driver as well, that's why the kernel marks it as 'tainted'.
All binary blobs in the Linux kernel aren't automatically illegal according to the GPL, right?
Binary blob kernel modules, in fact, have restricted access to the kernel frameworks (cannot access/use GPL symbols).