Worum es geht
Im selben Network-Overview gab es einen zweiten XSS-Pfad über „charge“. Der Parameter wurde clientseitig weiterverarbeitet und konnte dabei aus Daten ausführbaren Inhalt machen.
Was ich gefunden habe
Auch dieses Finding liegt in /overview/network/, diesmal beim Parameter „charge“. Der Wert wurde in einem DOM-/Rendering-Pfad verarbeitet, ohne ihn passend zum späteren Kontext zu neutralisieren.
Das Ergebnis war ein Link, dessen Payload beim Öffnen im Browser ausgewertet wurde. Der eigentliche Fehler ist simpel: Ein URL-Parameter konnte die Grenze zwischen Daten und ausführbarem Inhalt überschreiten.
Betroffen sind Versionen bis einschließlich 8.12.0. Der Fix kam mit OpenAtlas 8.13.0.
Warum das relevant ist
Für einen Angriff braucht es einen präparierten Link und einen Benutzer, der ihn öffnet. Läuft der Payload, befindet er sich im OpenAtlas-Origin und hat damit den gleichen Browser-Kontext wie die Anwendung.
Mögliche Auswirkung
- DOM-based XSS durch ungefilterte Parameterübergabe.
Behebung
- Auf OpenAtlas 8.13.0 oder neuer aktualisieren.
- Den Parameter „charge“ strikt auf erwartete Werte und Datentypen begrenzen.
- DOM-Sinks vermeiden beziehungsweise ausschließlich sichere APIs wie textContent für nicht vertrauenswürdige Daten verwenden.
- CSP als zusätzliche Schutzschicht verwenden, nicht als Ersatz für saubere Ausgabevalidierung.