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-90907 — Python-CLI, die CVE-2026-90907 erkennt und ausnutzt, eine Autorisierungsumgehung in Joomla! com_users, die unauthentifizierte Kontoerstellung ermöglicht; nicht-destruktiver Prüfmodus plus PoC. | Kitploit
Tools/GitHubGitHub/aorozco-sys/cve-2026-90907
Authentifizierung & AutorisierungSchwachstellenscannerSchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstests
GitHubaorozco-sys/cve-2026-90907

CVE-2026-90907

Python-CLI, die CVE-2026-90907 erkennt und ausnutzt, eine Autorisierungsumgehung in Joomla! com_users, die unauthentifizierte Kontoerstellung ermöglicht; nicht-destruktiver Prüfmodus plus PoC.

Repository anzeigen
11vor 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-90907 — Joomla! CMS Unautorisierte Erstellung von Benutzerkonten

Python Severity Fixed

NUR FÜR AUTORISIERTE SICHERHEITSTESTS. Das Ausführen des Exploit-Modus gegen Systeme, die Ihnen nicht gehören oder für die Sie keine ausdrückliche schriftliche Erlaubnis zum Testen haben, ist illegal. Der Standardmodus (CHECK) ist nicht destruktiv und erstellt nichts.

CLI-Tool, das CVE-2026-90907 erkennt und (optional, mit -U) ausnutzt — eine Autorisierungs-Umgehung mittlerer Schwere (CVSS 6.9) im Joomla! CMS-Kern, die es einem nicht authentifizierten Remote-Angreifer ermöglicht, die unautorisierte Erstellung von Benutzerkonten über den com_users → profile.save-Controller auszulösen — selbst wenn die öffentliche Registrierung in der Globalen Konfiguration deaktiviert ist.

Zusammenfassung der Schwachstelle

FeldWert
CVE-IDCVE-2026-90907
SchweregradMittel — CVSS 6.9
TypAutorisierungs-Umgehung / unsachgemäße Zugriffskontrolle (CWE-862)
Komponentecom_users-Komponente, profile.save-Task
AngriffsvektorRemote, nicht authentifiziert, zweistufiger POST innerhalb derselben Sitzung
Behoben inJoomla! 5.4.9 und 6.1.4 (Sicherheitsrelease, 2026-09-29)

Betroffene Versionen

Gemäß dem Joomla!-Sicherheitsbulletin (2026-09-29) und öffentlichen Advisory-Quellen:

  • Joomla! 1.5.0 – 5.4.8
  • Joomla! 6.0.0 – 6.1.3

Joomla! 3.x ist ebenfalls betroffen, aber End-of-Life: Es wird keinen offiziellen Patch erhalten — planen Sie eine Migration. Die Versionsbanner-Prüfung des Tools ist informativ; das Urteil erfolgt verhaltensbasiert (siehe unten).

Auswirkung

Das vom Angreifer kontrollierte Konto ist ein Front-End-Konto mit geringen Rechten ohne administrativen oder Backend-Zugriff. Dennoch ermöglicht dies einem Angreifer:

  • Konten zu erstellen, selbst wenn die Registrierung ausdrücklich deaktiviert ist
  • Benutzernamen / E-Mail-Adressen zu reservieren
  • Registrierungs-Hook-Plugins unerwartet auszulösen
  • Die interne Anwendungslogik als authentifizierte Sitzung zu sondieren

Ursache

ProfileModel::save() führt nur dann ein unset() auf $data['username'] aus, wenn der Benutzername als konform gilt. isUsernameCompliant wird aus dem Benutzer- zustand com_users.edit.profile.data abgeleitet, den der Controller mit der vollständigen Anfrage befüllt, wenn die Formularvalidierung fehlschlägt. Der Controller versäumt es außerdem, den Anmeldestatus der eingehenden Anfrage zu überprüfen. Daher gilt innerhalb einer Gast- sitzung:

  1. W1 (Seed) — POST mit einem nicht konformen Benutzernamen und ohne privacyconsent → Validierung schlägt fehl → der fehlerhafte Benutzername wird im Sitzungs-Benutzerzustand gespeichert (es wird noch nichts erstellt).
  2. W2 (Exploit) — dieselbe Sitzung, erneutes Senden mit einem sauberen Benutzernamen plus jform[privacyconsent][privacy]=1 → die unset()-Sperre wird übersprungen → INSERT INTO #__users → 303-Weiterleitung mit user_id > 0.
  3. Differenzielle Login-Verifikation — POST user.login (Feldname ist password, nicht passwd) mit dem korrekten vs. einem falschen Passwort und Auslesen der Flash-Nachricht: korrekt → "you cannot access the private section" (Auth OK, ACL blockiert) / falsch → "do not match". Die Differenz ist der Beweis.

