Wenn Sie eine E-Mail von mir erhalten haben, die Sie auf diese Seite verweist, liegt dies daran, dass Ihre Website anscheinend eine Version von Welcart e-Commerce (das kostenlose WordPress-E-Commerce-Plugin von Welcart / Collne, das sich in Ihren Dateien unter /wp-content/plugins/usc-e-shop/ befindet) ausführt, die in den betroffenen Bereich eines bekannten Sicherheitsproblems fällt. Diese Seite erklärt, worum es sich bei dem Problem handelt, wie sehr es für Ihre Website von Bedeutung ist, wie Sie Ihre Version ablesen, ohne getäuscht zu werden, und wie Sie ein Update durchführen.

Es handelt sich um CVE-2026-19914, eine unauthentifizierte gespeicherte Cross-Site-Scripting-Schwachstelle (Stored XSS). Sie betrifft jede Veröffentlichung bis einschließlich 2.12.1 und wurde in 2.12.2 behoben, das am 31. August 2026 veröffentlicht wurde. Wenn Sie 2.12.1 oder älter ausführen, aktualisieren Sie Welcart auf 2.12.2 oder höher. Das Problem ist mit CVSS 7.2 (High) bewertet, wie von Wordfence eingestuft. Mir ist kein öffentlicher Exploit-Code dafür bekannt.

Es gibt keine ältere Version, die sicher ist. Dies ist kein Fehler, der irgendwann im Verlauf der Plugin-Geschichte eingeführt und später behoben wurde. Die nicht maskierte Ausgabe, die hinter diesem Problem steht, war während der gesamten Geschichte des Plugins vorhanden - ich habe bestätigt, dass sie bis zurück zu Version 1.7.0 vorhanden ist - sodass „Meine Installation ist zu alt, um betroffen zu sein” hier kein Ausweg ist. Die einzigen Versionen, die nicht betroffen sind, sind 2.12.2 und neuer.

Bevor wir zu allem anderen kommen, ein Wort dazu, worum es sich bei diesem Problem handelt und wie es zustande kommt, denn ich möchte es lieber klar benennen, als den Hinweis größer klingen zu lassen, als er ist. Dies ist eine gespeicherte Cross-Site-Scripting-Schwachstelle, und das Skript, das sie ausführen kann, läuft im Browser eines Shop-Administrators, nicht im Browser eines Besuchers. Damit das geschieht, müssen zwei getrennte Dinge beide eintreten: Jemand, der als Gast eine Bestellung aufgibt, muss beim Bezahlvorgang einen präparierten Wert in ein benutzerdefiniertes Bestellfeld übermitteln, und dann muss ein Administrator diese Bestellung auf dem Bestellbearbeitungsbildschirm in Ihrem WordPress-Adminbereich öffnen. Der übermittelte Wert wird mit der Bestellung gespeichert und auf diesem Bildschirm ohne Maskierung ausgegeben, sodass er ausgeführt wird, wenn die Bestellung angesehen wird.

Ich kann Ihre Welcart-Version aus einer öffentlichen Datei ablesen, aber ich kann Ihre Bestellungen nicht sehen, kann nicht sehen, ob eine Bestellung einen präparierten Wert enthält, und kann nicht sehen, ob tatsächlich jemand dies auf Ihrer Website getan hat. Daher ist dieser Hinweis eine vorsorgliche Warnung auf Grundlage Ihrer Versionsnummer und kein bestätigter Befund über Ihre Website.

Es lohnt sich auch, genau zu sein, was dieses Problem ist und was nicht. Cross-Site-Scripting, das in der Sitzung eines Administrators ausgelöst wird, ist ein echtes, behebenswertes Problem: Ein Skript, das läuft, während ein Administrator angemeldet ist, kann mit den Rechten dieses Administrators handeln, solange die Seite geöffnet ist. Aber es ist für sich genommen keine vollständige Übernahme der Website. Es ist keine Remotecodeausführung auf Ihrem Server, und es ist keine Möglichkeit für einen nicht authentifizierten Fremden, sich einfach selbst ein Administratorkonto zu verschaffen. Es ist enger gefasst als die Fälle vollständiger Kompromittierung, über die ich an anderer Stelle schreibe, und es hängt sowohl davon ab, dass eine Bestellung übermittelt wird, als auch davon, dass ein Administrator sie öffnet, sodass ich das Ausmaß lieber ehrlich benennen möchte, als Ihnen einen beängstigenderen Eindruck zu hinterlassen, als die Fakten hergeben.

Dies ist eine Plugin-Schwachstelle, keine Schwachstelle im WordPress-Kern. Ein vollständig auf dem neuesten Stand befindliches WordPress schützt Sie nicht, wenn das Welcart-Plugin selbst eine betroffene Version ausführt.

