Fedora 34: Wenn Wifi weg ist…

Wenn das Wifi auf einem Tablet nicht mehr geht, ist man gewöhnlicherweise am Allerwertesten, aber es gibt vielleicht Hilfe für Euch.

Fedora 34: Wenn Wifi weg ist…

Mein Surface Tablet war mal wieder dran mit seinem Update, weil Netflix mit dem „alten“ Firefox von vor 3 Wochen nicht mehr spielen möchte, also gab es das sowieso fällige Fedora 34 Update. Das hätte ich besser nicht gemacht, denn nun habe ich Gnome 40+ und mein Tablet ist jetzt gehandycrapt. *sniff*

Aber bevor das neue Gnome überhaupt zum Problem werden konnte, überraschte mich Fedora 34 damit, daß mein Tablet kein Wifi mehr hatte, dabei hatte ich gar keinen neuen Kernel benutzt, sondern den gleichen Surface Kernel gebootet, wie sonst auch.

Bei näherer Betrachung stellte ich das hier raus:

Dez 18 13:59:00 surface kernel: mwifiex_pcie 0000:02:00.0: enabling device (0000 -> 0002)
Dez 18 13:59:00 surface kernel: mwifiex_pcie: try set_consistent_dma_mask(32)
Dez 18 13:59:00 surface kernel: mwifiex_pcie: PCI memory map Virt0: 00000000938ad086 PCI memory map Virt2: 0000000061c369a5
Dez 18 13:59:00 surface kernel: mwifiex_pcie 0000:02:00.0: Direct firmware load for mrvl/pcie8897_uapsta.bin failed with error -2
Dez 18 13:59:00 surface kernel: mwifiex_pcie 0000:02:00.0: Failed to get firmware mrvl/pcie8897_uapsta.bin
Dez 18 13:59:00 surface kernel: mwifiex_pcie 0000:02:00.0: info: _mwifiex_fw_dpc: unregister device

Und jetzt steht Ihr da genauso wie ich. WTF is pcie8897_uapsta.bin? ok, eine Firmware für den Chip. Soweit so gut. Aber wieso kann der Kernel das File (das in dem Listing unten) nicht mehr laden??

[ ~]$ ls -la /usr/lib/firmware/mrvl
insgesamt 5320
drwxr-xr-x. 3 root root 4096 30. Nov 21:18 .
drwxr-xr-x. 102 root root 36864 2. Dez 09:11 ..
-rw-r–r–. 1 root root 444052 28. Okt 15:33 pcie8897_uapsta.bin.xz
-rw-r–r–. 1 root root 287784 28. Okt 15:33 pcie8997_wlan_v4.bin.xz
-rw-r–r–. 1 root root 388188 28. Okt 15:33 pcieuart8997_combo_v4.bin.xz
-rw-r–r–. 1 root root 392276 28. Okt 15:33 pcieusb8997_combo_v4.bin.xz
drwxr-xr-x. 2 root root 4096 30. Nov 21:18 prestera
-rw-r–r–. 1 root root 165260 28. Okt 15:33 sd8688.bin.xz
-rw-r–r–. 1 root root 1804 28. Okt 15:33 sd8688_helper.bin.xz
-rw-r–r–. 1 root root 330112 28. Okt 15:33 sd8797_uapsta.bin.xz
-rw-r–r–. 1 root root 164668 28. Okt 15:33 sd8801_uapsta.bin.xz
-rw-r–r–. 1 root root 377276 28. Okt 15:33 sd8887_uapsta.bin.xz
-rw-r–r–. 1 root root 439804 28. Okt 15:33 sd8897_uapsta.bin.xz
-rw-r–r–. 1 root root 370612 28. Okt 15:33 sdsd8977_combo_v2.bin.xz
-rw-r–r–. 1 root root 381952 28. Okt 15:33 sdsd8997_combo_v4.bin.xz
-rw-r–r–. 1 root root 297988 28. Okt 15:33 usb8766_uapsta.bin.xz
-rw-r–r–. 1 root root 342532 28. Okt 15:33 usb8797_uapsta.bin.xz
-rw-r–r–. 1 root root 162968 28. Okt 15:33 usb8801_uapsta.bin.xz
-rw-r–r–. 1 root root 446100 28. Okt 15:33 usb8897_uapsta.bin.xz
-rw-r–r–. 1 root root 371036 28. Okt 15:33 usbusb8997_combo_v4.bin.xz

