Zum Inhalt springen
← Zurück zum Cyberlagebild
Zuletzt aktualisiert 24.08.2026 21:47

3X-UI Vulnerable to Authenticated Arbitrary File Write via Database Import and Xray Log Path Manipulation

CVSS –1 Quelle

Beschreibung

# Zusammenfassung Ein authentifizierter Administrator kann die Datenbankimportfunktionalität missbrauchen, um ein willkürliches Schreiben von Dateien auf dem Host zu erreichen, indem er die in der Datenbank gespeicherten Xray-Konfigurationswerte ändert. Dies kann genutzt werden, um Codeausführung und dauerhaften Zugriff zu erhalten, wenn der Benutzer Xray ausführt (einschließlich root, wenn Xray als root ausgeführt wird). # Details Die Datenbankimportfunktionalität vertraut den von Angreifern gesteuerten Konfigurationswerten ohne ausreichende Validierung. Ein authentifizierter Administrator kann die SQLite-Datenbank exportieren, `xrayTemplateConfig.log.access` ändern, um auf eine beliebige Datei zu verweisen, und die geänderte Datenbank wieder in das Panel importieren. Der Angreifer kann dann kontrollierte Inhalte in das E-Mail-Feld eines eingehenden Kunden einfügen. Wenn eine Verbindung verarbeitet wird, schreibt Xray den angreifergesteuerten Inhalt in den konfigurierten Zugriffsprotokollpfad. Da der Protokollpfad vollständig vom Angreifer gesteuert wird, führt dieses Verhalten dazu, dass willkürliche Dateien geschrieben werden, während der Benutzer Xray ausführt. Abhängig von der Zieldatei und den Dienstprivilegien kann dies verwendet werden, um Codeausführung und dauerhaften Hostzugriff zu erhalten. # PoC 1. Authentifizierung als Panel-Administrator. 2. Export der Panel-Datenbank. 3. Ändern Sie `xrayTemplateConfig.log.access`, um auf eine beschreibbare Zieldatei zu verweisen (z. B. `~/.ssh/authorized keys`). 4. Injizieren Sie einen vom Angreifer gesteuerten öffentlichen SSH-Schlüssel in das E-Mail-Feld eines eingehenden Kunden. 5. Importieren Sie die geänderte Datenbank. 6. Triggern Sie eine Verbindung durch den modifizierten Inbound. 7. Xray schreibt den vom Angreifer kontrollierten Inhalt in die angegebene Datei und ermöglicht SSH-Zugriff als Benutzer, der Xray ausführt. Ein kompletter PoC ist verfügbar und kann privat zur Verfügung gestellt werden. # Impact Type: Authenticated Arbitrary File Write -> Privilege Escalation / Code Execution Jeder authentifizierte 3X-UI-Administrator kann angreifergesteuerte Inhalte in beliebige Dateien schreiben, auf die der Xray-Prozess zugreift. Dies ermöglicht eine kompromittierung des kontos, auf dem xray ausgeführt wird, und kann je nach bereitstellungskonfiguration und serviceprivilegien zu einem kompromittierungskompromitt führen. In Umgebungen, in denen Xray als Root läuft, führt eine erfolgreiche Nutzung zu einem anhaltenden Root-Zugriff. # Patches Fixed in **v3.3.1**. `resolveXrayLogPaths` (`internal/web/service/xray.go`) begrenzt nun die Xray `log.access`- und `log.error`-Pfade zum Protokollordner des Panels: jeder konfigurierte Wert wird auf seinen Basisdateinamen unter `config.GetLogFolder()` reduziert. Absolute Pfade (wie `/etc/cron.d/...` oder `~/.ssh/authorized keys`) und `..` traversal können Xray nicht mehr außerhalb des Protokollordners schreiben lassen, während `""' und `'none'' weiterhin die Protokollierung deaktivieren. Die Einschränkung wird während der Xray-Konfigurationsgeneration angewendet, so dass sie alle Möglichkeiten abdeckt, wie die Vorlage eingestellt werden kann - den Datenbankimport und den eingebauten rohen Xray-Konfigurationseditor gleichermaßen. # Workarounds Keine andere als Upgrade. Bis Sie auf v3.3.1 aktualisieren können, beschränken Sie den Panel-Administratorzugriff auf vollständig vertrauenswürdige Operator. # Notizen Das zugrunde liegende Problem ist der uneingeschränkte Protokollpfad und nicht der Datenbankimport allein: Ein Administrator kann dasselbe ..

Hersteller
Produktgithub.com/mhsanaei/3x-ui/v3, github.com/mhsanaei/3x-ui/v2
Produktfamiliego
Betroffene Versionen<= 3.3.0, <= 2.9.4
Behobene Versionen3.3.1

Quellen & weiterführende Informationen

Hier werden ausschließlich tatsächlich zu dieser Schwachstelle gespeicherte Quellenbelege angezeigt.

Was ist zur Behebung zu tun?

Auf eine behobene Version aktualisieren: 3.3.1.

PrioritätGelb
EinordnungZeitnah behandeln: hohes technisches Risiko.

Empfohlene Schritte

  • Betroffene Systeme identifizieren: github.com/mhsanaei/3x-ui/v3, github.com/mhsanaei/3x-ui/v2.
  • Exposition prüfen: Internet-Erreichbarkeit, Admin-Oberflächen, VPN, Mail- oder Webdienste.
  • Update/Rollout auf behobene Version vorbereiten und priorisiert einspielen.
  • Nacharbeiten dokumentieren: betroffene Assets, Maßnahme, Zeitpunkt, Restrestrisiko.

Übergangsmaßnahmen

  • Zugriff auf betroffene Dienste auf vertrauenswürdige Netze einschränken.
  • WAF/IDS/EDR-Regeln und Hersteller-IOCs aktivieren, sofern verfügbar.
  • Nicht benötigte Funktionen, Plugins oder Dienste temporär deaktivieren.