Security Advisory

CVE-2025-51534Stored Nested XSS “Delete” Button

OpenAtlas · Austrian Academy of Sciences (ÖAW)

CVE veröffentlicht 04.08.2025 · entdeckt 19.05.2025

Worum es geht

Über ein Name-Feld ließ sich in OpenAtlas 8.11.0 JavaScript dauerhaft speichern. Der Payload tauchte später wieder in der Oberfläche auf und konnte beim Bearbeiten beziehungsweise Löschen des Datensatzes im Browser eines anderen Benutzers laufen.

Was ich gefunden habe

Anders als bei einem reflektierten XSS bleibt der Payload hier in der Anwendung gespeichert. Der öffentliche CVE-Eintrag nennt das Name-Feld; in meinem ursprünglichen Advisory ist die spätere Ausführung im Delete-Workflow dokumentiert.

Damit reicht ein präparierter Datensatz. Der Angriff muss nicht bei jedem Aufruf neu über einen Link angestoßen werden, sondern trifft den nächsten Benutzer, der den betroffenen Workflow öffnet.

Die Ursache ist fehlendes oder zum Kontext unpassendes Output Encoding für gespeicherte, vom Benutzer kontrollierbare Inhalte.

Warum das relevant ist

Ein Angreifer speichert einen manipulierten Namen. Öffnet später ein anderer – besonders ein privilegierter – Benutzer den betroffenen Datensatz oder Workflow, läuft der Code im OpenAtlas-Origin.

Mögliche Auswirkung

  • Ausführung von JavaScript im Kontext der Anwendung (Browser des Opfers).
  • Risiken: Kontoübernahme/Session-Diebstahl, Datenmanipulation oder -löschung abhängig von Rechten.

Behebung

  • Auf OpenAtlas 8.12.0 oder neuer aktualisieren.
  • Benutzereingaben beim Rendern immer kontextbezogen encodieren; reine Eingabevalidierung ersetzt Output Encoding nicht.
  • HTML in Namens- und Beschriftungsfeldern grundsätzlich nicht interpretieren, sofern fachlich nicht zwingend notwendig.
  • CSP und sichere Template-Defaults als zusätzliche Schutzschichten einsetzen.

Versionen

Betroffen<= 8.11.0
Behoben / Herstellerangabe8.12.0

Referenzen

Weitere Research zu OpenAtlas