Mittel

@angular/common: XSRF-Token-Offenlegung durch URL-Parsing-Diskrepanz im Angular HTTP-Client (Unvollständiger Fix für CVE-2025-66035)

  • Veröffentlicht: 20.10.2026
  • Aktualisiert: 20.10.2026 23:22

Ein unvollständiger Fix für GHSA-58c5-g7wp-6w37 (CVE-2025-66035) im HTTP-Client von @angular/common (HttpClient) ermöglicht es, dass Cross-Site-Request-Forgery-Tokens (XSRF) an vom Angreifer kontrollierte Cross-Origin-Domains übertragen werden, wenn Anfragen URLs verwenden, die Parsing-Diskrepanzen zwischen regulären Ausdrücken und dem WHATWG-URL-Parser des Browsers ausnutzen.

Technische Beschreibung

Zur Behebung von CVE-2025-66035 führte xsrfInterceptorFn einen regulären Ausdruck (const ABSOLUTE_URL_REGEX = /^(?:https?:)?\/\//i) ein, um absolute und protokollrelative URLs zu erkennen und zu überspringen, bevor der X-XSRF-TOKEN-Header angehängt wird.

Browser lösen an fetch() und XMLHttpRequest.open() übergebene Request-URLs jedoch mithilfe des WHATWG-URL-Parsers auf. Für die Schemata http: und https: führt der WHATWG-URL-Standard vor der Auflösung von Authority/Origin mehrere Normalisierungen durch:

  • Backslashes (\) werden wie Schrägstriche behandelt (/) — z. B. /\evil.example/x, \\evil.example/x, \/evil.example/x, https:\\evil.example/x, https:/\evil.example/x.
  • Führende und nachfolgende C0-Steuerzeichen und Leerzeichen (<= 0x20) werden entfernt — z. B. ' //evil.example/x', '\0//evil.example/x', '\x1f//evil.example/x'.
  • ASCII-Tabulator- (\t), Zeilenumbruch- (\n) und Wagenrücklaufzeichen (\r) werden überall in der Eingabe entfernt — z. B. '/\t/evil.example/x', '/\n/evil.example/x', 'htt\tps://evil.example/x'.

Da diese URLs nicht auf /^(?:https?:)?\/\//i matchen, behandelt xsrfInterceptorFn sie als relative Same-Origin-URLs und fügt den X-XSRF-TOKEN-Header an, während der Browser die Anfrage an den Cross-Origin-Host (evil.example) auflöst und versendet.

Hinweis: In Angular 21.0.3+ und 22.x wurde der reguläre Ausdruck in #65683 durch einen WHATWG-new URL(req.url, locationOrigin)-Origin-Vergleich ersetzt; diese waren bereits nicht betroffen. Der LTS-Zweig 20.3.x behielt den regulären Ausdruck jedoch bis 20.3.34 bei.

Auswirkungen

Das Abfließen des Tokens umgeht den integrierten XSRF-Schutz von Angular auf betroffenen Versionen, wodurch ein Angreifer den gültigen X-XSRF-TOKEN-Header des Nutzers abfangen kann, sofern sein Server die Anfrage und den benutzerdefinierten Header über CORS zulässt. Sobald das Token erlangt wurde, kann der Angreifer Cross-Site Request Forgery (CSRF)-Angriffe gegen die Sitzung des Opfers durchführen.

Angriffsvoraussetzungen

  1. In der Angular-Anwendung des Opfers muss der XSRF-Schutz aktiviert sein (standardmäßig in HttpClient aktiviert).
  2. Der Angreifer muss in der Lage sein, die Anwendung dazu zu bringen, eine zustandsverändernde HTTP-Anfrage (z. B. POST, PUT, DELETE, PATCH) an eine von ihm kontrollierte URL (wie /\attacker.example/api oder //attacker.example/api) zu senden.

Patches

Das Problem wird behoben, indem der Origin der Anfrage-URL mit dem Standardkonstruktor URL (new URL(req.url, locationOrigin)) geparst und mit dem aktuellen Origin der Anwendung verglichen wird.

  • 21.0.3 (und alle 22.x-Releases)
  • 20.3.34

Workarounds

Falls ein sofortiges Upgrade auf eine gepatchte Version nicht möglich ist:

  • Validieren und normalisieren Sie ausgehende Anfrage-URLs mit new URL(url, window.location.origin) und verifizieren Sie parsedUrl.origin === window.location.origin, bevor dynamische URLs an verändernde HttpClient-Anfragen übergeben werden.
  • Vermeiden Sie die Übergabe von nicht vertrauenswürdigen oder benutzergesteuerten URLs an verändernde HttpClient-Methoden.

Was zu tun ist

Aktualisieren Sie auf eine der behobenen Versionen:

  • 21.0.3 (und alle nachfolgenden 22.x-Releases)
  • 20.3.34

Die Schwachstelle wird behoben, indem der Origin der Anfrage-URL mittels URL (new URL(req.url, locationOrigin)) geparst und mit dem Origin der Anwendung abgeglichen wird.

Wenn ein direktes Upgrade nicht umsetzbar ist:

  • Validieren und normalisieren Sie ausgehende URLs über new URL(url, window.location.origin) und stellen Sie sicher, dass parsedUrl.origin === window.location.origin erfüllt ist, bevor dynamische URLs an zustandsverändernde HttpClient-Anfragen übergeben werden.
  • Übergeben Sie keine nicht vertrauenswürdigen URLs an verändernde Methoden von HttpClient.

Betroffene Software

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

PlattformPaketAnfällige VersionenBehoben in
npm-Paket @angular/common >= 21.0.0, < 21.0.3, >= 20.0.0, < 20.3.34, <= 19.2.25 21.0.3, 20.3.34

Verweise

CVSS-Wert -
CVSS-Vektor
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Schwäche (CWE)
CWE-201, CWE-359
Plattform
npm
Paket
@angular/common
Veröffentlicht
20.10.2026
Aktualisiert
20.10.2026 23:22

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

OSV / GitHub Advisory Database - GHSA-jfgx-762w-99vr - CC BY 4.0

Schwachstellenhistorie: @angular/common

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.

Einträge insgesamt
8
Erste → letzte
11.2025 10.2026
Ohne Fix
0
In Angriffen ausgenutzt
0

Verteilung nach Schweregrad

  • Hoch 6
  • Mittel 2

Veröffentlichungen pro Jahr

  1. 2025: 1
  2. 2026: 7
  1. @angular/common: XSRF-Token-Offenlegung durch URL-Parsing-Diskrepanz im Angular HTTP-Client (Unvollständiger Fix für CVE-2025-66035) dieser Eintrag
    Mittel CVE-2026-111753 >= 21.0.0, < 21.0.3, >= 20.0.0, < 20.3.34, <= 19.2.25 21.0.3, 20.3.34
  2. Mittel · 4.0 CVE-2026-88059 >= 22.0.0, < 22.1.1, >= 21.0.0, < 21.2.20, >= 20.0.0, < 20.3.28, <= 19.2.25 22.1.1, 21.2.20, 20.3.28
  3. Hoch CVE-2026-68945 >= 22.0.0-next.0, < 22.0.2, >= 21.0.0-next.0, < 21.2.19, >= 20.0.0-next.0, < 20.3.27, <= 19.2.25 22.0.2, 21.2.19, 20.3.27
  4. Hoch · 7.5 CVE-2026-54268 >= 22.0.0-next.0, < 22.0.1, >= 21.0.0-next.0, < 21.2.17, >= 20.0.0-next.0, < 20.3.25, <= 19.2.25 22.0.1, 21.2.17, 20.3.25
  5. Hoch · 6.1 CVE-2026-54266 >= 22.0.0-next.0, < 22.0.1, >= 21.0.0-next.0, < 21.2.17, >= 20.0.0-next.0, < 20.3.25, <= 19.2.25 22.0.1, 21.2.17, 20.3.25
  6. Hoch · 6.1 CVE-2026-50171 >= 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
  7. Hoch · 7.5 CVE-2026-50170 >= 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
  8. Hoch CVE-2025-66035 >= 21.0.0-next.0, < 21.0.1, >= 20.0.0-next.0, < 20.3.14, < 19.2.16 21.0.1, 20.3.14, 19.2.16

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.