Gehen 'bald' alle Browser bzw. das Web kaputt? "<" & ">" sollen in innerHTML weg

[English]Kleiner Splitter aus der Welt der Webbrowser. Im Chromium-Bug-Tracker gibt es eine Diskussion zu den spitzen Klammern ("<" und ">"), die als Zeichen in HTML-Attributen bzw. in innerHTML-Elementen vorkommen können. Nun soll eine Escape-Behandlung eingeleitet werden, um mXSS-Angriffe zu verhindern. Das könnte aber die Chromium-Browser (und weitere Browser) "kaputt" machen.

Admin-Passwörter schützen mit Windows LAPS. eBook jetzt herunterladen » (Anzeige)

Was ist mXSS?

Das Kürzel mXSS steht für "mutation cross-site scripting". Dieser Cross-Site-Scripting-Vektor (XSS), wurde laut dieser Quelle, bereits im Jahr 2007 durch Hasegawa entdeckt. Der Forscher war in einer Browser-Implementierung auf eine falsche Verwendung des Backtick-Zeichens (` ) gestoßen.

Sah dies zunächst wie ein Implementierungsfehler aus, zeigte sich, dass man auf das erste Beispiel für eine neue Klasse von XSS-Vektoren, später als mutationsbasierte XSS-Vektoren (mXSS) bezeichnet, gestoßen war. Diese mXSS-Vektoren können in innerHTML und verwandten Eigenschaften auftreten.

Konkret geht es um Zeichen, die in HTML-Attributen und Tags vorkommen können. So könnten die spitzen Klammern ("<" und ">"), die eigentlich HTML-Tags in HTML auszeichnen auch als Zeichen in Werten von Attributen dieser Tags auftreten.

Dann müsste der Browser eine Escape-Sequenz einleiten, die dafür sorgt, dass die Zeichen als Werte und nicht als einleitende und abschließende spitze Klammer für HTML-Tags interpretiert werden. Oder HTML-Tags werden, wie in nachfolgender Anweisung, falsch geschachtelt:

<form id="outer"><div></form><form id="inner"><input>

Durch entsprechende Zeichen ("<" und ">") in einem Attribut eines HTML-Tags könnte ein Angreifer schädlichen Code in eine Webseite oder eine Web-App einbetten, der dann ausgewertet und ausgeführt wird. Auf GitHub gibt es ein mXSS Cheat Sheet mit Beispielen. mXSS betrifft alle drei großen Browserfamilien: IE, Firefox und Chrome.

Worum geht es bei der Chromium-Diskussion?

Die Behandlung von mXSS-Codes in innerHTML-Elementen ist aber bei den Chrome Browser-Implementierungen nicht gelöst. Statt eine Escape-Sequenz einzuleiten wird der Inhalt geparst und ausgeführt.

mXSS-Behandlung in Chromium

Ich bin die Tage über obigen Post von Lukasz Olejnik auf das Thema gestoßen, was im Chromium Issues-Tracker seit Februar 2025 unter  Escape "<" and ">" when escaping HTML attribute values to avoid mXSS diskutiert wird.

Es gibt einen Pull-Request Escape "<" and ">" when serializing attribute values #6362, um mXSS-Angriffe im Chromium-Browser zu eliminieren. Jemand gibt zu bedenken, dass die Kompatibilitätsauswirkungen für das Web für diese Änderung noch nicht bekannt ist.

Was bekannt sei, ist, dass die Änderung des aktuellen Verhaltens zurück auf das Jahr 2008 (oder wahrscheinlich 2011 für WebKit)  zurück geht, wo diese Implementierung ausgeliefert wurde. Wenn ein mXSS-Schutz in Browsern implementiert wurde, könnte das zu gravierenden Auswirkungen führen.

Dieser Beitrag wurde unter Edge, Google Chrome abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

12 Antworten zu Gehen 'bald' alle Browser bzw. das Web kaputt? "<" & ">" sollen in innerHTML weg

  1. Tomas Jakobs sagt:

    > alle drei großen Browserfamilien: IE, Firefox und Chrome.

    Oh Du scheinst Webkit aka Safari oder Gnome Web nicht am Schirm zu haben…
    Und IE? Bitte…

    Der derzeit meist genutzte Browser:
    https://www.stetic.com/de/market-share/browser/

  2. Anonym sagt:

    Das mit den "innerHTML-Elementen" dürfe einigen Browser Editoren, die über eine Textarea hinausgehen, eher weniger gefallen…

  3. FriedeFreudeEierkuchen sagt:

    Nach dem was ich bisher in den verlinkten Quellen gelesen (und verstanden) habe, hat Lukasz Olejnik nicht genau nachgelesen oder er hat es falsch formuliert. Es geht NICHT darum, dass alle spitzen Klammern aus dem HTML Standard entfernt werden sollen. Es geht nur um Werte mit spitzen Klammern in ATTRIBUTEN. Werden solche Klammern in HTML-Attributen oder innerHTML verwendet, also so etwas wie div class="", dann können die Browser damit nicht sicher genug umgehen.

    Da es nicht um spitze Klammern generell geht, ist derzeit noch unklar, ob die vorgeschlagene Änderung überhaupt negative Auswirkungen hat. Der aktuelle Vorschlag ist, das Web-Archiv als Datenbasis zu nehmen und damit Tests auf mögliche Probleme zu machen.
    Ich sehe hier nichts von "das Internet bricht bald zusammen".

    • Günter Born sagt:

      Möglicherweise hat Du nur die Aussagen im Post von Lukasz Olejnik berücksichtigt oder meinen Text falsch interpretiert. Im Blog-Beitrag hatte ich explizit drauf hingewiesen, dass es um spitze Klammern in Attributen und in innerHTML geht. Sprich: Es werden HTML-Tags in einem HTML-Tag fehlerhaft geschachtelt, oder die Codes für spitze Klammern stehen als Werte in einem HTML-Attribut.

      An dieser Stelle habe ich als Browser-Entwickler zwei Möglichkeiten:

      • Ich speise den HTML-String in einen Serialisierer ein, der dann für die Interpretation sorgt (gegenwärtiger Ansatz).
      • Oder ich leite einen Escape ein, der bewirkt, dass die Zeichen nicht an den Serialisierer gehen bzw. von diesem als Codes interpretiert werden.

      Letzteres ist als Schutz vor mXSS-Angriffen angedacht. Nun weisen Leute berechtigt darauf hin, dass die Folgen einer solchen Änderung gegenwärtig nicht abschätzbar seien. Und da gebe ich den Leuten Recht – es kann auf "keine bis minimale Auswirkungen" bis "zig Apps und Webseiten funktionieren nicht mehr" hinauslaufen.

  4. R.S. sagt:

    Falsch geschachtelte HTML-Tags sollten eigentlich nirgendwo vorkommen.
    Selbst so uralte HTML-Editoren wie Microsoft Frontpage melden das als Fehler.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Bitte beachtet die Regeln zum Kommentieren im Blog (Erstkommentare und Verlinktes landet in der Moderation, gebe ich alle paar Stunden frei, SEO-Posts/SPAM lösche ich rigoros. Kommentare abseits des Themas bitte unter Diskussion. Kommentare, die gegen die Regeln verstoßen, werden rigoros gelöscht.

Du findest den Blog gut, hast aber Werbung geblockt? Du kannst diesen Blog auch durch eine Spende unterstützen.