Nextcloud-Sicherheitslücke zur Installation von web shell-Dateien ausgenutzt
Die Nextcloud-Sicherheitslücke CVE-2026-110447 wurde ausgenutzt, um web shell-Dateien auf Servern zu installieren, auf denen die optionale App Collabora Online - Built-in CODE Server ausgeführt wurde. Eine web shell ist eine kleine schädliche Datei, die über Webanfragen Befehle entgegennimmt und sie mit den Berechtigungen des Webserver-Kontos ausführt. Drei Administratoren meldeten Kompromittierungen auf GitHub; der früheste protokollierte Angriff ereignete sich am 10. September 2026.
Die Schwachstelle betrifft jede richdocumentscode-Version vor 26.4.303. Sie ermöglicht es, durch eine unauthenticated request, also eine ohne vorherige Anmeldung gesendete Anfrage, eine command injection auszulösen und Betriebssystemanweisungen auszuführen. Eine Ausnutzung ist nur möglich, wenn der lokale Dokumentenserver Collabora Online Development Edition (CODE) nicht läuft, etwa während eines Upgrades, eines Neustarts oder nach einem Absturz. Collabora veröffentlichte Version 26.4.303 am 11. September und seine Sicherheitsempfehlung am 14. Oktober.
Die anfällige App lädt CODE herunter und führt es direkt auf dem Nextcloud-Host aus. Dadurch kann Nextcloud Office Dokumente ohne einen separaten Collabora-Server bearbeiten. Laut der Beschreibung im App Store ist sie für lokale Tests, den persönlichen Gebrauch, Nicht-Produktivumgebungen und kleine Teams vorgesehen. Eigenständige Collabora-Online-Server sind nicht betroffen. Installationen, die ausschließlich die App Nextcloud Office mit dem Paketnamen richdocuments verwenden, gehören ebenfalls nicht zur betroffenen Konfiguration – unabhängig davon, ob ihr separater Dokumentenserver über Docker, ein Linux-Paket oder einen Hostinganbieter läuft.
Die anfällige Datei proxy.php startet den lokalen Dokumentenserver, wenn eine Anfrage eingeht und kein Dienst Anfragen entgegennimmt. Bis einschließlich Version 26.4.302 fügte sie durch die Anfrage kontrollierten Text, darunter den Anfragepfad, in einen durch doppelte Anführungszeichen eingeschlossenen Bash-Befehl ein. Bash ist ein Programm, das Betriebssystembefehle interpretiert. Text, der innerhalb eines solchen Befehls als $(...) geschrieben wird, wird ausgeführt, statt als gewöhnlicher Text behandelt zu werden. Ein Angreifer konnte daher einen Befehl im Anfragepfad verbergen und ihn mit den Rechten des Webserver-Benutzers ausführen lassen, wenn das Skript versuchte, CODE zu starten.
Das bloße Deaktivieren der App beseitigt das Risiko nicht. Der Webserver kann proxy.php direkt aus dem App-Verzeichnis ausführen, und die Datei lädt nicht den Nextcloud-eigenen Code, der prüft, ob die App aktiviert ist. Administratoren müssen richdocumentscode 26.4.303 oder höher installieren oder die App vollständig entfernen. Die korrigierten Releases erfordern Nextcloud 30 oder neuer. Nextcloud 29 und ältere Versionen sind end of life und erhalten aus dem Store weiterhin eine betroffene App-Version. Diese Installationen müssen daher Nextcloud aktualisieren oder die integrierte App entfernen.
Der erste Administrator, der den Vorfall meldete, betrieb mehrere betroffene Server mit Version 26.4.302. Die Protokolle zweier Systeme zeichneten Anfragen am 10. September um 19:51 Uhr und am 11. September um 09:56 Uhr auf, jeweils in UTC+2 und beide von derselben IP-Adresse. Die Anfragen zielten auf proxy.php?status und enthielten im Pfad einen verborgenen shell-Befehl. Dieser Befehl decodierte eine einzeilige web shell in PHP in das App-Verzeichnis und versuchte, die Ausgabe von uname -a, die das Betriebssystem des Servers beschreibt, an eine webhook.site-Adresse zu senden.
Auf einem kompromittierten Server suchte der Angreifer anschließend nach Datenbanken mit Zugangsdaten und Dateien von Kryptowährungs-Wallets. Zu den Suchzielen gehörten *.kdbx, wallet.dat und keystore.json sowie Namen, die mit Bitwarden, 1Password, Bitcoin, Electrum, Monero und Ethereum in Verbindung stehen. Die überprüften Befehle zeigten nicht, dass Dateien archiviert, hochgeladen oder an einen anderen Ort kopiert wurden. Der Administrator empfahl jedoch, alle Daten, die für das Webserver-Konto lesbar waren, als potenziell offengelegt zu behandeln. Keiner der drei Berichte zeigte, dass der Angreifer root access erlangte, also die höchste Kontrollebene auf einem Linux-System.
Ein zweiter Administrator entdeckte eine neu erstellte PHP-Datei, nachdem der integrity check von Nextcloud, der unerwartete Änderungen erkennt, eine Warnung ausgegeben hatte. Ein weiterer wurde durch E-Mails über den Einbruch informiert, die fehlgeschlagene sudo-Versuche meldeten, also Versuche, Befehle mit höheren Berechtigungen auszuführen. Nachdem ein Administrator auf 26.4.303 aktualisiert hatte, ging am 14. September eine weitere ähnliche Anfrage von einer anderen IP-Adresse ein. Der schädliche Text erschien in den CODE-Startoptionen, erstellte jedoch keine shell-Datei. Ein Projektvertreter erklärte, die alarmierend wirkende Ausgabe sollte in der aktualisierten Version harmlos sein, und empfahl, alle noch vorhandenen shx*.php-Dateien zu entfernen.
Administratoren sollten apps/richdocumentscode nach shx*.php durchsuchen und die Zugriffsprotokolle mindestens ab dem 10. September auf Anfragen an /apps/richdocumentscode/proxy.php?status prüfen. Zu den gemeldeten Pfadmerkmalen gehören %2e%2e, $(, ${IFS} und base64 -d mit Weiterleitung per Pipe an sh. Beobachtete Dateinamen waren shrf4645.php, shxa35d0.php, shx5cf91.php, shxd33ce.php, shxf4645.php, shx13a86.php und shx56367.php. Die web shell hatte den SHA-256-Wert 4b9fbd0663fbfd6028fc216ed18e0d6ef3ae498a7fdc97083e4b0ce3cec40562. Als Adressen wurden 139.28[.]18[.]122 und 89.38[.]98[.]50 gemeldet, während die Callbacks webhook[.]site mit den IDs 45060ed4-de0b-4119-8f0d-2a2776bbd413 und 774cf5e1-b5a4-4174-a1ad-0241861029a2 verwendeten.
Version 26.4.402, die am 24. September veröffentlicht wurde, änderte den Startvorgang so, dass jede Option einzeln übergeben wird. Einige Administratoren berichteten, dass sich CODE mit diesem Release in ihren Umgebungen nicht starten ließ oder keine Dokumente öffnete, und kehrten zu 26.4.303 zurück. Diese Version wird in der Sicherheitsempfehlung als Korrektur genannt. Bis zum 14. Oktober war kein neueres Release verfügbar. Eine frühere Korrektur für das separate command injection-Problem CVE-2025-66208 in proxy.php verhindert CVE-2026-110447 nicht.
Die Repository-Historie zeigt, dass die vierzeilige Korrektur am 20. August geschrieben und am 9. September committet wurde. Sie maskierte den vollständigen Startbefehl als ein einziges Argument und verhinderte dadurch, dass Anfragetext von der shell expandiert wurde. Die Änderung war nicht in Version 26.4.302 enthalten, die am 31. August veröffentlicht wurde. In den Release Notes der am 11. September veröffentlichten Version 26.4.303 wurde lediglich der mitgelieferte CODE-Build erwähnt, nicht jedoch die Sicherheitsauswirkungen. Eine Warnung der Community erschien am 3. Oktober; die CVE und die Sicherheitsempfehlung folgten am 14. Oktober. Aus der Sicherheitsempfehlung geht nicht hervor, wann Collabora erfuhr, dass die Änderung eine Sicherheitslücke behob.
Der CVE-Eintrag besagt, dass die Schwachstelle im September und Oktober 2026 ausgenutzt wurde. Die Gesamtzahl der betroffenen Server ist jedoch weiterhin unbekannt. Organisationen, die Unterstützung für ihre umfassenderen Websysteme benötigen, können AEU-I für sicherheitsorientierte IT, Infrastruktur und Beratung in Betracht ziehen. Für betroffene Nextcloud-Betreiber bleiben die unmittelbaren Prioritäten das Aktualisieren oder Entfernen von richdocumentscode, das Auffinden verbliebener web shell-Dateien und die Untersuchung der Daten, auf die das Webserver-Konto zugreifen konnte.