🚨 Nicht authentifizierte Remote-Codeausführung (RCE) via Datei-Upload
📌 Übersicht
- Projekt: QloApps
- Repository: https://github.com/Qloapps/QloApps
- Betroffene Version(en): <= 1.7.0
- Schwachstellenklasse: Nicht authentifizierte Remote-Codeausführung
- Schweregrad: Kritisch
- CVSS v3.1: (Kritisch) 9.8 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- CVE ID: CVE-2025-67325
- Entdeckt von: Neakk Pornlur
- Offenlegungsdatum: 2026-01-09
🧩 Beschreibung
Uneingeschränkter Datei-Upload in der Hotelbewertungsfunktion in QloApps Version 1.7.0 und früher ermöglicht nicht authentifizierten Angreifern Remote-Codeausführung.
🎯 Betroffener Endpunkt
/module/qlohotelreview/default
⚠️ Ursache
Die Schwachstelle existiert aufgrund von:
- Fehlender Validierung der Dateierweiterung.
- Hochgeladene Dateien werden direkt vom Server ausgeführt.
- Keine Authentifizierungs- oder Autorisierungsprüfungen am Endpunkt.
🔥 Auswirkungen
Ein erfolgreicher Exploit erlaubt einem Angreifer:
- Ausführen beliebiger Betriebssystembefehle.
- Lesen/Schreiben/Löschen sensibler Serverdateien.
- Zugriff auf Datenbank-Anmeldeinformationen.
- Wechsel zu internen Netzwerkdiensten.
- Vollständige Kompromittierung des Hosting-Servers.
Diese Schwachstelle führt zu einem vollständigen Verlust von Vertraulichkeit, Integrität und Verfügbarkeit (CIA-Triade).
🛠️ Proof of Concept (PoC) auf QloApps Version 1.7.0
Wir benötigen eine gültige id_order und ein Ajax-Token, um den anfälligen Endpunkt zu erreichen. Für die id_order führen wir manuell eine Brute-Force-Attacke durch, beginnend bei 1, oder wir erstellen ein Gastkonto und buchen ein Zimmer, um diese id_order zu erhalten. Das Ajax-Token können wir von jeder Hotelzimmerseite abrufen.
1. Ajax-Token abrufen
2. Ein Hotel bewerten und unsere präparierte Image+PHP-Webshell hochladen.
3. Remote-Codeausführung auslösen
Unsere hochgeladene Webshell finden wir unter https://target.com/modules/qlohotelreview/views/img/review/<id_order>/1.php