Installation

git clone https://github.com/aorozco-sys/CVE-2026-90907.git
cd CVE-2026-90907
pip install -r requirements.txt   # only dependency: requests

Verwendung

# CHECK mode (default) — non-destructive: never sends consent, never creates an account
python3 joomla_cve_2026_90907.py https://ejemplo.com

# Verbose CHECK (full request/response log on stderr)
python3 joomla_cve_2026_90907.py https://ejemplo.com --no-color -v

# EXPLOIT mode (-U) — creates a real account in #__users (authorized targets only!)
python3 joomla_cve_2026_90907.py https://ejemplo.com \
    -U audit.user -E [email protected] -N "CVE Audit"

# Through a proxy (e.g. Burp Suite) with a custom timeout
python3 joomla_cve_2026_90907.py https://ejemplo.com -U audit.user \
    --proxy http://127.0.0.1:8080 --timeout 30

# Exploit without the differential login verification
python3 joomla_cve_2026_90907.py https://ejemplo.com -U audit.user \
    --no-verify-login

Flags

FlagBeschreibung
TARGETBasis-URL (normalisiert; kein abschließender Schrägstrich)
-U/--usernameAktiviert den EXPLOIT-Modus. Ohne -U → nicht-destruktiver CHECK
-P/--passwordStandard: generiert mit secrets, 16 Zeichen alphanumerisch+Symbole, wird immer ausgegeben
-E/--emailStandard: <username>@example.invalid
-N/--nameStandard: CVE Audit
-o/--outputEvidenzverzeichnis (Standard evidence_cve90907_<ts> unter cwd)
--proxy URLProxy für Anfragen (Burp: http://127.0.0.1:8080)
--timeoutStandard 20 s
--uaUser-Agent (Standard cve-2026-90907-audit/1.0)
--no-verify-loginÜberspringt das Login-Differential (Exploit-Modus)
--verify-sslTLS verifizieren (Standard: nicht verifizieren)
--no-colorKeine ANSI-Farben
-v/--verboseVollständiges Req/Resp-Log auf stderr

Exit-Codes (CI-freundlich)

CodeBedeutung
0Ok / nicht anfällig / unbekannt
1Anfällig (LIKELY im Check, CONFIRMED im Exploit)
2Betriebsfehler (Netzwerk, Abhängigkeit usw.)

Verdicts

  • VULNERABLE (LIKELY) — Check: Token OK + W1 anonym verarbeitet (303 mit profile in Location, keine Weiterleitung zum Login) + Validierungsfehler- Flash (z. B. Meldung, dass die Datenschutzrichtlinie erforderlich ist). Endgültige Bestätigung = Exploit-Modus.
  • NOT VULNERABLE (behavioral) — W1 leitet zum Login weiter oder antwortet mit 401/403/404: anonyme Verarbeitung blockiert.
  • UNKNOWN — fehlende Signale (kein Token, unlesbare Version usw.). Lücken werden auf der Konsole und in summary.json aufgeführt.
  • VULNERABLE (CONFIRMED) — Exploit: Location mit user_id > 0 nach W2.

Evidenz-Artefakte

Jeder Lauf schreibt ein zeitgestempeltes -o-Verzeichnis mit 00_token.txt, 01_version.txt, 02_w1_seed.txt, 03_w2_exploit.txt, 04_login_correct.txt, 05_login_wrong.txt und summary.json. Jede Datei zeichnet die vollständige REQUEST (Methode/URL/Schlüssel-Header/Body), RESPONSE (Status, Location, Server, extrahiertes Flash, erste 500 Bytes des Bodys) und ISO- Zeitstempel auf — bereit zur Anlage an einen Pentest-Bericht.

Betriebssicherheit

  • Der CHECK-Modus sendet niemals privacyconsent und verwendet einen nicht-konformen Benutzernamen (probe()): Das Speichern schlägt an den Formularregeln fehl und nichts wird persistiert.
  • Abbruchschutz: Falls W1 jemals user_id > 0 zurückgegeben hat (was nicht der Fall sein sollte), bricht der Exploit- Modus vor W2 ab.
  • Nach einem erfolgreichen Exploit gibt das Tool eine Bereinigungswarnung aus: Löschen Sie das erstellte Konto über Joomla Admin → Users (dies entfernt auch die user_usergroup_map-Zeile).

Behebung

  • Aktualisieren Sie Produktionsinstanzen sofort auf Joomla! 5.4.9 oder 6.1.4.
  • Auf Websites, bei denen die Registrierung deaktiviert war, sortieren Sie die Backend-Benutzer nach Registrierungsdatum und prüfen Sie die Standardgruppe auf nicht erkannte Konten, die vor dem Patchen erstellt wurden.

Referenzen

Tool herunterladen