Ja… das dauert ne Weile, deswegen langweile ich Euch ( grummel…neuer xz algo… brabbel ) nicht damit und komme zum Wesentlichen: xv -d pcie8897_uapsta.bin.xz ; reboot  \o/ GEHT \o/

Als erstes sucht der Kernel nach der ungepackten Version der Firmware, wenn es die nicht gibt, dann nimmt er auch eine gepackt. Leider gabs da wohl ein Update und der bisherige Kernel kann die XZ komponente zum Entpacken nicht mehr benutzen und damit die Firmware nicht mehr laden. Durch das Auspacken der Firmware nimmt das mehr Platz weg, aber kann wieder geladen werden. Hat man dazu Worte? 🙁

WIFI: Die FRAGATTACK Apokalypse

Ja, der Titel wäre Click-Bait, wenn es nicht wirklich so schlimm wäre, wie es ist: praktisch jeder Wifi-Stack der bis heute produziert wurde, ist für die FragAttack anfällig.

WIFI: Die FRAGATTACK Apokalypse

Der Name FragAttack ist hier nicht wie sonst üblich ein Akronym für irgendwas langes, sondern bezieht sich ausnahmsweise mal auf die Grundlage des Angriffs: Fehler bei Zusammenfügen von Paketfragmenten.

„Fragmentierung“ meint, daß einzelne große Datenpakete, die nicht durch das Netz/Kanal passen, in kleinere Pakete aufgeteilt und beim Empfänger wieder zusammen gesetzt werden. Das passiert bei IP-Datenpaketen im normalen Netz auch laufend, ist an sich nicht besonderes.

Die Schwachstellen sind in praktisch jeder Implementierung von WEP bis WPA3 enthalten, wobei nicht jede davon überall sein muß.

12 Fehler sollt Ihr sein

Insgesamt wurden 12 Schwachstellen in verschiedenen Implementierungen bzw. dem Wifi-Protokoll an sich gefunden;

CVE-2020-24588: Akzeptieren von nicht-SPP A-MSDU-Frames
CVE-2020-24587: Wiederzusammensetzen von Fragmenten, die unter verschiedenen Schlüsseln verschlüsselt wurden
CVE-2020-24586: Fragmente werden nicht aus dem Speicher gelöscht, wenn eine (erneute) Verbindung zu einem Netzwerk hergestellt wird
CVE-2020-26145: Akzeptieren von Klartext-Broadcast-Fragmenten als vollständige Frames (in einem verschlüsselten Netzwerk)
CVE-2020-26144: Akzeptieren von Klartext-A-MSDU-Frames, die mit einem RFC1042-Header mit EtherType EAPOL beginnen (in einem verschlüsselten Netzwerk)
CVE-2020-26140: Akzeptieren von Klartext-Datenframes in einem geschützten Netzwerk
CVE-2020-26143: Akzeptieren von fragmentierten Klartext-Datenframes in einem geschützten Netzwerk
CVE-2020-26139: Weiterleitung von EAPOL-Frames, obwohl der Absender noch nicht authentifiziert ist
CVE-2020-26146: Wiederzusammensetzen von verschlüsselten Fragmenten mit nicht-fortlaufenden Paketnummern
CVE-2020-26147: Wiederzusammensetzen von gemischten verschlüsselten/Klartext-Fragmenten
CVE-2020-26142: Verarbeitung von fragmentierten Frames als vollständige Frames
CVE-2020-26141: Keine Verifizierung des TKIP-MIC von fragmentierten Frames

„CVE-2020-24587: Wiederzusammensetzen von Fragmenten, die unter verschiedenen Schlüsseln verschlüsselt wurden“ Ist ein Paradebeispiel dafür, daß ganz schlicht jemand einfach mal eine kleine „if ( oldkey == actualkey)“ Abfrage im Code vergessen hat. Wenn man den Testfall nicht dabei hat, weil man nur ein Netz mit nur einem Schlüssel hat, dann kann das schon einmal passieren.

