Wine-Staging64 6.12 erschienen – Heftiger Bug im TCP/IP Stack

Am eigenen Leibe habe ich gerade erfahren müssen, daß das Wine-Staging64 Update auf 6.12 einen schweren Fehler im TCP/IP Stack enthält.

Wine-Staging64 6.12 erschienen – Heftiger Bug im TCP/IP Stack

Man sollte annehmen, daß es sofort beim Testen einer neuen Version auffällt, wenn man mit dem Internet keine Verbindung aufbauen kann. Tja.

Nach dem heute morgen durchgeführten Update von 6.11-5 auf 6.12-1 der experimentellen Staging Version, die zugegebenermaßen per Definition eine Entwicklerversion ist, kam es aus Sicht der Anwendung zum Ausfall des Internets, weil keine Server mehr erreicht werden können.

Das sieht dann so aus:

dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp7s0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
15:08:05.773227 IP 192.168.0.34.57894 > 194.187.19.180.80: Flags [S], seq 2759647570, win 64240, options [mss 1460,sackOK,TS val 831085749 ecr 0,nop,wscale 7], length 0
E..<2.@.@.p....".....&.P.|.R.........h.........
1.\.........
15:08:05.773984 IP 192.168.0.34.57896 > 194.187.19.180.80: Flags [S], seq 2488347596, win 64240, options [mss 1460,sackOK,TS val 831085750 ecr 0,nop,wscale 7], length 0
E..<.y@.@..	...".....(.P.Q+..........h.........
1.\.........
15:08:05.774671 IP 192.168.0.34.57898 > 194.187.19.180.80: Flags [S], seq 3242501228, win 64240, options [mss 1460,sackOK,TS val 831085751 ecr 0,nop,wscale 7], length 0
E..<&.@.@.}....".....*.P.D.l.........h.........
1.\.........
15:08:05.794930 IP 194.187.19.180.80 > 192.168.0.34.57894: Flags [S.], seq 114763427, ack 2759647571, win 8192, options [mss 1380,nop,wscale 8,sackOK,TS val 97248822 ecr 831085749], length 0
E..<?.@.y.*........".P.&..&..|.S.. ........d.......
...61.\.
15:08:05.794945 IP 192.168.0.34.57894 > 194.187.19.180.80: Flags [R], seq 2759647571, win 0, length 0
E..(..@.@......".....&.P.|.S....P...._..
15:08:05.795624 IP 194.187.19.180.80 > 192.168.0.34.57896: Flags [S.], seq 1794556337, ack 2488347597, win 8192, options [mss 1380,nop,wscale 8,sackOK,TS val 97249931 ecr 831085750], length 0
E..<F.@.y.#........".P.(j....Q+... .C/.....d.......
....1.\.
15:08:05.795628 IP 192.168.0.34.57896 > 194.187.19.180.80: Flags [R], seq 2488347597, win 0, length 0
E..(..@.@......".....(.P.Q+.....P...v...
15:08:05.796216 IP 194.187.19.180.80 > 192.168.0.34.57898: Flags [S.], seq 2891142575, ack 3242501229, win 8192, options [mss 1380,nop,wscale 8,sackOK,TS val 97248822 ecr 831085751], length 0
E..<?.@.y.*........".P.*.SU..D.m.. ........d.......
...61.\.
15:08:05.796218 IP 192.168.0.34.57898 > 194.187.19.180.80: Flags [R], seq 3242501229, win 0, length 0
E..(..@.@......".....*.P.D.m....P....y..

Wer das nicht lesen und verstehen kann, dem sei es kurz erklärt:

Normalerweise…

Normalerweise sendet ein TCP/IP Stack zum Aufbau einer Verbindung 1 SYN Paket zum Server, der bestätigt das mit einem SYN-ACK und dann kann der Client mit einem Push Paket Daten schicken.

Im obigen Fehlerfall sendet der Wine-Stack  sofort parallel 3 SYN Pakete mit 3 verschiedenen SessionIDs los.
Der Server schickt für alle 3 SYN jeweils den passenden SYN-ACK. jetzt hat aber der Stack als letztes die 3. SessionID benutzt, es kommt aber zuerst ein SYN-ACK für die 1.SessionID rein. Die Folge: die SessionIDs passen nicht zusammen, der Wine-Stack schickt korrekterweise ein RESET zum Server und legt auf.

Das mit den 3 SYN Paketen ist zwar vorgesehen, aber nicht parallel, sondern nach einander. Es ist nämlich der Versuch auf ein nicht beantwortetes 1. oder 2. SYN doch noch ein ACK vom Server zu bekommen, wenn z.b. durch Stau über Überlastung im Netz SYN Pakete verloren gegangen sind.  Natürlich wartet ein Stack zwischen diesen Versuchen eine Zeit lang, was aber bei 6.12. nicht der Fall ist und das ist hier der Fehler.

In den Commits für 6.12 kann man auch erahnen, wo das das Problem eingebaut wurde. Bugreport ist raus 🙂

Lösung:

Downgrade auf 6.11-5 und alles ist wieder gut 🙂

Warum schreibt man jetzt deswegen einen Blogartikel?

Weil man die Stagingversion für einige Spiele braucht um z.b. Vulkantreiber zu benutzen oder andere Anpassungen an Wine braucht, damit Spiele funktionieren. Es ist eben doch nicht eine reine Entwicklerversion 😉

 

32 Sicherheitslücken in Chromium gefixt

Kleine Abschweifung in RHEL:

32 Sicherheitslücken in Chromium-Browser gefixt

Wie man einem Update aus dem RHEL Security Newsletter entnehmen kann, wurden im Chromiumbrowser 32 Sicherheitslücken in einem Rutsch gefixt. Da einige davon Pufferüberläufe waren, sollte man umgehend updaten, auch wenn man nicht bei RHEL ist, da hier typischerweise RCE Lücken schlummern können, sprich:  Jemand kann aus der Ferne Code ausführen. Das bedeutet nicht, daß es so ist, aber i.d.R.  ist das eine Grundvoraussetzung dafür.  Für drei habe ich die Bewertung mal rausgesucht, wer selbst mehr wissen will, kann die  CVE Nummer einfach bei Google eingeben und landet dann hier:

https://nvd.nist.gov/vuln/detail/CVE-2020-6513

Einfach die Nummer am Ende mit der gewünschten ersetzen und man bekommt auch diese Info.

Security Fix(es):

* chromium-browser: Heap buffer overflow in background fetch (CVE-2020-6510) (Score: 7.8 )
* chromium-browser: Side-channel information leakage in content security policy (CVE-2020-6511) (Score: 6.5)
* chromium-browser: Type Confusion in V8 (CVE-2020-6512)
* chromium-browser: Heap buffer overflow in PDFium (CVE-2020-6513) (Score: 8.8)
* chromium-browser: Inappropriate implementation in WebRTC (CVE-2020-6514)
* chromium-browser: Use after free in tab strip (CVE-2020-6515)
* chromium-browser: Policy bypass in CORS (CVE-2020-6516)
* chromium-browser: Heap buffer overflow in history (CVE-2020-6517)
* chromium-browser: Use after free in SCTP (CVE-2020-6532)
* chromium-browser: Type Confusion in V8 (CVE-2020-6537)
* chromium-browser: Inappropriate implementation in WebView (CVE-2020-6538)
* chromium-browser: Use after free in CSS (CVE-2020-6539)
* chromium-browser: Heap buffer overflow in Skia (CVE-2020-6540)
* chromium-browser: Use after free in WebUSB (CVE-2020-6541)
* chromium-browser: Use after free in developer tools (CVE-2020-6518)
* chromium-browser: Policy bypass in CSP (CVE-2020-6519)
* chromium-browser: Heap buffer overflow in Skia (CVE-2020-6520)
* chromium-browser: Side-channel information leakage in autofill (CVE-2020-6521)
* chromium-browser: Inappropriate implementation in external protocol handlers (CVE-2020-6522)
* chromium-browser: Out of bounds write in Skia (CVE-2020-6523)
* chromium-browser: Heap buffer overflow in WebAudio (CVE-2020-6524)
* chromium-browser: Heap buffer overflow in Skia (CVE-2020-6525)
* chromium-browser: Inappropriate implementation in iframe sandbox (CVE-2020-6526)
* chromium-browser: Insufficient policy enforcement in CSP (CVE-2020-6527)
* chromium-browser: Incorrect security UI in basic auth (CVE-2020-6528)
* chromium-browser: Inappropriate implementation in WebRTC (CVE-2020-6529)
* chromium-browser: Out of bounds memory access in developer tools (CVE-2020-6530)
* chromium-browser: Side-channel information leakage in scroll to text (CVE-2020-6531)
* chromium-browser: Type Confusion in V8 (CVE-2020-6533)
* chromium-browser: Heap buffer overflow in WebRTC (CVE-2020-6534)
* chromium-browser: Insufficient data validation in WebUI (CVE-2020-6535)
* chromium-browser: Incorrect security UI in PWAs (CVE-2020-6536)

Für Fedora steht dieses Update leider noch aus, da Chromium-Freeworld von RPMFusion kommt und „chromium“, was aus dem Fedora Repo kommt, vom Maintainer noch nicht gebaut wurde. Ich hab die mal beide angestupst, mal sehen was passiert 😉

Fröhliche Bugzeit Euch allen

Fröhliche Bugzeit meine Lieben \o/ .. „Hey, Sie da!“ „ähh, ja?“ „Sollte das nicht Backzeit heißen?“ „Nein, das ist schließlich ein IT-Blog und keine Bäckerei!“

Fröhliche Bugzeit allerseits!

Alle Jahre wieder kommt die Bugzeit über uns. Derzeit sind es besonders viele Bugs in Fedora 28 und seit gestern, habe ich auch noch 4 Bugreports bei EBAY laufen und ich meine echte Anwendungsfehler. Da werden harmlose Bewertungstexte als vulgär bezeichnet, Nachrichten des Supports erreichen uns als HTML-CODE, falsche Fehlermeldungen eingeblendet, die mit der Sachlage nichts zu tun haben, und anderer Krams.

Auf der Fedorafront kommt ein Cinnamon Bug hinzu, der Icons von Programmen in der Leiste verschwinden läßt, Cairo wird für F29/30, aber nicht für F28 aktualisiert, weswegen F28 noch einen Bug mehr hat, als es bräuchte. Zu allem Überfluß hatte Skype dann heute auch einen technischen Ausfall, weil es Anrufe nur simuliert, statt sie durchzuführen 🙁

Der Hohn ist aber ein neues Meldegesetz für IT-Sicherheitslücken des Bundes! Als wenn von denen jemand wüßte wie das geht, geschweige denn, wie langwierig und kräftezehrend so ein Bugreport sein kann 😀

Und da sag noch mal wer, man solle nicht in Sarkasmus verfallen, bei soviel gehäuften Fehlverhalten. Manchmal glaube ich, daß es an ein Wunder grenzt, daß wegen der vielen Softwarebugs keine Leute sterben.