Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-38526-KrayinCRM — 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. | Kitploit
Tools/GitHubGitHub/ish3ng0m4/cve-2026-38526-krayincrm
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsPapers & ForschungLernen & BildungPayload-Entwicklung
GitHub
ish3ng0m4/cve-2026-38526-krayincrm

CVE-2026-38526-KrayinCRM

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.

Repository anzeigen
28vor 1 MonatNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-38526 KrayinCRM

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.

Überblick

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 einreichen. Die Anwendung speichert die hochgeladene Datei und gibt ihre erreichbare 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).

Forschungskontext

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 war es, die anfällige Implementierung zu verstehen, den Ausnutzungspfad in einer kontrollierten Umgebung zu reproduzieren und die Bedingungen zu untersuchen, die aus dem Datei-Upload-Problem eine Remote Code Execution machen.

Die Schwachstelle wurde außerdem in der Hack The Box GCSB 2026 Nexus-Maschine verwendet, die eine praktische Umgebung für die Untersuchung des Problems bot.

Betroffene Software

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

Anfälliger Endpunkt

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 erreichbar.

Ursache

Das Hauptproblem ist die unzureichende serverseitige Validierung hochgeladener Dateien.

Die Anwendung verwendet die ursprüngliche, vom Client gelieferte Erweiterung beim Erstellen des gespeicherten Dateinamens. Es gibt keine ausreichend restriktive Allowlist, die verhindert, dass ausführbare Dateitypen die Speicherschicht erreichen.

Der relevante Ablauf ist

Die Verwendung eines generierten Dateinamens behebt das zugrunde liegende Problem nicht.

Beispielsweise macht es shell.php nicht sicher, wenn es in einen generierten Dateinamen wie .php umgewandelt wird, solange der Server .php-Dateien weiterhin als ausführbaren PHP-Code interpretiert.

Warum der Upload zu RCE werden kann

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

Daher ergibt sich die RCE-Auswirkung aus der Kombination von:

  1. Unzureichender Upload-Validierung
  2. Beibehaltung einer ausführbaren Erweiterung
  3. Web-erreichbarem Speicher
  4. PHP-Ausführung, die an diesem Ort erlaubt ist

Wenn die PHP-Ausführung für das Upload-Verzeichnis deaktiviert ist, kann der direkte RCE-Pfad verhindert werden, obwohl die zugrunde liegende Schwachstelle des beliebigen Datei-Uploads bestehen bleibt.

So führst du es aus

  1. Herunterladen

wget:

wget https://raw.githubusercontent.com/Ish3ng0m4/CVE-2026-38526-KrayinCRM/main/poc/upload.py
wget https://raw.githubusercontent.com/Ish3ng0m4/CVE-2026-38526-KrayinCRM/main/poc/marker.php

curl:

curl -LO https://raw.githubusercontent.com/Ish3ng0m4/CVE-2026-38526-KrayinCRM/main/poc/upload.py
curl -LO https://raw.githubusercontent.com/Ish3ng0m4/CVE-2026-38526-KrayinCRM/main/poc/marker.php

2. Platzieren Sie die Dateien in

    poc/
    ├── upload.py
    └── marker.php

3. Erstellen Sie eine Python-Umgebung und installieren Sie die Abhängigkeit

    python3 -m venv .venv
    source .venv/bin/activate
    pip install requests

4. Machen Sie das PoC ausführbar

    chmod +x poc/upload.py

6. Führen Sie es aus

    python3 poc/upload.py \
      --url http://[Lab_IP:PORT] \
      --email [email protected] \
      --password 'YOUR_PASSWORD'

Ausnutzungsanalyse

Die Ausnutzung erfordert ein authentifiziertes Konto, das in der Lage ist, die verwundbare Funktionalität zu erreichen.

Auf hoher Ebene:

  1. Bei Krayin CRM authentifizieren
  2. Den erforderlichen Anwendungssitzungskontext erhalten
  3. Auf /admin/tinymce/upload zugreifen
  4. Eine manipulierte Datei übermitteln
  5. Die Anwendung akzeptiert die ausführbare Erweiterung
  6. Die Datei wird am TinyMCE-Speicherort geschrieben
  7. Die Anwendung gibt die resultierende Datei-URL zurück
  8. Die hochgeladene Datei anfordern
  9. PHP wird vom Server interpretiert
  10. Befehle werden mit den Privilegien der Webanwendung ausgeführt

Der resultierende Ausführungskontext wird durch die zugrunde liegende Bereitstellung bestimmt. In einer typischen Linux-Bereitstellung kann dies das Dienstkonto des Webservers sein, wie zum Beispiel:

www-data

Dies verleiht nicht automatisch Root-Privilegien auf Betriebssystemebene. Die weitere Auswirkung hängt von den Berechtigungen und der Konfiguration der kompromittierten Umgebung ab.

Quellcodeanalyse

Das verwundbare Verhalten lässt sich auf drei wichtige Operationen reduzieren.

  1. Die hochgeladene Datei erhalten

     $file = request()->file('file');
    

Die Anwendung empfängt die vom Client bereitgestellte Datei.

  1. Die vom Client kontrollierte Erweiterung beibehalten

     $filename = md5($file->getClientOriginalName().time())
                 .'.'.$file->getClientOriginalExtension();
    

Der Dateiname selbst wird geändert, aber die ursprüngliche Erweiterung bleibt erhalten. Dies ist eine wichtige Unterscheidung: Die Randomisierung des Dateinamens ist keine Dateitypvalidierung.

  1. Die Datei speichern und bereitstellen

      $path = $file->storeAs($this->storagePath, $filename);
     return [
         'file' => $path,
         'file_name' => $file->getClientOriginalName(),
         'file_url' => Storage::url($path),
     ];
    

Die Anwendung speichert die Datei und stellt dem Client ihre URL bereit.

Auswirkung

Eine erfolgreiche Ausnutzung kann einem Angreifer Codeausführung unter den Privilegien der Webanwendung ermöglichen.

Tool herunterladen