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
element-fragment-guest — Element Web v1.12.29 - Hoch - Remote - Session - Fragment-Gast-Anmeldeinformationen löschen eine echte Sitzung vor whoami | Kitploit
Tools/GitHubGitHub/abraxas/element-fragment-guest
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitAuthentifizierungLabs & Praxis
GitHubabraxas/element-fragment-guest

element-fragment-guest

Element Web v1.12.29 - Hoch - Remote - Session - Fragment-Gast-Anmeldeinformationen löschen eine echte Sitzung vor whoami

Repository anzeigen
7vor 3 TagenNoch 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

Abraxas Labs - element-fragment-guest

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  element-fragment-guest

element-fragment-guest

Element Web v1.12.29 - Element / New Vector

Klasse: Session-Zerstörung Reichweite: Remote

Lifecycle.loadSession bevorzugt guest_user_id und guest_access_token aus dem URL-Hash gegenüber restoreSessionFromStorage. Gäste sind standardmäßig aktiviert (enableGuest={!config.disable_guests}). app.element.io config.json setzt disable_guests nicht. onTokenLoginCompleted entfernt nur SSO- und OIDC-Parameter. Die Guest-Schlüssel werden nie entfernt. url_utils.ts kommentiert bereits, dass diese Fragment-Parameter ungenutzt erscheinen. Sie gewinnen trotzdem.

Jeder, der einen angemeldeten Benutzer dazu bringt, eine Hash-URL mit Guest-Fragment-Parametern zu öffnen, meldet ihn ab und löscht lokale Krypto-Daten. Ein Müll-Token genügt. whoami wird nie aufgerufen.

IDnoch keine CVE
CWECWE-384 / CWE-352 / CWE-613
CVSSHoch: 7.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H
ProduktElement Web
Betroffenv1.12.29 Tag v1.12.29 (2d90d6b7b601ecb9ccdf81239a43b4396b4b0c9e). Gäste aktiviert (Standard).
Authnicht authentifizierter Angreifer. Opfer muss eine URL öffnen (oder neu laden).
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1

Was ein Angreifer tun kann

Einen angemeldeten Benutzer dazu bringen, eine Hash-URL mit Guest-Fragment-Parametern zu öffnen. Der Client meldet ihn ab, löscht lokale Krypto-Daten und kann ihn auf einem Angreifer-Gast parken. Dies ist Logout und Krypto-Löschung. Es ist kein Stehlen-des-echten-Tokens. Es ist kein OS-RCE.

PrivilegMethode / SinkRecon / Integrität / VerfügbarkeitLab-bewiesen oder abgeleitet
Guest-Credentials aus dem Hash parsenurl_utils.ts guest: { keys: ["guest_user_id", "guest_access_token"], location: "fragment" }Integrität der Session-AuswahlLab-bewiesen. #/home?guest_user_id=...&guest_access_token=... wurde zu guest_params. Nur Query-String nicht.
Guest gegenüber einer gespeicherten Nicht-Guest-Session bevorzugenLifecycle.loadSession Guest-First-Zweig, Log Using guest access credentialsIntegritätLab-bewiesen. Geseedetes @victim:example.org wurde nicht wiederhergestellt.
localStorage, IndexedDB-Konto, sessionStorage, Krypto löschendoSetLoggedIn(..., clearStorageEnabled=true) dann clearStorage()Integrität / Verfügbarkeit der lokalen SessionLab-bewiesen. crypto_empty=yes, vorheriges Token weg.
Token-Validierung überspringenGuest-Pfad ruft nie /_matrix/client/v3/account/whoami aufIntegritätLab-bewiesen. whoami_called=no. Müll-Token not-a-real-token löschte trotzdem.
Angreifer-Guest-Credentials persistierenpersistCredentials nach der LöschungIntegritätLab-bewiesen. after_user=@x:example.org, after_token=not-a-real-token, mx_is_guest=true.
Auf einen echten Gast auf dem Standard-HS fixierenGleiches Persist, wenn das Guest-Token gültig istIntegritätAbgeleitet. Lab verwendete ein Müll-Token, also kein Live-HS-Login.
Dies bei Reload weiter tunGuest-Schlüssel bleiben im Hash; onTokenLoginCompleted löscht sie nichtIntegritätAbgeleitet aus Pin app.tsx. Lab öffnete die URL einmal.

Ausgeschlossen bei diesem Leftover: das echte Access-Token stehlen (es wird gelöscht, nicht exfiltriert). OS-RCE / LPE (Desktop nodeIntegration: false, Sandbox). Live Element SPA (how=gadget). Query-String ?guest_user_id= (nur Fragment). disable_guests: true behält die Nicht-Guest-Session. Ein gepatchtes loadSession, das Guest ignoriert, wenn eine Nicht-Guest-Session existiert, behält sie ebenfalls.

Gleiche Pin-Leftovers: vector: Windows-Laufwerksbuchstabe, Univention ICS javascript: href.

Wie ich es gefunden habe

Ich habe Element Web v1.12.29 nach dem GitHub-Release vom 22. Sep 2026 gepinnt. SSO loginToken ist nur Query und wird nach Gebrauch entfernt. Guest-Schlüssel sitzen weiterhin im Fragment und gewinnen gegenüber Restore. Der Kommentar in url_utils.ts ist der Hinweis: Sie zweifelten bereits, ob diese Schlüssel spezifiziert waren.

Bereits festgehaltene Irrwege: Query-String ?guest_user_id= als Vektor behandeln (Schlüssel leben im Hash); dies Token-Diebstahl nennen (das echte Token wird gelöscht, nicht gesendet); disable_guests in app.element.io config erwarten (es ist nicht gesetzt). Eine Reverse Shell. Theater.

Lab

Gadget der Pin-Funktionen. Kein Live-Element-Web-Container. how=gadget.

python3 element-fragment-guest-Abraxas-Labs.py

oder

cd lab
./run.sh

Ziel nur http://127.0.0.1:19600. Compose-Projekt element-fragment-guest. Stack wird nach dem Lauf abgebaut.

SUCCESS element-fragment-guest how=gadget guest-wipe=yes prior-kept=no garbage-token=yes disable-guests-keeps=yes ELEMENT-FRAGMENT-GUEST-WITNESS

Der Fix

Guest-Fragment-Parameter ignorieren, wenn bereits eine Nicht-Guest-Session existiert. Das Guest-Token mit /_matrix/client/v3/account/whoami validieren, bevor clearStorage. guest_user_id und guest_access_token genauso entfernen, wie SSO-Tokens entfernt werden. Standard disable_guests: true für gehostetes app.element.io.

Referenzen

  • github.com/element-hq/element-web Tag v1.12.29
  • Lifecycle.ts (loadSession Guest-First)
  • url_utils.ts
  • app.tsx (enableGuest={!config.disable_guests})
  • Gleicher Pin: element-vector-drive-letter · element-ics-javascript
  • CWE-384

Lizenz

GNU Affero GPL v3.0. Siehe LICENSE. Nur Loopback-Lab. Keine Gewährleistung.

Tool herunterladen