Security Advisory

CVE-2026-79363Stored XSS im Branding Footer

Cloudron · Cloudron UG (haftungsbeschränkt)

CVE veröffentlicht 06.10.2026 · entdeckt 02.07.2026

Worum es geht

Über den Branding Footer von Cloudron ließ sich HTML persistent speichern. In den von mir getesteten Versionen 9.1.7 und 9.2 wurde dieser Wert auf der öffentlichen Login-/OpenID-Interaction-Seite und im Event Log ohne ausreichende Sanitization als HTML gerendert. Dadurch konnte gespeichertes JavaScript im Cloudron-Origin ausgeführt werden.

Was ich gefunden habe

Der Einstiegspunkt lag unter Appearance → Branding → Footer. Ein Administrator bzw. Superadmin konnte dort HTML speichern. Der Inhalt wurde anschließend nicht nur als Branding auf der öffentlichen Anmeldeseite verwendet, sondern auch in weiteren Ansichten wie dem System Event Log ausgegeben.

Ein minimales Proof of Concept war:

cloud><img src=x onerror=prompt(1)>

Nach dem Speichern genügte das Öffnen der öffentlichen Cloudron-Login- beziehungsweise OpenID-Interaction-Seite, damit der Event-Handler ausgeführt wurde. Der gleiche gespeicherte Wert wurde außerdem im Event Log als HTML dargestellt. Historische Logeinträge konnten den injizierten Inhalt auch dann noch enthalten, wenn der Footer später wieder bereinigt wurde.

Wichtig für die Einordnung: Zum Eintragen des Payloads sind hohe Rechte auf der Cloudron-Instanz erforderlich. Es handelt sich daher nicht um eine unauthentifizierte Injection. Der gespeicherte Code erreicht anschließend jedoch andere Benutzer über eine öffentliche Authentifizierungsoberfläche.

Warum das relevant ist

Stored XSS ist hier vor allem deshalb relevant, weil Konfigurationsdaten aus einem privilegierten Admin-Bereich in eine öffentliche Login-/OIDC-Oberfläche übernommen werden. Der ausführende Browser muss den manipulierten Wert nicht selbst gesetzt haben.

JavaScript läuft dabei unter dem Web-Origin der Cloudron-Oberfläche. Abhängig von Sitzung, Browser-Schutzmechanismen und erreichbaren Funktionen kann ein Payload die dargestellte Login-Oberfläche manipulieren, browserseitig sichtbare Daten lesen oder Same-Origin-Requests im Kontext des betroffenen Benutzers auslösen.

Mögliche Auswirkung

  • Persistente JavaScript-Ausführung für Benutzer, die die betroffene Login-/OpenID-Seite öffnen.
  • Manipulation der Anmeldeoberfläche, zum Beispiel für täuschende Inhalte oder Redirects.
  • Ausführung im Cloudron-Web-Origin mit den Rechten und Browser-Möglichkeiten der jeweiligen Sitzung.
  • Erneute Darstellung des injizierten HTML im Event Log; historische Einträge können den Wert länger sichtbar halten.

Behebung

  • Auf Cloudron 10.0.0 oder eine neuere Version aktualisieren.
  • Cloudron hat den Fix öffentlich mit DOMPurify beschrieben; die Cloudron-10-Release-Notes nennen zusätzlich die Sanitization von HTML und Markdown.
  • Freies HTML nur dort zulassen, wo es fachlich erforderlich ist, und vor jedem DOM-Sink mit einer gepflegten Sanitization-Library behandeln.
  • Event-Log-Werte grundsätzlich als Text beziehungsweise kontextbezogen encodiert ausgeben.
  • Eine restriktive Content-Security-Policy weiterhin als Defense-in-Depth einsetzen.

Versionen

Bekannt betroffen / getestet9.1.7 und 9.2
Behoben / Herstellerangabe10.0.0
Versionshinweis

Cloudron bestätigte mir 10.0.0 als erste Version mit Fix. Der Hersteller beschrieb das Problem öffentlich außerdem als bereits länger vorhanden. Da ich selbst 9.1.7 und 9.2 getestet habe, kennzeichne ich genau diese Versionen als verifiziert betroffen, statt einen nicht selbst getesteten Einführungszeitpunkt zu behaupten.

Disclosure Timeline

  1. Responsible Disclosure

    Vollständigen Bericht mit Reproduktion, PoC, Impact und Empfehlung an security@cloudron.io übermittelt.

  2. Herstellerbestätigung

    Cloudron bestätigte das Finding und teilte mit, dass für den nächsten Release DOMPurify zur HTML-Sanitization eingesetzt werde.

  3. Cloudron 10 angekündigt

    Die öffentliche Cloudron-10-Ankündigung nennt „sanitize HTML and markdown in the dashboard“ als Security-Änderung.

  4. Finale Versionsklärung

    Vor der Veröffentlichung nochmals nach der ersten Version mit Fix gefragt.

  5. Fix-Version bestätigt

    Cloudron bestätigte 10.0.0 als Version mit Behebung. In der E-Mail wurde der 16.08.2026 als Release-Datum genannt; die öffentliche Cloudron-10-Ankündigung ist auf den 17.09.2026 datiert. Für das Advisory ist deshalb die bestätigte Fix-Version maßgeblich.

  6. 90-Tage-Fenster beendet

    Das angekündigte Coordinated-Disclosure-Fenster seit dem Erstbericht war abgelaufen.

  7. Public Disclosure

    Technisches Advisory zu CVE-2026-79363 auf faydin.blog veröffentlicht.

Referenzen

Weitere Security Research

Weitere von mir veröffentlichte Schwachstellen und Responsible-Disclosure-Advisories sind in der CVE-Übersicht gesammelt.