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-ics-javascript — Element Web v1.12.29 – Hoch – Remote – XSS – Univention ICS navigation.json-Link wird zu einem javascript:-Menü-href | Kitploit
Tools/GitHubGitHub/abraxas/element-ics-javascript
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstests
GitHubabraxas/element-ics-javascript

element-ics-javascript

Element Web v1.12.29 – Hoch – Remote – XSS – Univention ICS navigation.json-Link wird zu einem javascript:-Menü-href

Repository anzeigen
vor 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-ics-javascript

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

element-ics-javascript

Element Web v1.12.29 - Element / New Vector

Klasse: XSS Reichweite: Remote

Das Univention-Banner-Modul ruft ICS navigation.json ab, akzeptiert das link jedes Eintrags als z.string() ohne Scheme-Prüfung, und Menu.tsx setzt diesen String in ein gestyltes <a href>. Die statische Menü-Konfiguration verwendet z.url() für link_url. Der ICS-Pfad nicht. Die URL-Vorschau auf demselben Pin lehnt javascript: bereits ab (previewFromBundle, GHSA-9r5h). Dies ist nicht das Standard-app.element.io. Es benötigt modules/banner mit menu.type univention, plus ein ICS, dem das Deployment vertraut.

Jeder, der diese navigation.json ändern kann, platziert javascript: oder data:. Ein angemeldeter Benutzer, der das Banner-Menü öffnet und auf den Eintrag klickt, führt Skript auf der Element-Origin aus.

IDnoch keine CVE
CWECWE-79 / CWE-20
CVSSMittel: 6.8 CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N
ProduktElement Web
Betroffenv1.12.29 Tag v1.12.29 (2d90d6b7b601ecb9ccdf81239a43b4396b4b0c9e). Gated: Univention-Banner + ICS.
AuthICS-Betreiber / ICS-Kompromittierung. Opfer ist ein angemeldeter Benutzer, der auf den Menüeintrag klickt.
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1

Was ein Angreifer tun kann

Das ICS kompromittieren oder betreiben, dem das Element-Deployment vertraut. Eine javascript:- (oder data:) URL in navigation.json platzieren. Warten, bis ein angemeldeter Benutzer das Banner-Menü öffnet und auf den Eintrag klickt. Das ist Matrix-Account-Übernahme: Access Token, Crypto Store, die Session. Es ist kein OS-RCE. Desktop hat weiterhin nodeIntegration deaktiviert und eine Sandbox.

PrivilegMethode / SinkRecon / Integrität / VerfügbarkeitLab-bewiesen oder abgeleitet
Ein Banner-Menü <a href="javascript:…"> auf der Element-Origin rendernICS navigation.json entries[].link -> navigationToConfig link_url -> Menu.tsx LinkButton href={link.link_url}Integrität des Menü-DOMLab-bewiesen. Mock-ICS-Link javascript:ELEMENT-ICS-JAVASCRIPT-WITNESS wurde zu diesem href. https-Portal-Link wurde weiterhin gerendert
Skript als Element-Origin nach einem Klick ausführenOpfer klickt auf den Menüeintrag (UI:R)IntegritätAbgeleitet aus dem href-Sink. Lab hat keinen Browser-Klick ausgelöst oder ein Live-Matrix-Token gestohlen
Das Matrix-Access-Token / den Crypto Store lesen (Account-Übernahme)In-Origin-Skript gegen localStorage / IndexedDB-SessionRecon / IntegritätAbgeleitet aus Element-Origin-XSS. Lab-Witness ist der href-String
Den Element-Tab auf eine Phishing-Seite top-navigierenSilentLogin.tsx unsandboxed iframe src={new URL("silent", icsUrl)}IntegritätLab-bewiesen, dass das iframe kein sandbox hat. Top-Navigation nicht ausgeführt
Dieselbe Platzierung via data:z.string() akzeptiert jedes SchemeIntegritätAbgeleitet. Lab hat nur javascript: platziert

Geschlossen auf diesem Pin: Standard-app.element.io (kein Univention-Banner). OS-RCE / LPE (Desktop nodeIntegration: false, Sandbox, contextIsolation). Timeline-HTML-XSS. URL-Vorschau javascript: (GHSA-9r5h previewFromBundle erfordert http:/https:). HTML-Export-XSS (GHSA-wqmv). Widget-Media-Token (GHSA-3jm3). Statisches Banner link_url: z.url() ist Betreiber-Konfiguration, nicht ICS; z.url() ist auch keine http/https-Allowlist.

Übrig geblieben auf demselben Pin: Fragment-Guest-Wipe, vector: Windows-Laufwerksbuchstabe.

Wie ich es gefunden habe

Ich habe Element Web v1.12.29 nach dem GitHub-Release vom 22. Sep. 2026 gepinnt. Die URL-Vorschau hat http:/https: bereits auf die harte Tour gelernt. Univention-ICS link ist weiterhin z.string(). Die statische Menü-Konfiguration verwendet z.url(). Der Fetch-Pfad durchläuft diese Prüfung nie.

Bereits festgehaltene Irrwege: Standard-app.element.io als Opfer zu behandeln (Univention ist gated); z.url() als Scheme-Allowlist zu behandeln (der URL-Konstruktor akzeptiert javascript:); Click-XSS zu OS-RCE aufzublähen. Eine Reverse Shell. Theater.

Lab

Gadget der Pin-Funktionen plus ein Mock-ICS navigation.json. Kein Live-Element-Web-Container. how=gadget. Das Anwenden der URL-Vorschau-http/https-Allowlist (previewFromBundle) entfernte den javascript-href und behielt den https-Portal-Link.

python3 element-ics-javascript-Abraxas-Labs.py

oder

cd lab
./run.sh

Ziel nur http://127.0.0.1:19620. Compose-Projekt element-ics-javascript. Der Stack wird nach dem Lauf abgebaut.

SUCCESS element-ics-javascript how=gadget href-scheme=javascript menu-a-javascript=yes allowlist-rejects=yes silent-no-sandbox=yes ELEMENT-ICS-JAVASCRIPT-WITNESS

Der Fix

http: und https: auf ICS link genauso allowlisten, wie es previewFromBundle tut. javascript:, data: und andere Schemes vor href= ablehnen. Das Silent-iframe sandboxen (sandbox="" oder zumindest kein allow-top-navigation). z.url() nicht als Scheme-Allowlist behandeln.

Referenzen

  • github.com/element-hq/element-web Tag v1.12.29
  • navigation.ts
  • Menu.tsx
  • SilentLogin.tsx
  • In der Nähe gepatcht (nicht dieser href): GHSA-9r5h previewFromBundle
  • Gleicher Pin: element-fragment-guest · element-vector-drive-letter
  • CWE-79

Lizenz

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

Tool herunterladen