New Older Stable-Branch Kernels released with Steam fix: 4.4.184, 4.9.184 and 4.14.131 are now available

From LinuxReviews
Jump to navigationJump to search
Tux.png

The Linux kernel changes which fixed the SACK vulnerabilities broke Steam and some other networking software. Linus Torvalds was immediately all over it since one does not simply break user-space. A patch was immediately added to git and the Greg released updated 5.1 and 4.19 kernels within a day. However, the patch for those kernel branches could not be directly applied to older kernels. These new versions of the older long-term supported kernels cleverly fixes the problem that caused Steam to be unable to connect to it's servers.

The reason it took some time to get the older kernels fixed was:

"This looks good for 4.19 and 5.1, so I'll push out new stable kernels in a bit for them.

But for 4.14 and older, we don't have the "hint" to know this is an outbound going packet and not to apply these checks at that point in time, so this patch doesn't work.

I'll see if I can figure anything else later this afternoon for those kernels..."

Greg Kroah-Hartman on the LKML, 2019-06-22

Greg has now figured it out. There is nothing else new in these particular kernel versions. This is it:

diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index bed83990847a..53edd60fd381 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1161,7 +1161,7 @@ int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len,
 	if (nsize < 0)
 		nsize = 0;
 
-	if (unlikely((sk->sk_wmem_queued >> 1) > sk->sk_sndbuf)) {
+	if (unlikely((sk->sk_wmem_queued >> 1) > sk->sk_sndbuf + 0x20000)) {
 		NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPWQUEUETOOBIG);
 		return -ENOMEM;
 	}

If you enjoy playing Steam games like Counter-Strike: Global Offensive and you don't want to or can't grow up and you are using an older kernel branch then these new kernels are for you. The newer kernel branches were fixed almost a week ago and you're fine if you are using 4.19.55 or 5.1.14 or 4.19.x and 5.1.x versions newer than those. 5.1.15 and 4.19.56 are the latest as of now.

The new kernels are available from https://www.kernel.org/ and they will likely be in your distributions repositories soon if it is a LTS-type distribution using one of these ancient kernels branches.


published 2019-06-27last edited 2019-06-27

0.00
(0 votes)


Add your comment
LinuxReviews welcomes all comments. If you do not want to be anonymous, register or log in. It is free.