Öffentlicher Exploit gibt Root auf Linux-Rechnern mit AnyDesk 8.0.2
Forscher haben einen funktionierenden Exploit für AnyDesk unter Linux veröffentlicht, der auf dem Zielrechner ohne Passwort und noch bevor jemand die Verbindung annimmt Befehle als root ausführt. Der Exploit mit dem Namen AnyPwn greift AnyDesk 8.0.2 an, wenn es als Dienst läuft, und erreicht es über den TCP-Port 7070. AnyDesk hat die Lücke im Juni in Version 8.0.3 geschlossen, im Changelog aber nur "fixed a bug that could lead to a crash" ("einen Fehler behoben, der zu einem Absturz führen konnte") vermerkt, ohne CVE und ohne Sicherheitshinweis. Viele Administratoren hatten deshalb keinen Anlass, das Update für dringend zu halten.
Was der Exploit macht
Den Fehler fand Rick de Jager von der Sicherheitsfirma V12, die den Proof of Concept am 8. Oktober auf GitHub veröffentlichte. Es handelt sich um einen Heap-Überlauf in dem Code, der die ersten Pakete einer Sitzung verarbeitet: AnyDesk vertraut einem Längenfeld der Gegenseite, bevor es geprüft wird, die Zahl läuft über, und das Programm kopiert Angreiferdaten über einen winzigen Puffer hinaus. Unter Linux läuft der AnyDesk-Dienst normalerweise als root, sodass auf diese Weise ausgeführter Code die volle Kontrolle über den Rechner erhält. Ein Klick oder eine Bestätigung der Person vor dem Bildschirm ist nicht nötig.
Der öffentliche Exploit hat Grenzen. Er wurde für einen bestimmten Build von 8.0.2 unter 64-Bit-Linux gebaut, braucht eine direkte Verbindung zu Port 7070 und funktioniert nicht jedes Mal: Passt das Speicherlayout nicht, stürzt stattdessen der AnyDesk-Dienst ab. Die Forscher sagen, dass 8.0.1 denselben Fehler enthalten könnte, haben den Exploit aber nicht darauf portiert. AnyDesk erklärt, das Problem sei "limited to direct connections on Linux (connections that do not go through our relays)" ("auf direkte Verbindungen unter Linux beschränkt, also Verbindungen, die nicht über unsere Relays laufen") und betreffe weder Windows noch macOS. V12 gibt jedoch an, bestätigt zu haben, dass der verwundbare Code auch über die Relay-Server von AnyDesk erreichbar ist. Für diesen Weg haben die Forscher keinen vollständigen Exploit gebaut, ob Verbindungen über Relays angreifbar sind, bleibt also offen.
Warum der Patch übersehen wurde
Sicherheitsteams entscheiden meist anhand von CVE-Nummern und Herstellerhinweisen, was zuerst gepatcht wird. Bis zum 9. Oktober hatte diese Lücke weder das eine noch das andere, sodass Scanner und Patch-Dashboards, die auf CVE-Feeds beruhen, nichts zu melden hatten. Ein Linux-Rechner, auf dem AnyDesk zuletzt vor Juni aktualisiert wurde, läuft mit einer Version, für die es jetzt einen öffentlichen Exploit gibt. Laut V12 nahm der Hersteller den Build 8.0.2 von seiner Website, nachdem die Forscher ein Video des Angriffs veröffentlicht hatten.
Rechner prüfen
- Version ermitteln:
anydesk --versionausführen. Alles unter 8.0.3 muss aktualisiert werden. Die aktuelle Version ist 8.1.0. - Prüfen, ob der Dienst lauscht:
sudo ss -ltnp | grep 7070. Eine Zeile mitanydeskbedeutet, dass der Port auf diesem Rechner offen ist. - Über die Paketverwaltung oder das AnyDesk-Repository aktualisieren und den Dienst anschließend mit
sudo systemctl restart anydeskneu starten. - Port 7070 zum Internet hin sperren: in der Host-Firewall, im Router und in jeder Cloud-Sicherheitsgruppe. Das Update ist die eigentliche Lösung. Die Sperre des Ports ist eine zweite Barriere, solange die Frage der Relay-Verbindungen offen ist.
- Auf Warnzeichen achten: wiederholte Abstürze des AnyDesk-Dienstes, unerwartete Verbindungen zu Port 7070 und Prozesse, die vom AnyDesk-Dienst gestartet wurden, ohne dass sie jemand ausgelöst hat.
Ein Fernwartungsdienst, der im offenen Internet lauscht, ist selbst dann ein Risiko, wenn er vollständig gepatcht ist. Wer ihn nur über ein VPN oder ein anderes privates Netz ins Büro- oder Heimnetz erreichbar macht, schließt aus, dass eine solche Lücke aus dem Internet getroffen werden kann, sondern nur von jemandem, der bereits Zugang zu diesem Netz hat. Das Gleiche galt für die SSH-Lücke in MikroTik-Routern. Unsere WireGuard-Anleitung zeigt, wie man einen solchen Tunnel auf dem eigenen Server betreibt.