Python-Scanner und Proof-of-Concept für CVE-2026-49049, einen beliebigen Dateischreibvorgang in Joomla Helix3, der das Hochladen einer PHP-Webshell und die Ausführung von Remote-Code ermöglicht.
Dieses Repository enthält einen Python-basierten Scanner und Proof-of-Concept für eine Schwachstelle in der Joomla-Helix3-Komponente. Der Fehler ist ein Problem des beliebigen Dateischreibens (Arbitrary File Write), das zu Remote Code Execution (RCE) führen kann, wenn ein Angreifer eine PHP-Payload an einen webzugänglichen Ort schreiben kann.
Das anfällige Verhalten tritt auf, wenn ein Anforderungsparameter verwendet wird, um einen Dateipfad oder Dateiinhalt ohne ordnungsgemäße Validierung zu steuern. Im Fall der Helix3-AJAX-Schnittstelle akzeptiert der Endpunkt Daten, die zum Schreiben von Dateien in das Serverdateisystem verwendet werden können. Wenn die Anwendung den Zielpfad nicht einschränkt und den Inhalt nicht überprüft, kann ein Angreifer ein bösartiges PHP-Skript an einem Ort erstellen, den der Webserver ausführt.
Mit anderen Worten: Die Schwachstelle ist nicht nur „eine Datei kann geschrieben werden“ – sie ist eine gefährliche Kette:
Dies ist ein klassisches Szenario von beliebigem Dateischreiben zu Webshell.
Sobald ein Angreifer eine PHP-Datei in das Site-Root oder ein anderes ausführbares Verzeichnis schreiben kann, kann er:
Die Auswirkung ist schwerwiegend, da sie es einem Angreifer ermöglicht, einen einfachen Dateischreibfehler in eine vollständige Serverkompromittierung zu verwandeln.
Das Grundproblem ist typischerweise ähnlich wie diese Logik:
$file = $_POST['layoutName'];
$content = $_POST['content'];
file_put_contents($file, $content);
Wenn der Wert von $file vom Angreifer kontrolliert wird und der Pfad nicht eingeschränkt ist, kann die Anwendung PHP-Code in einen ausführbaren Pfad schreiben. Das bösartige Skript ist dann für den Browser verfügbar und kann vom Webserver ausgeführt werden.
Dieses Projekt enthält ein multithreaded Python-Tool, das versucht:
Es zeichnet anfällige Ziele in results.txt auf und speichert rohe PHP-Ausgaben in raw_result.txt.
Die Behebung sollte nicht vertrauenswürdige Dateischreibvorgänge eliminieren und strenge Validierung erzwingen. Empfohlene Maßnahmen zur Behebung sind unten aufgeführt.
Aktualisieren Sie Joomla und die Helix3-Komponente/das Plugin auf die neueste stabile Version. Sicherheitsupdates entfernen oder beschränken häufig den anfälligen Endpunkt, der beliebige Schreibvorgänge ermöglicht.
Wenn die Helix3-AJAX-Funktionalität nicht erforderlich ist, deaktivieren Sie sie vollständig. Das Entfernen des Zugriffs auf den unsicheren Endpunkt reduziert die Angriffsfläche erheblich.
Erlauben Sie keine beliebigen Dateisystempfade. Die Anwendung sollte Schreibvorgänge nur innerhalb eines kleinen, festen Verzeichnisses zulassen, das nicht öffentlich zugänglich ist und nicht als PHP ausgeführt wird.
Die Validierung sollte ablehnen:
../Bevor Sie eine Datei schreiben:
Nur vertrauenswürdige Administratoren sollten Endpunkte verwenden dürfen, die Dateien schreiben. Erfordern Sie ordnungsgemäße Authentifizierung und Berechtigungsprüfungen, bevor Sie eine Schreibanforderung akzeptieren.
Schreiben Sie niemals rohe, vom Angreifer kontrollierte Inhalte ohne strenge Validierung in ausführbare Dateien. Darüber hinaus sollte die Server-Härtung Folgendes umfassen:
requests-PaketErstellen Sie eine Datei mit den Ziel-URLs, zum Beispiel targets.txt:
http://example.com
https://joomla-site.local
http://127.0.0.1
Führen Sie dann aus:
python3 cve-2026-49049.py targets.txt
Das Skript erstellt:
results.txt — erkannte anfällige URLsraw_result.txt — während des Tests beobachtete rohe PHP-PayloadsDieses Projekt ist für Bildungszwecke, legitime Sicherheitsforschung und autorisierte Schwachstellenbewertung gedacht. Es darf nicht gegen Systeme ohne ausdrückliche Genehmigung verwendet werden. Missbrauch ist strengstens untersagt.
Der Inhalt dieses Repositorys wird bereitgestellt, um Forschern und Administratoren zu helfen, ein reales Sicherheitsproblem zu verstehen, zu identifizieren und zu beheben. Verwenden Sie es verantwortungsvoll und nur in kontrollierten Umgebungen, in denen Sie über die entsprechende Autorisierung verfügen.