Authentifizierter beliebiger Datei-Upload, der zu Remote Code Execution führt – Technische Analyse und kontrollierte Reproduktion von CVE-2026-38526 in Webkul Krayin CRM 2.2.x.
Authentifizierter beliebiger Datei-Upload, der zu Remote Code Execution führt – Technische Analyse und kontrollierte Reproduktion von CVE-2026-38526 in Webkul Krayin CRM 2.2.x.
CVE-2026-38526 ist eine Schwachstelle für authentifizierten beliebigen Datei-Upload, die Webkul Krayin CRM 2.2.x betrifft.
Die anfällige Funktionalität wird über den TinyMCE-Upload-Endpunkt der Anwendung bereitgestellt:
POST /admin/tinymce/upload
Die Anwendung schränkt den Typ der hochladbaren Datei nicht ausreichend ein. Ein authentifizierter Benutzer kann eine Datei mit einer serverseitig ausführbaren Erweiterung wie .php übermitteln. Die Anwendung speichert die hochgeladene Datei und gibt ihre zugängliche URL zurück.
Wenn die Bereitstellung die PHP-Ausführung vom Upload-Speicherort aus erlaubt, kann die hochgeladene Datei anschließend über den Webserver angefordert werden, was zu Remote Code Execution im Kontext des Webanwendungsprozesses führt.
Der veröffentlichte CVE-Eintrag bewertet die Schwachstelle mit CVSS 3.1: 9.9 (Kritisch).
Dieses Repository enthält meine eigene technische Analyse und kontrollierte Reproduktion der Schwachstelle.
Die Schwachstelle wurde bereits öffentlich unter CVE-2026-38526 offengelegt. Diese Arbeit erhebt keinen Anspruch auf die Entdeckung der Schwachstelle. Der Zweck dieser Forschung bestand darin, die anfällige Implementierung zu verstehen, den Ausnutzungspfad in einer kontrollierten Umgebung zu reproduzieren und die Bedingungen zu untersuchen, die das Datei-Upload-Problem in Remote Code Execution verwandeln.
Die Schwachstelle wurde auch in der Hack The Box GCSB 2026 Nexus machine verwendet, was eine praktische Umgebung für die Untersuchung des Problems bot.
Produkt: Webkul Krayin CRM Betroffene Versionen: 2.2.x Schwachstelle: Beliebiger Datei-Upload Resultierende Auswirkung: Remote Code Execution Authentifizierung: Erforderlich Angriffsvektor: Netzwerk CWE: CWE-434 — Unrestricted Upload of File with Dangerous Type CVSS: 9.9 Kritisch CVE: CVE-2026-38526
Die anfällige Funktionalität wird behandelt von:
/admin/tinymce/upload
Der Endpunkt akzeptiert eine hochgeladene Datei über den Parameter file. Die relevante Anwendungslogik leitet den gespeicherten Dateinamen vom ursprünglichen Dateinamen ab und behält dessen ursprüngliche Erweiterung bei.

Dieses Verhalten ist wichtig, weil die Anwendung nicht einfach ein hochgeladenes Objekt akzeptiert; sie behält eine vom Angreifer kontrollierte ausführbare Erweiterung bei und macht das resultierende Objekt über den Speichermechanismus der Anwendung zugänglich.
Das Hauptproblem ist die unzureichende serverseitige Validierung hochgeladener Dateien.
Die Anwendung verwendet die ursprüngliche, vom Client gelieferte Erweiterung, wenn sie den gespeicherten Dateinamen erstellt. Es gibt keine ausreichend restriktive Allowlist, die verhindert, dass ausführbare Dateitypen die Speicherschicht erreichen.
Der relevante Ablauf ist

Die Verwendung eines generierten Dateinamens löst das zugrunde liegende Problem nicht.
Beispielsweise macht es shell.php nicht sicher, wenn man es in einen generierten Dateinamen wie .php ändert, solange der Server .php-Dateien weiterhin als ausführbaren PHP-Code interpretiert.
Ein uneingeschränkter Upload bedeutet nicht automatisch Remote Code Execution.
Der Ausführungspfad hängt davon ab, wie der Server die hochgeladene Datei behandelt.
Im anfälligen Bereitstellungsszenario wird die Kette zu
