„`html
Zusammenfassung
Eine gespeicherte Cross-Site-Scripting (XSS)-Schwachstelle wurde in parisneo/lollms identifiziert. Die Vulnerability existiert im POST /api/prompts/share-Endpunkt, wo benutzerkontrollierte Inhalte ohne serverseitige Validierung gespeichert werden. Dies ermöglicht authentifizierten Angreifern, beliebigen JavaScript-Code in der Browserumgebung von Opfern auszuführen.
Betroffene Systeme
- parisneo/lollms (aktuelle Version)
- Alle Systeme, die diese Version einsetzen
- Anfälligkeit erfordert Authentifizierung des Angreifers
Technische Details
Angriffsvektor: Der Exploit erfolgt über den POST /api/prompts/share-Endpunkt. Der Parameter prompt_content wird direkt in DBDirectMessage.content ohne serverseitige Sanitierung gespeichert.
Ausführungsmechanismus: Die Direktnachrichten-UI rendert gespeicherte Inhalte mittels MessageContentRenderer und nutzt die Vue.js-Direktive v-html zur DOM-Manipulation. Der clientseitige Regex-basierte Sanitizer ist nicht ausreichend robust und kann komplexe XSS-Payloads nicht zuverlässig filtern.
Impact: Erfolgreiche Ausnutzung führt zu:
- Beliebige JavaScript-Ausführung im Opferkontext
- Session-Hijacking und authentifizierte Aktionen als Opfer
- Zugriff auf sensitive Applikationsdaten (Same-Origin)
- Potenzielle Kontokenübernahme
Empfohlene Massnahmen
- Serverseitige Validierung: Implementieren Sie strikte Input-Validierung und Output-Encoding auf dem Server
- HTML-Escaping: Nutzen Sie sichere DOM-Methoden statt
v-html; verwenden Siev-textoder Textknoten - Content Security Policy: Implementieren Sie restriktive CSP-Header
- DOMPurify: Ersetzen Sie Regex-basierte Sanitizer durch bewährte Bibliotheken wie DOMPurify
- Update abwarten: Überwachen Sie offizielle Sicherheitsmitteilungen des Projekts
Bewertung
CVSS-Score: 8.7 (High)
Verfügbarkeit: Patch nicht vorhanden
Empfohlene Priorität: Hoch – Sofortige Mitigation erforderlich
„`