Linux Virtual Ethernet Bug Delivers Corrupt TCP/IP Data (vijayp.ca)
jones_supa writes: Vijay Pandurangan from Twitter warns about a Linux kernel bug that causes containers using Virtual Ethernet devices for network routing to not check TCP checksums. Examples of software stacks that use Virtual Ethernet devices are Docker on IPv6, Kubernetes, Google Container Engine and Mesos. The kernel flaw results in applications incorrectly receiving corrupt data in a number of situations, such as with bad networking hardware. The bug dates back at least 3 years or more – it is present in kernels as far back as the Twitter engineering team has tested. Their patch has been reviewed and accepted into the kernel, and is currently being backported to -stable releases back to 3.14 in various distributions. If you use containers in your setup, Pandurangan recommends that you deploy a kernel with this patch.
Oh, is that what it was.
After ten years and billions of dollars, Twitter has finally contributed something useful to society.
Given that they wantonly violate people's civil liberties by shadowbanning twitter accounts of people they deem politically incorrect while continuing to allow tweets from known terrorist groups - Twitters patch should NOT be accepted in accordance with their own code of conduct.
"Cutting off your nose to spite your face."
It's SOP these days, you may have seen a few examples? Walter Lewin? Github? Brendan Eich?
What's good for the goose is good for the gander.
I started working on transport protocols, And I always wondered about this:
ethernet has its crc, ipv4 has its crc, how often does the TCP/UDP checksum detect errors that the previous two could not? Fine, IPv6 does not have the checksum, but the ethernet one is still there. Are there other layer 2 protocols that do not provide checksums used in the internet infrastructure?
I tried using wireshark, but got no luck after a lot of time and data transmitted. Maybe the kernel drops it before forwarding to wireshark? Where could I get some statistics?
Also, NATing devices do deep packet inspection, is there a chance that the router is dropping the TCP packet with wrong checkum (even though it should just check the ports)?
Thank you in advance for the info.
I was under the impression that virtual ethernet devices intentionally don't bother verifying checksums, because they were intended to be used in situations where there is very little probability of the data being corrupted.
Any application that checked for proper data (encrypted links, ssh, etc) would have automatically
been protected from this.
And, any attacker with access to the local network can already craft arbitrary TCP or other data and calculate a 'proper'
checksum to have data pass up the stack.
So, I'm glad it's fixed...but hard to see why this made it to Slashdot!
It is not the operating systems job to route packets. It's the startup daemon silly
http://saveie6.com/
It turned out to be the fault of the VM and functionality offloading. See here: http://stackoverflow.com/quest...
Religion is what happens when nature strikes and groupthink goes wrong.
The only purpose of the checksum is to increment a universally ignored error counter so operators know to replace broken hardware.
TCP checksums are wholly insufficient to prevent corruption of TCP streams at anything resembling a useful rate. It went unnoticed for years because checksums are irrelevant.
I make a local cache of debian packages on one of my VMs, using apt-mirror. From time to time one of the packages would fail its checksum - reloading it from the offsite source would usually work. When I changed the VM's ethernet device to a virtual e1000, the problems went away. I later found an interesting cabling issue that was causing transmission errors between a switch the the physical host.
How many eyes were looking at the Virtual Ethernet feature/code?
Clearly, not enough.
I've said it before and I say it again. You need enough QUALIFIED and MOTIVATED eyes. You also need clear QA test cases in order to render all bugs shallow.
*** Suerte a todos y Feliz dia!
Does anyone know if XenServer uses this functionality?
Slashdot your i and slashcross your t.
Jim, the one eyed pirate coder is responsible for this module. You can tell him that you're dissatisfied, but be careful not to let him catch your scrotum with his hook.
Does anyone know if XenServer uses this functionality?
Yes, someone knows.
Yes, XenServer can.
You didn't understand TFA
Nobody noticed because almost nobody was affected by this.