Ist diese Nachricht echt?

Ja. Dies ist ein Hinweis im guten Glauben im Rahmen der verantwortungsvollen Offenlegung eines unabhängigen Sicherheitsforschers. Ich bitte Sie nicht um Geld, Passwörter oder Zugriff auf Ihre Website, und ich habe nicht versucht, in sie einzubrechen, eine Bestellung darauf aufzugeben oder irgendetwas auszunutzen.

Ich habe lediglich Seiten und Dateien betrachtet, die Ihre Website jedem Besucher bereitstellt (auf die gleiche Weise, wie Ihre Startseite öffentlich ist), und die Versionsnummer notiert, die das Plugin veröffentlicht. Ich habe ausdrücklich keine Bestellung aufgegeben, nichts über Ihren Bezahlvorgang übermittelt, mich nicht angemeldet und nichts an die betroffene Funktion gesendet. Nichts an dieser Überprüfung berührt Ihre Daten, Ihren Admin-Bereich, Ihre Bestellungen oder einen privaten Teil Ihrer Website (weitere Details unter Was ich getan und nicht getan habe unten).

Wenn Sie überprüfen möchten, wer ich bin, finden Sie die Kontaktdaten am Ende dieser Seite und auf der Seite Über.

Warum das wichtig ist

Welcart verwandelt eine WordPress-Website in einen Onlineshop und ist das in Japan meistgenutzte E-Commerce-Plugin für WordPress. Ein Teil dessen, was es tut, besteht darin, beim Bezahlvorgang die Angaben eines Kunden entgegenzunehmen, einschließlich aller benutzerdefinierten Bestellfelder, die ein Shop hinzugefügt hat, um zusätzliche Informationen zu erfassen, und diese zusammen mit der Bestellung zu speichern, damit das Personal sie später einsehen kann.

In betroffenen Versionen wird ein Wert, der beim Gast-Bezahlvorgang in ein benutzerdefiniertes Bestellfeld übermittelt wird, mit der Bestellung gespeichert und dann auf dem Bestellbearbeitungsbildschirm in Ihrem WordPress-Adminbereich ohne Maskierung angezeigt. Maskierung ist das, was Text, der wie Markup aussieht, für die Anzeige wieder in reinen Text verwandelt. Ohne sie wird ein Wert, der so präpariert ist, dass er aktive Inhalte enthält, nicht als Text angezeigt, sondern vom Browser desjenigen Administrators ausgeführt, der diese Bestellung öffnet. Da ein Gast eine Bestellung aufgeben kann, ohne sich anzumelden, benötigt die Person, die diesen Wert übermittelt, überhaupt kein Konto auf Ihrer Website.

Die Voraussetzung, um sie klar zu benennen, weil es der Teil ist, der in beide Richtungen am ehesten falsch verstanden wird: Dies erfordert sowohl, dass eine präparierte Bestellung übermittelt wurde, als auch, dass ein Administrator sie öffnet. Es wird nicht in Ihrem Schaufenster ausgelöst und richtet bei gewöhnlichen Besuchern nichts an. Was es erreicht, ist die Sitzung eines Shop-Administrators, der Bestellungen im wp-admin-Bereich ansieht.

Ich beschreibe dies auf einem Niveau, das ein Website-Betreiber zum Handeln benötigt, und nicht weiter. Ich veröffentliche nicht die Details, die es jemandem ermöglichen würden, dies nachzustellen, und ich bitte Sie, dies nicht gegen Ihre eigene Website oder die einer anderen Person zu versuchen. Das Ablesen Ihrer Versionsnummer, wie unten beschrieben, sagt Ihnen alles, was Sie wissen müssen, um zu entscheiden, was zu tun ist.

Wenn meine E-Mail dieses Problem zitiert, bedeutet dies, dass die Version, die Ihre Website meldet, 2.12.1 oder älter ist. Ich habe nicht getestet, ob Ihre spezifische Website ausnutzbar ist, und ich kann Ihre Bestellungen nicht sehen. Alles, was ich beobachtet habe, ist die Version.

Bin ich betroffen?

Es kommt auf eine Frage an: Welche Version von Welcart führen Sie aus?

Aus dem WordPress-Adminbereich (maßgeblich):

  1. Melden Sie sich in Ihrem WordPress-Dashboard an (normalerweise unter yourdomain.com/wp-admin).
  2. Gehen Sie zu Plugins und dann Installierte Plugins.
  3. Finden Sie Welcart e-Commerce, den Eintrag, dessen Ordner usc-e-shop ist, und notieren Sie die unter seinem Namen angezeigte Version.

Aus dem öffentlichen Manifest (kein Login erforderlich): Öffnen Sie

