Mittel

@angular/platform-server: Open Redirect über protokollrelative URLs im Server-Side Rendering (SSR)

  • Veröffentlicht: 20.10.2026
  • Aktualisiert: 20.10.2026 18:18

In @angular/platform-server wurde eine Open-Redirect-Schwachstelle festgestellt, wenn Server-Side Rendering (SSR) aktiviert ist.

Wenn Angular-SSR eine eingehende Anfrage rendert, werden URL-Auflösung und Plattform-Navigation von ServerPlatformLocation mittels resolveUrl (oder parseUrl in v20) verwaltet. Zwar wies resolveUrl protokollrelative URLs ab, deren Roh-String direkt mit // begann, diese Prüfung fand jedoch vor der WHATWG-URL-Normalisierung statt.

Wenn eine Anfrage-URL ein auflösendes Dot-Segment gefolgt von mehreren Schrägstrichen enthält (wie /.//evil.test oder serialisiert aus Router-Routenformen wie /.;/(//evil.test)), umging die Eingabe die anfängliche Prüfung auf urlStr.startsWith('//'). Das anschließende WHATWG-URL-Parsing löste die Dot-Segmente auf und führte zu einem pathname, der mit // (//evil.test) begann.

Folglich speicherte ServerPlatformLocation den Wert pathname = '//evil.test'. Wenn @angular/ssr eine Diskrepanz zwischen der gerenderten URL und dem finalen Location-Zustand des Routers erkannte, wurde der unnormalisierte Pfadname im HTTP-Header Location ausgegeben, was zu einer HTTP-302-Weiterleitung mit Location: //evil.test führte, die Browser als protokollrelative Navigation außerhalb der Origin auflösen.

Auswirkungen

Eine erfolgreiche Ausnutzung ermöglicht es einem nicht authentifizierten Remote-Angreifer, URLs zu konstruieren, die Angular-SSR dazu verleiten, Benutzer auf eine beliebige externe Domäne umzuleiten.

  • Umgeht Guards auf Anwendungsebene: Typische Validierungsroutinen auf Anwendungsebene (wie die Überprüfung von !returnUrl.startsWith('//') vor dem Aufruf von router.navigateByUrl) stufen /.//evil.test oder /.;/(//evil.test) als sicheren relativen Pfad ein, wodurch Angreifer Weiterleitungs-Allowlists umgehen können.
  • Clientseitige SPAs nicht betroffen: Reine clientseitige Angular-Anwendungen (Single Page Applications ohne SSR) sind nicht verwundbar, da ServerPlatformLocation ausschließlich in serverseitigen Ausführungsumgebungen verwendet wird.

Voraussetzungen für Angriffe & verwundbare Konfigurationen

Eine Anwendung ist betroffen, wenn die folgenden Bedingungen erfüllt sind:

  • SSR aktiviert: Die Anwendung läuft in einer Server-Side-Rendering-Umgebung unter Verwendung von @angular/platform-server und @angular/ssr.
  • Parameter-Routenformen: Der Router enthält Parameter-Routen mit Wildcard- oder untergeordneten Segmenten (z. B. /:tenant, das auf . passt und sekundäre Outlet-Gruppen (//evil.test) zu /.//evil.test serialisiert), oder übergibt vom Benutzer bereitgestellte Navigationsziele (z. B. returnUrl).
  • Weiterleitung durch Reverse-Proxies: Upstream-Reverse-Proxies (Nginx, Cloudflare, ALB) leiten Semikolons (;) oder Dot-Segmente weiter, ohne diese zu entfernen oder zu normalisieren.

Beispiel-Exploit-Payload

Ein Angreifer sendet eine Anfrage an eine Route mit Parametern und untergeordneten Segmenten:

http
GET /.;/(//evil.test) HTTP/1.1
Host: example.com

Antwort:

http
HTTP/1.1 302 Found
Location: //evil.test

Der Client-Browser löst //evil.test protokollrelativ auf und leitet den Benutzer von example.com nach evil.test weiter.

Patches

Das Problem wird behoben, indem resolveUrl (und parseUrl in v20) in @angular/platform-server aktualisiert werden, um zu überprüfen, dass der normalisierte URL-Pfadname nicht mit // beginnt, wenn allowProtocolRelative den Wert false hat.

  • 22.2.1
  • 21.2.25
  • 20.3.33

Workarounds & Mitigierungsmaßnahmen

Wenn ein sofortiges Upgrade auf eine gepatchte Version nicht möglich ist, können die folgenden Maßnahmen am Edge-Reverse-Proxy oder an der WAF implementiert werden:

  1. Pfade mit Dot-Segmenten gefolgt von Schrägstrichen abweisen: Konfigurieren Sie Ihren Reverse-Proxy (z. B. Nginx, Cloudflare, AWS WAF) so, dass Anfragen blockiert werden, die /.//, /..// oder /.;/ enthalten:
    nginx
    # Nginx example: reject suspicious path normalization sequences
    if ($request_uri ~* "(\n/\.\/|\/\.\;)") {
        return 400;
    }
  2. Weiterleitungs-Header bereinigen: Stellen Sie sicher, dass Edge-Proxies oder API-Gateways protokollrelative (//) Location-Antwort-Header, die vom SSR-Upstream stammen, umschreiben oder ablehnen.

Was zu tun ist

Aktualisieren Sie @angular/platform-server auf Version 22.2.1, 21.2.25 oder 20.3.33.

Falls ein Upgrade nicht unmittelbar möglich ist, können am Reverse-Proxy oder der WAF folgende Workarounds eingerichtet werden:

  • Blockieren von Anfragen, die Dot-Segmente gefolgt von Schrägstrichen enthalten (/.//, /..//, /.;/).
  • Bereinigen oder Umschreiben von protokollrelativen Location-Headern, die vom SSR-Upstream zurückgegeben werden.

Betroffene Software

Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.

PlattformPaketAnfällige VersionenBehoben in
npm-Paket @angular/platform-server >= 22.0.0, < 22.2.1, >= 21.0.0, < 21.2.25, >= 20.0.0, < 20.3.33, <= 19.2.25 22.2.1, 21.2.25, 20.3.33

Verweise

CVSS-Wert -
CVSS-Vektor
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Schwäche (CWE)
CWE-601
Plattform
npm
Paket
@angular/platform-server
Veröffentlicht
20.10.2026
Aktualisiert
20.10.2026 18:18

Quellen und Lizenzen · Von DockRay bearbeitet oder übersetzt; Rechte und Lizenzen der Quellen bleiben erhalten.

OSV / GitHub Advisory Database - GHSA-w739-gvwx-grc3 - CC BY 4.0

Schwachstellenhistorie: @angular/platform-server

Alle veröffentlichten Schwachstellen dieses Pakets (npm-Paket), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.

Alle (12) im Archiv
Einträge insgesamt
12
Erste → letzte
09.2025 10.2026
Ohne Fix
0
In Angriffen ausgenutzt
0

Verteilung nach Schweregrad

  • Hoch 11
  • Mittel 1

Veröffentlichungen pro Jahr

  1. 2025: 1
  2. 2026: 11
Schweregrad:
  1. @angular/platform-server: Open Redirect über protokollrelative URLs im Server-Side Rendering (SSR) dieser Eintrag
    Mittel CVE-2026-111754 >= 22.0.0, < 22.2.1, >= 21.0.0, < 21.2.25, >= 20.0.0, < 20.3.33, <= 19.2.25 22.2.1, 21.2.25, 20.3.33
  2. Hoch CVE-2026-101895 >= 22.0.0, < 22.1.6, >= 21.0.0, < 21.2.23, >= 20.0.0, < 20.3.31, <= 19.2.25 22.1.6, 21.2.23, 20.3.31
  3. Hoch CVE-2026-88058 >= 22.0.0, < 22.1.4, >= 21.0.0, < 21.2.22, >= 20.0.0, < 20.3.30, <= 19.2.25 22.1.4, 21.2.22, 20.3.30
  4. Hoch CVE-2026-88060 >= 22.0.0, < 22.1.4, >= 21.0.0, < 21.2.22, >= 20.0.0, < 20.3.30, <= 19.2.25 22.1.4, 21.2.22, 20.3.30
  5. Hoch CVE-2026-88056 >= 22.0.0, < 22.1.4, >= 21.0.0, < 21.2.22, >= 20.0.0, < 20.3.30, <= 19.2.25 22.1.4, 21.2.22, 20.3.30
  6. Hoch CVE-2026-69149 >= 22.0.0-next.0, < 22.0.7, >= 21.0.0-next.0, < 21.2.19, >= 20.0.0-next.0, < 20.3.27, <= 19.2.25 22.0.7, 21.2.19, 20.3.27
  7. Hoch CVE-2026-50556 >= 22.0.0-next.0, < 22.0.0-rc.2, >= 21.0.0-next.0, < 21.2.16, >= 20.0.0-next.0, < 20.3.24, >= 19.0.0-next.0, < 19.2.25, <= 18.2.14 22.0.0-rc.2, 21.2.16, 20.3.24, 19.2.25
  8. Hoch · 6.1 CVE-2026-50555 >= 22.0.0-next.0, < 22.0.0-rc.2, >= 21.0.0-next.0, < 21.2.16, >= 20.0.0-next.0, < 20.3.24, >= 19.0.0-next.0, < 19.2.25, <= 18.2.14 22.0.0-rc.2, 21.2.16, 20.3.24, 19.2.25
  9. Hoch · 8.2 CVE-2026-50168 >= 22.0.0-next.0, < 22.0.0-rc.2, >= 20.0.0-next.0, < 20.3.22, >= 19.0.0-next.0, < 19.2.23, <= 18.2.14, >= 21.0.0-next.0, < 21.2.15 22.0.0-rc.2, 20.3.22, 19.2.23, 21.2.15
  10. Hoch · 6.1 CVE-2026-46417 >= 22.0.0-next.0, < 22.0.0-next.12, >= 21.0.0-next.0, < 21.2.13, >= 20.0.0-next.0, < 20.3.21, >= 19.0.0-next.0, < 19.2.22, <= 18.2.14 22.0.0-next.12, 21.2.13, 20.3.21, 19.2.22
  11. Hoch CVE-2026-41423 >= 22.0.0-next.0, < 22.0.0-next.8, >= 21.0.0-next.0, < 21.2.9, >= 20.0.0-next.0, < 20.3.19, >= 19.0.0-next.0, < 19.2.21, <= 18.2.14 22.0.0-next.8, 21.2.9, 20.3.19, 19.2.21
  12. Hoch CVE-2025-59052 >= 16.0.0-next.0, < 18.2.14, >= 20.0.0-next.0, < 20.3.0, >= 19.0.0-next.0, < 19.2.15, >= 21.0.0-next.0, < 21.0.0-next.3 18.2.14, 20.3.0, 19.2.15, 21.0.0-next.3

Erkennen Sie Schwachstellen in Ihrer Anwendung

Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.

Anwendung verbinden
DockRay Newsletter

Anwendungssicherheit in Ihrem Postfach

Wichtige Schwachstellen, konkrete Empfehlungen und praktische Tipps für Ihre Anwendungen. Wählen Sie Ihre Technologien und verfolgen Sie, was für Ihr Projekt relevant ist.

  • Eine tägliche Zusammenfassung neuer Schwachstellen, auch kritischer.
  • Benachrichtigungen über wichtige Updates.
  • Praktische Tipps zur Sicherheit und Überwachung von Anwendungen.

Leer lassen, um Meldungen zu allen Technologien zu erhalten.

Kostenlos anmelden. In jeder E-Mail mit einem Klick abmelden.