Laravel Reflected XSS via Route- und Request-Parameter in Debug-Mode Error Page

Der beliebte PHP Framework Laravel ist in den Versionen zwischen 11.9.0 und 11.35.1 von zwei kritischen Reflected Cross-Site Scripting (XSS)-Schwachstellen betroffen. Beide Schwachstellen treten im Debug-Modus (APP_DEBUG=true) auf, wenn ein HTTP-Fehler (5XX) generiert wird. Dabei werden entweder Route-Parameter oder Request-Parameter unzureichend encoded und direkt in die Fehlerseite eingebettet, was es Angreifern ermöglicht, schadhaften JavaScript-Code in den Browser des Benutzers einzuschleusen.

1. Laravel Reflected XSS via Route Parameter in Debug-Mode Error Page

  • Identifier: SBA-ADV-20241209-02
  • Typ: Cross-Site Scripting
  • Betroffene Versionen: 11.9.0 bis 11.35.1
  • Behoben in Version: 11.36.0
  • CVE-ID: CVE-2024-13919
  • CVSS Score: 8.0 (High)
  • Beschreibung:
    Im Debug-Modus wird bei Fehlern (HTTP-Fehler 5XX) eine Fehlerseite generiert, die Details über die Anfrage enthält. Hierbei werden Route-Parameter, die über die URL übermittelt werden, ohne ausreichende HTML-Encoding in das HTML eingebettet. Ein Beispiel zeigt, wie unsicher eingebettete Werte mittels der Blade-Syntax {!! … !!} direkt in die Seite integriert werden.
  • Proof of Concept:
    Ein vorbereiteter Link wie http://localhost:8000/poc-route/%3Cimg%20src=''%20onerror='alert(1)'%3E löst eine Division-by-Zero aus, was zu einem 500-Fehler führt. Die generierte Fehlerseite enthält das <img>-Tag ohne Encoding, wodurch der Browser das Tag interpretiert und das JavaScript ausführt.
  • Empfohlene GegenmaĂźnahmen:
    • Upgrade auf Version 11.36.0 oder höher
    • In Produktionsumgebungen den Debug-Modus deaktivieren (APP_DEBUG=false)

2. Laravel Reflected XSS via Request Parameter in Debug-Mode Error Page

  • Identifier: SBA-ADV-20241209-01
  • Typ: Cross-Site Scripting
  • Betroffene Versionen: 11.9.0 bis 11.35.1
  • Behoben in Version: 11.36.0
  • CVE-ID: CVE-2024-13918
  • CVSS Score: 8.0 (High)
  • Beschreibung:
    Auch hier wird im Debug-Modus eine Fehlerseite angezeigt, wenn ein HTTP-Fehler (5XX) auftritt. Im Unterschied zum ersten Fall werden jedoch Request-Parameter (sowohl aus der URL als auch aus dem Request-Body) ohne ausreichende Encodierung eingebettet. Der entsprechende Code-Snippet zeigt, wie Daten mittels {!! $exception->requestBody() ?: 'No body data' !!} in das HTML integriert werden, ohne die ĂĽblichen Sicherheitsvorkehrungen zu nutzen.
  • Proof of Concept:
    Ein Angreifer kann durch den Aufruf des Links http://localhost:8000/poc-url?payload=<script>alert(1)</script> einen Fehler provozieren. Die generierte Fehlerseite zeigt den unsicher eingebetteten Request-Parameter payload, der vom Browser als HTML interpretiert und somit das eingebettete JavaScript (alert(1)) ausfĂĽhrt.
  • Empfohlene GegenmaĂźnahmen:
    • Upgrade auf Version 11.36.0 oder höher
    • Sicherstellen, dass in Produktionsumgebungen der Debug-Modus deaktiviert ist (APP_DEBUG=false)

Related Posts

Junos OS – Lokaler Angreifer kann beliebigen Code ausführen (CVE-2025-21590)

Ein neuer Out-of-Cycle-Sicherheitsbulletin von Juniper Networks hat eine kritische Schwachstelle im Kernel von Junos OS aufgedeckt. Durch eine fehlerhafte Isolation kann ein lokaler Angreifer mit Shell-Zugang beliebigen Code injizieren, was die Integrität des betroffenen Geräts gefährdet. Die Schwachstelle, die ausschließlich über den Shell-Zugang und nicht über die Junos CLI ausgenutzt werden kann, betrifft sämtliche Versionen von Junos OS – ausgenommen Junos OS Evolved.

Read More

Privilege Escalation SicherheitslĂĽcke in Zoom (CVE-2025-0151)

Am 11. März 2025 wurde unter der Kennung CVE-2025-0151 eine kritische SicherheitslĂĽcke in den Zoom Workplace Apps veröffentlicht. Die Schwachstelle beruht auf einem “Use After Free”-Fehler, der es einem authentifizierten Benutzer ermöglicht, ĂĽber Netzwerkzugriff eine Privilegieneskalation durchzufĂĽhren.

Read More

Apache Tomcat – CVE-2025-24813 ermöglicht potenzielle RCE

Am 10. März 2025 wurde eine Sicherheitslücke (CVE-2025-24813) in Apache Tomcat bekannt, die durch die ursprüngliche Implementierung von Partial PUT entsteht. Dabei wird ein temporärer Dateiname auf Basis von Benutzerangaben erstellt, wobei Pfadtrenner durch einen Punkt ersetzt werden. Unter bestimmten Bedingungen – etwa wenn das Schreiben für das Default Servlet aktiviert ist (standardmäßig deaktiviert), Partial PUT unterstützt wird (standardmäßig aktiviert) und sensible Upload-Pfade in Unterverzeichnissen öffentlicher Bereiche liegen – kann ein Angreifer sicherheitsrelevante Dateien einsehen, manipulieren oder sogar Remote Code Execution (RCE) auslösen.

Read More