yourdomain.com/wp-content/plugins/usc-e-shop/readme.txt

in einem Browser und lesen Sie die Zeile Stable tag: nahe dem Anfang. Wenn diese Adresse „nicht gefunden” zurückgibt, probieren Sie README.txt in Großbuchstaben - manche Hosts sind Case-sensitiv, und einige Pakete liefern die Datei großgeschrieben aus.

Aus Ihrem Seitenquelltext (kein Login erforderlich): Sehen Sie sich den Quelltext Ihrer Startseite an und suchen Sie nach dem eigenen Stylesheet des Plugins genau unter diesem Pfad:

/wp-content/plugins/usc-e-shop/css/usces_default.css?ver=...

Die an diese Datei angehängte ?ver=-Nummer ist die eigene Version des Plugins und ist die öffentliche Quelle, die ich gelesen habe. Welcart lädt dieses Stylesheet auf seinen Shop-Seiten, sodass eine Shop- oder Warenkorbseite ein zuverlässiger Ort ist, um sie zu finden. Lesen Sie die Version nur von usces_default.css ab: Andere in Ihre Seite geschriebene Dateien tragen ihre eigenen, völlig unabhängigen ?ver=-Nummern, und das Lesen der ersten, die Sie finden, kann Ihnen die Version einer anderen Software liefern. Wenn Sie aus dem Seitenquelltext überhaupt keine lesbare Zahl erhalten können, ist das üblich und kein Zeichen für irgendetwas - Caching- und Optimierungsplugins entfernen routinemäßig den ?ver=-Wert von Asset-URLs - verwenden Sie in diesem Fall die readme.txt oder den Admin-Bildschirm.

Wenden Sie dann diese Regel an, und beachten Sie, dass Versionen numerisch und nicht alphabetisch verglichen werden, sodass 2.12.1 neuer ist als 2.9.1, obwohl „12” als Text kleiner aussieht als „9”:

  • 2.12.1 oder älter: betroffen. Aktualisieren Sie auf 2.12.2 oder höher. Es gibt keine Untergrenze, unterhalb derer eine ältere Veröffentlichung wieder sicher wird.
  • 2.12.2 oder neuer: in Bezug auf dieses Problem bereits behoben. Die neueste verfügbare Version zu installieren ist der beste Schritt.

Wie Sie aktualisieren

Das Plugin ist kostenlos, wird weiterhin veröffentlicht und aktiv gewartet, sodass die Korrektur einem normalen Update entspricht. Der sicherste Weg ist die Aktualisierung direkt über WordPress selbst, und zwar nach vorheriger Sicherung:

  1. Sichern Sie Ihre Website (Dateien und Datenbank), bevor Sie Änderungen vornehmen. Die meisten Hosting-Anbieter bieten Ein-Klick-Sicherungen an, oder Sie verwenden ein WordPress-Sicherungsplugin.
  2. Gehen Sie im WordPress-Adminbereich zu Dashboard und dann zu Aktualisierungen, oder zu Plugins und dann zu Installierte Plugins. Wenn ein Welcart-Update aufgelistet ist, installieren Sie es hier.
  3. Wenn Sie die Befehlszeile bevorzugen, erledigt WP-CLI dasselbe: wp plugin update usc-e-shop (der Befehl verwendet den Ordnernamen, nicht den Anzeigenamen).
  4. Wenn kein Update angezeigt wird, können Sie die neueste Version direkt von der Plugin-Seite im WordPress.org-Verzeichnis herunterladen, Welcart e-Commerce, und das Update über Plugins dann Plugin installieren dann Plugin hochladen durchführen.
  5. Bestätigen Sie nach dem Update die neue Versionsnummer (2.12.2 oder höher) mit den oben genannten Schritten und öffnen Sie eine aktuelle Bestellung in Ihrem Adminbereich, um sicherzustellen, dass die Bestellbildschirme weiterhin normal angezeigt werden.

Die Veröffentlichung 2.12.2 hat neben diesem Problem auch weitere Sicherheitsprobleme behoben, sodass sich das Update in jedem Fall lohnt. Während Sie dort sind, lohnt es sich zu bestätigen, dass WordPress-Kern und Ihre anderen Plugins auf dem neuesten Stand sind, da das gleiche Prinzip für alle gilt.

Nach dem Update

Das Update auf 2.12.2 oder höher schließt das Problem, und für die meisten Websites ist dies die gesamte Aufgabe. Diese Seite ist eine vorbeugende Mitteilung, kein Vorfallbericht: Ich habe keine Einsicht darin, ob auf Ihrer Website etwas passiert ist, und ich habe auch nicht danach gesucht.

