„`html
Zusammenfassung
SiYuan, ein populäres Notiz- und Wissensmanagementsystem, weist eine kritische SQL-Injection-Vulnerabilität in Versionen bis 3.7.2 auf. Die Schwachstelle befindet sich in der Backlink- und Mention-Suchfunktion und ermöglicht es Angreifern, beliebige SQL-Befehle auszuführen. Dies führt zum Zugriff auf und zur Manipulation von Daten über Notebook-Grenzen hinweg.
Betroffene Systeme
Betroffene Versionen: SiYuan <= v3.7.2
Gefixed in: v3.7.4
Angriffsvektor: Netzwerk (Network)
Authentifizierung erforderlich: Nein (erreichbar durch anonyme Benutzer und RoleReader-Benutzer)
Technische Details
Die Vulnerabilität liegt in der Datei kernel/model/backlink.go. Der anfällige Code konkateniert Metadaten von gespeicherten Blöcken (Titel, Name, Alias, Ankertexte) mit benutzereingegebenen Suchbegriffen direkt in SQL-MATCH/Search-Statements.
Kernproblem: Nur Doppelzeichen („) werden escaped, nicht jedoch einfache AnfĂĽhrungszeichen (‚). Ein einfaches AnfĂĽhrungszeichen im SuchschlĂĽsselwort oder in gespeicherten Dokumentmetadaten bricht aus dem String-Literal aus und ermöglicht SQL-Injection.
Ausführungskontext: Die Query wird über den Read-Write-Handle der siyuan.db-Datenbasis ausgeführt. Der verwendete Datenbankdriver unterstützt Statement-Stacking, was die Ausführung mehrerer SQL-Statements nacheinander ermöglicht.
Angriffsszenarien:
- First-Order: Injection durch Suchschlüsselwörter auf der Publish-Surface
- Second-Order: Injection durch manipulierte Metadaten in gespeicherten Dokumenten
Empfohlene Massnahmen
- Sofortmassnahme: Upgrade auf SiYuan v3.7.4 oder höher durchführen
- Interim-Schutz: Zugriff auf Backlink/Mention-Suchfunktion durch Web Application Firewall einschränken
- Monitoring: Audit-Logs auf verdächtige SQL-Patterns überwachen
- Validierung: Eingaben auf Sonderzeichen prüfen (temporär)
Bewertung
CVSS v3.1 Score: 10.0 (Critical)
Risiko: Maximal. Vollständige Datenbankintegrität gefährdet. Keine Authentifizierung erforderlich.
„`