Mittel

ApostropheCMS: Umgehung der Farbfeld-Validierung ermöglicht Stored XSS über nach rgb()/hsl()-Präfix angehängtes HTML

  • Veröffentlicht: 21.10.2026
  • Aktualisiert: 21.10.2026 20:21

Zusammenfassung

Das Farbfeld akzeptiert jede Zeichenkette, die mit einer gültigen rgb()- / hsl()-Farbe beginnt, da TinyColor.isValid die Übereinstimmung nicht am Ende der Zeichenkette verankert. Ein authentifizierter Benutzer mit Bearbeitungsrechten kann beliebigen HTML-Code nach einem gültigen Farbpräfix speichern. Wenn der gespeicherte Wert gerendert wird, wird die Payload ausgeführt, was zu Stored Cross-Site-Scripting (XSS) führt.

Details

Die serverseitige Validierung des Farbfelds basiert auf TinyColor:

js
const { TinyColor } = require('@ctrl/tinycolor');
if (!new TinyColor(value).isValid) throw self.apos.error('invalid');

Die Matcher von TinyColor für rgb/hsl sind nicht am Ende der Zeichenkette verankert, während Hex-Matcher dies sind. Getestet mit @ctrl/tinycolor:

Input isValid
rgb(1,2,3)<img src=x onerror=alert(1)> true
rgb(1,2,3)</textarea><script>alert(1)</script> true
hsl(0,100%,50%);--x:1}</style><script>alert(1)</script> true
#ff0000<img src=x onerror=alert(1)> false

Der Wert wird unverändert in MongoDB gespeichert (nicht zu hex8 normalisiert).

Bezug zu GHSA-97v6-998m-fp4g

GHSA-97v6 behob die Injektion von CSS-Custom-Properties, die aus einem <style>-Kontext ausbrachen. Die eigentliche Ursache (eine Validierung, die nachfolgende Inhalte nach einer gültigen Farbe akzeptiert) besteht in <= 4.32.2 weiterhin, sodass entweder die Style-Tag-Senke über </style> ausnutzbar bleibt oder eine separate HTML-Senke ausnutzbar ist. Die Korrektur der Validierung (die Anforderung, dass die gesamte Zeichenkette eine Farbe sein muss, oder das ausschließliche Speichern der normalisierten Ausgabe von TinyColor) würde beides beheben.

Auswirkungen

Jeder Benutzer mit Bearbeitungsrechten kann persistenten JavaScript-Code hinterlegen, der im Browser von Besuchern und Administratoren ausgeführt wird, die die betroffene Seite aufrufen. Dies ermöglicht Session-Hijacking und Aktionen im Namen von Administratoren.

Vorgeschlagene Behebung

Werte ablehnen, es sei denn, die gesamte Zeichenkette ist eine gültige Farbe, z. B. Normalisierung beim Speichern:

js
const c = new TinyColor(value);
if (!c.isValid) throw self.apos.error('invalid');
value = c.toHex8String(); // store only normalized output

Was zu tun ist

Aktualisieren Sie ApostropheCMS auf Version 4.34.0 oder höher.

Betroffene Software

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

PlattformPaketAnfällige VersionenBehoben in
npm-Paket apostrophe < 4.34.0 4.34.0

Verweise

CVSS-Wert 5.4/10
CVSS-Vektor
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Schwäche (CWE)
CWE-79
Plattform
npm
Paket
apostrophe
Veröffentlicht
21.10.2026
Aktualisiert
21.10.2026 20:21

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

OSV / GitHub Advisory Database - GHSA-vmgj-9cwm-cf3h - CC BY 4.0

Schwachstellenhistorie: apostrophe

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 (33) im Archiv
Einträge insgesamt
33
Erste → letzte
09.2020 10.2026
Ohne Fix
4
In Angriffen ausgenutzt
0

Verteilung nach Schweregrad

  • Kritisch 2
  • Hoch 9
  • Mittel 18
  • Niedrig 4

Veröffentlichungen pro Jahr

  1. 2020: 2
  2. 2021: 2
  3. 2022: 0
  4. 2023: 0
  5. 2024: 0
  6. 2025: 0
  7. 2026: 29
Schweregrad:
  1. ApostropheCMS: Umgehung der Farbfeld-Validierung ermöglicht Stored XSS über nach rgb()/hsl()-Präfix angehängtes HTML dieser Eintrag
    Mittel · 5.4 CVE-2026-112951 < 4.34.0 4.34.0
  2. Hoch · 7.3 CVE-2026-45011 = 4.29.0 keine Korrektur
  3. Kritisch · 9.8 CVE-2021-25979 >= 2.63.0, < 3.4.0 3.4.0

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.