Eine Kleinigkeit ist es wert, getan zu werden, solange das Update noch frisch ist:

  • Bestätigen Sie, dass sich die Version tatsächlich geändert hat, mit welcher der oben genannten Überprüfungen auch immer am einfachsten war, und öffnen Sie eine Bestellung in Ihrem Adminbereich, um sicherzustellen, dass die Bestellbildschirme noch normal angezeigt werden.

Sie werden bemerken, dass es auf dieser Seite keine Checkliste unter dem Motto „gehen Sie davon aus, dass Sie kompromittiert wurden” gibt, und das ist absichtlich und keine Auslassung. Was dieses Problem ermöglicht, ist ein Skript, das im Browser eines Administrators läuft, und nur dort, wo sowohl eine präparierte Bestellung übermittelt als auch von einem Administrator später geöffnet wurde. Es führt keinen Code auf Ihrem Server aus und erstellt für sich genommen kein Administratorkonto, sodass die Administrator-Überprüfung und die Passwort-Rotation, die ich nach einer Schwachstelle der Übernahme-Klasse empfehle, hier nicht angemessen wären. Aktualisieren, bestätigen und weitermachen. Wenn Sie einen konkreten Grund zu der Annahme haben, dass dies gegen Ihre Website eingesetzt wurde - wofür dieser Hinweis, der nur auf einer Versionsnummer beruht, Ihnen keinen Beleg liefert, dann ist es sinnvoll, Ihre Administrator-Anmeldungen mit üblicher Vorsicht zu behandeln, aber die Version allein verlangt dies nicht.

Was ich getan und nicht getan habe

Um bezüglich der Überprüfung hinter meiner E-Mail vollständig transparent zu sein: Ich habe nur Dateien gelesen, die Ihre Website bereits jedem Besucher bereitstellt, konkret Ihre Startseite und die darin geschriebene Adresse des Welcart-Stylesheets sowie die öffentliche readme.txt des Plugins innerhalb von wp-content/plugins/usc-e-shop/. Ich habe nicht auf Ihren WordPress-Adminbereich, Ihre Datenbank, Ihre Bestellungen oder einen privaten Teil der Website zugegriffen.

Insbesondere habe ich niemals eine Bestellung aufgegeben, etwas über Ihren Bezahlvorgang übermittelt, mich angemeldet oder etwas an die betroffene Funktion gesendet. Nichts wurde übermittelt, getestet oder ausgenutzt. Das ist hier von Bedeutung, denn das Übermitteln eines präparierten Werts beim Bezahlvorgang kommt der genauen Handlung, um die es bei diesem Problem geht, sehr nahe, sodass „Ich habe es nicht angerührt” der ganze Unterschied zwischen einer Offenlegung und einem Einbruch ist.

Ich veröffentliche auch absichtlich nicht die Details, die jemandem helfen würden, bei diesem Problem tätig zu werden. Die obige Beschreibung bleibt auf dem Niveau, das ein Website-Betreiber benötigt, und ich verlinke keinen Proof-of-Concept-Code.

Dies ist eine versionsbasierte Beobachtung: Ihre Website meldet eine Version von 2.12.1 oder älter. Es ist keine Aussage, dass Ihre Website zum Zeitpunkt meiner Prüfung ausnutzbar war. Da dieses Problem sowohl davon abhängt, dass eine präparierte Bestellung übermittelt wird, als auch davon, dass ein Administrator sie öffnet - Dinge, die ich nicht sehen kann, ist eine Website im betroffenen Bereich möglicherweise gar nicht exponiert gewesen, und eine Website in diesem Bereich kann separat durch andere Mittel wie eine Web Application Firewall oder eine zurückportierte Korrektur geschützt sein. Wenn Sie bereits aktualisiert oder dies anderweitig behoben haben, ist keine Maßnahme erforderlich, und ich entschuldige mich für die Störung.

Ich habe keinen Webmaster / ich komme nicht weiter

Wenn Sie nicht die Person sind, die die Website wartet, leiten Sie diese Seite bitte an diejenige Person weiter, die dies tut (Ihr Webentwickler, Agentur oder Hosting-Anbieter). Sie werden die oben genannten Schritte schnell erkennen.

Wenn Sie die Website selbst warten und feststecken, helfe ich Ihnen gerne kostenlos in die richtige Richtung. Kontaktieren Sie mich über die unten stehenden Kontaktdaten.

Kontakt

Evan Harris, Sicherheitsforscher

Ich kontaktiere Sie bezüglich solcher Probleme ausschließlich, um Betreibern bei der Sicherung ihrer Websites zu helfen. Wenn Sie nicht erneut kontaktiert werden möchten, teilen Sie mir dies einfach mit, und ich werde dies respektieren.

Quellen

Offizielle Meldungen und Nachverfolgung

Hersteller / Plugin