Die Hacker News schreiben dazu, daß Mathy Vanhoef, ein Sicherheitsforscher der New York University Abu Dhabi, die Probleme auf weit verbreitete Programmierfehler zurückführt.

„Ein böser Akteur kann diese Schwachstellen ausnutzen, um beliebige Netzwerkpakete zu injizieren, Benutzerdaten abzufangen und zu exfiltrieren, Denial-of-Service-Angriffe zu starten und möglicherweise sogar Pakete in WPA- oder WPA2-Netzwerken zu entschlüsseln.“

Es sind sogar Angriffe denkbar bei denen  in das Netz oder am Netz beteiligte Rechner eingebrochen werden kann. Dabei wären dann Geräte interessant die keine Updates mehr bekommen haben, wie z.B. so ziemlich jedes Androidgerät älter als 2 Jahre, Windows XP/7 oder Macs.

Die Wifi-Allianz hat in einer mehr als neunmonatigen konspirativen Aktion sukzessive die Gerätehersteller kontaktiert und Updates verteilen lassen. Wohl dem, der die noch bekommt.

Für Windows wurden die Updates schon eingespielt, bei Linux sind auch bereits Patche in den Kernel eingeflossen, müssen aber noch etwas reifen. Da die Lücken nicht ganz so leicht auszunutzen sind, wie das vielleicht klingen mag, ist das „erst einmal“ kein Problem… bis es dann zum Problem wird 😉

Exploits sind nicht auszuschließen, also kümmert Euch am besten auch um Eure ganzen IoT Geräte, DSL-Router, Access-Points und Uralt-Androids.. wenn Ihr noch könnt.

Quelle: https://thehackernews.com/2021/05/nearly-all-wifi-devices-are-vulnerable.html

Pinephone: DANKE ModemManager!

Liebe Linuxphone Fans, es ist passiert! Ich habe mich geirrt und freue mich darüber 😀

Pinephone: DANKE ModemManager!

Die ModemManagerelease 1.16.x kommt mit einer Option daher, die das Pinephone aus dem Winterschlaf holt bzw. es gar nicht erst schlafen lässt. Die Konsequenz ist, das Pinephone verpennt im Tiefschlaf keine Anrufe oder SMS mehr.

Zusammen mit dem aktuellen Fedora Megi-Kernel läuft das Pinephone jetzt wie ein „normales“ Smartphone stundenlang, weil es nicht mehr läuft, wenn es nicht mehr gebraucht wird.

Dabei kann Euch dieses kleine Projekt helfen:

https://github.com/Cyborgscode/pinephone/tree/main/suspendguardian

Das schickt das PinePhone nämlich nach 30 Sekunden Bildschirm aus in den Suspend. Mit dem neuen ModemManager bleibt das Modem wach und kann das System wecken, wenn ein Anruf kommt. SuspendGuardian macht noch mehr und dann genügend präzise konfiguriert werden.

Damit das problemlos funktioniert, macht Ihr folgendes:

cp ModemManager.service /etc/systemd/system/
vi /etc/systemd/system/Modemmanager.service

Die Zeile ExecStart= wird wie folgt geändert:

ExecStart=/usr/sbin/ModemManager –test-no-suspend-resume

Dann  „systemctl daemon-restart; systemctl restart ModemManager“ oder einen kurzen Reboot, falls das nicht klappt 😉

Da ich den neuen Kernel schon testen konnte, weiß ich, daß das Gerät (mit Modem im Tiefschlaf / also vor der Anpassung oben) in 8h knapp 4% Akkuladung verbraucht hat.

Ich habe dies bei meinem Pinephone natürlich schon gemacht und bin mal gespannt , wie viel Strom das Pine so in der Nacht verbrauchen wird. Das ist ein Game-Changer Feature fürs Pinephone!  Weil ab jetzt ist der Verbrauch quasi nur noch von der echten Nutzungsdauer von Apps abhängig.