SMS Alert Sicherheitshinweis
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 SMS Alert (das WordPress-Plugin, das im
Verzeichnis als „SMS Alert – SMS & OTP for WooCommerce, Order Notifications & Abandoned Cart
Recovery” geführt wird, von Cozy Vision Technologies, das sich in Ihren Dateien unter
/wp-content/plugins/sms-alert/ 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 Sie
herausfinden können, ob es überhaupt auf Ihre Website zutrifft, und wie Sie ein Update durchführen.
Es handelt sich durchgehend um ein WordPress-Plugin.
Bevor wir zu allem anderen kommen, ist dies die wichtigste Tatsache zu diesem Hinweis: Eine Version im betroffenen Bereich bedeutet für sich genommen nicht, dass Ihre Website gefährdet ist. Das unten beschriebene Problem tritt nur in Kraft, wenn zwei Bedingungen gleichzeitig zutreffen, und keine von beiden ist von außen sichtbar:
- Ihre Website hat die OTP-Verifizierung für Passwort-Zurücksetzungen in den Einstellungen von SMS Alert aktiviert, und
- für das angegriffene Konto ist eine Telefonnummer hinterlegt.
Wenn Sie SMS Alert nur für Bestellbenachrichtigungen, Nachrichten zu abgebrochenen Warenkörben oder OTP beim Checkout oder bei der Registrierung verwenden, und nicht für die Verifizierung von Passwort-Zurücksetzungen, dann betrifft dieses Problem Ihre Website sehr wahrscheinlich nicht, selbst bei einer betroffenen Version. Ich kann Ihre Plugin-Version aus einer öffentlich zugänglichen Datei ablesen, aber ich kann Ihre Einstellungen nicht einsehen. Daher ist dieser Hinweis eine vorsorgliche Warnung und kein bestätigter Befund bezüglich Ihrer Website.
Es handelt sich um CVE-2026-11387, eine nicht authentifizierte Kontoübernahme über den Passwort-Zurücksetzungs-Ablauf des Plugins (CWE-640, schwache Passwort-Wiederherstellung). Betroffen sind die Versionen 3.0.0 bis 3.9.5, und das Problem wurde in 3.9.6 behoben. Wenn Sie eine betroffene Version ausführen, aktualisieren Sie SMS Alert auf 3.9.6 oder höher. Die Veröffentlichungen 3.9.7 und 3.9.8 kamen später und beheben andere Dinge; beide sind in Bezug auf dieses Problem unbedenklich, und 3.9.8 ist die aktuelle Veröffentlichung. Es trägt einen CVSS-Wert von 9.8, und Proof-of-Concept-Code ist öffentlich verfügbar, weshalb ich schreibe, obwohl die obige Konfigurationsfrage die Sache durchaus zu Ihren Gunsten klären könnte.
Ein Wort zur Dringlichkeit, da es sich um einen bedingten Hinweis handelt. Wenn Sie SMS Alert nicht zur Verifizierung von Passwort-Zurücksetzungen verwenden, ist das Update eine normale Plugin-Wartung. Wenn Sie es tun, behandeln Sie das Update bitte als Priorität: In dieser Konfiguration könnte die Schwachstelle einem entfernten Besucher ohne jegliches Konto ermöglichen, für jeden Benutzer mit hinterlegter Telefonnummer ein neues Passwort zu setzen, einschließlich eines Administrators, was die Kontrolle über die Website in fremde Hände geben würde.
Dies ist eine Plugin-Schwachstelle, keine Schwachstelle im WordPress- oder WooCommerce-Kern. Ein vollständig auf dem neuesten Stand befindliches WordPress schützt Sie nicht, wenn das SMS Alert-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, etwas an sie zu übermitteln oder etwas auszunutzen.
Ich habe lediglich öffentlich sichtbare Dateien betrachtet, die Ihre Website jedem Besucher
bereitstellt (auf die gleiche Weise wie Ihre Startseite öffentlich ist), und die Versionsnummer
notiert, die das Plugin in seiner öffentlichen Datei readme.txt veröffentlicht. Ich habe
bewusst nicht den Passwort-Zurücksetzungs-Ablauf angerührt, und nichts an dieser Überprüfung
berührt Ihre Daten, Ihren Admin-Bereich 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
SMS Alert versendet SMS- und WhatsApp-Benachrichtigungen für WooCommerce-Shops, und es kann außerdem bestimmten Benutzeraktionen einen Einmalcode vorschalten. Einer der Abläufe, die es auf diese Weise absichern kann, ist das „Passwort vergessen?”-Zurücksetzen: Der Besucher fordert eine Zurücksetzung an, das Plugin sendet einen Einmalcode per SMS an die im Konto hinterlegte Telefonnummer, und das neue Passwort soll erst gesetzt werden, nachdem dieser Code korrekt eingegeben wurde.
In betroffenen Versionen prüfte der Schritt, der das neue Passwort setzt, nicht, ob der Einmalcode tatsächlich vollständig eingegeben worden war. Die Zurücksetzung konnte daher bis zum Ende durchgeführt werden, ohne dass der Code jemals eingegeben wurde, durch jemanden, der nicht angemeldet ist und über kein eigenes Konto verfügt. Version 3.9.6 fügt die fehlende Prüfung hinzu, sodass der Schritt zum Setzen des Passworts nun verweigert wird, sofern die Code-Abfrage nicht zuvor bestanden wurde.
Zwei Dinge bestimmen, wie stark dies für eine bestimmte Website ins Gewicht fällt. Erstens ist der Einstiegspunkt genau diese Konfiguration: Das Plugin führt seinen eigenen Zurücksetzungs-Ablauf nur dort aus, wo ein Administrator die OTP-Verifizierung für Passwort-Zurücksetzungen aktiviert hat, und es hat nur für ein Konto mit hinterlegter Telefonnummer einen Code zu versenden. Eine Website, die dieses Feature nie eingeschaltet hat, ist sehr wahrscheinlich überhaupt nicht gefährdet, selbst bei einer betroffenen Version. Zweitens ist dort, wo diese Konfiguration tatsächlich vorhanden ist, die Auswirkung erheblich statt geringfügig, da nichts sie auf Konten mit niedrigen Rechten beschränkt: Jedes Konto mit hinterlegter Telefonnummer kann angegriffen werden, Administratoren eingeschlossen.
Wenn meine E-Mail dieses Problem zitiert hat, bedeutet dies, dass die Version, die Ihre Website meldet, in den betroffenen Bereich fällt. Ich habe nicht getestet, ob Ihre konkrete Website ausnutzbar ist, und ich kann nicht sehen, wie Ihre OTP-Einstellungen konfiguriert sind; alles, was ich beobachtet habe, ist, dass die Website eine betroffene Version meldet.
Bin ich betroffen?
Zwei Fragen entscheiden dies, in dieser Reihenfolge.
Erstens: Verwenden Sie SMS Alert zur Verifizierung von Passwort-Zurücksetzungen? Dies ist die entscheidende Frage, und nur Sie können sie beantworten. Das Überprüfen Ihrer eigenen Einstellungen ist völlig sicher und der eigentliche Zweck dieser Seite.
- Öffnen Sie im WordPress-Adminbereich das Menü SMS Alert und gehen Sie zu dessen Einstellungen, dann zum Abschnitt, der die OTP-Verifizierung steuert. Dieser Abschnitt listet die Abläufe auf, denen Sie einen Einmalcode vorschalten können. Prüfen Sie, ob Passwort-Zurücksetzung (manchmal als „Passwort vergessen” angezeigt) unter den von Ihnen aktivierten Abläufen ist.
- Ist sie nicht aktiviert, erreicht dieses Problem Ihre Website sehr wahrscheinlich nicht, selbst bei einer betroffenen Version. Ein Update wird dennoch als normale Wartung empfohlen.
- Ist sie aktiviert, betrifft das Problem Sie, und Sie sollten zeitnah aktualisieren.
Bitte versuchen Sie nicht, das Problem gegen Ihre eigene Website oder die einer anderen Person nachzustellen, und Sie müssen dies nicht, um die obige Frage zu beantworten: Das Lesen Ihrer Einstellungen sagt Ihnen alles, was Sie wissen müssen.
Zweitens: Welche Version führen Sie aus? Sie müssen mir nicht glauben, aber für dieses Plugin ist einer der naheliegenden Wege zur Überprüfung irreführend, daher lohnt es sich, diesen Teil sorgfältig zu lesen.
Aus dem WordPress-Adminbereich (maßgeblich):
- Melden Sie sich in Ihrem WordPress-Dashboard an (meist unter
yourdomain.com/wp-admin). - Gehen Sie zu Plugins und dann zu Installierte Plugins.
- Finden Sie den Eintrag mit der Bezeichnung „SMS Alert – SMS & OTP for WooCommerce …“
(dessen Ordner
sms-alertist) und notieren Sie die unter dem Namen angezeigte Version. Dies ist die tatsächlich installierte Version.
Aus dem öffentlichen Manifest (kein Login erforderlich): Öffnen Sie
yourdomain.com/wp-content/plugins/sms-alert/readme.txt in einem Browser. Die Zeile
Stable tag: oben ist die Version, die Ihre Installation meldet, und dies ist genau die
öffentliche Datei, die ich gelesen habe.
Eine Sache, der Sie nicht vertrauen sollten: die an die Frontend-Skripte und Stylesheets des
Plugins in Ihrem Seitenquelltext angehängte ?ver=-Nummer. SMS Alert versieht diese Assets mit
einer Kennzeichnung aus einer internen Konstante, die mindestens einmal der tatsächlichen
Veröffentlichung hinterherhinkte: Version 3.5.0 wurde mit Assets ausgeliefert, die mit 3.4.9
gekennzeichnet waren. Das Lesen der Version auf diese Weise kann Ihnen daher eine Veröffentlichung
anzeigen, die älter ist als die, die Sie tatsächlich betreiben, was an der Grenze eine
gepatchte 3.9.6-Installation in ein scheinbares 3.9.5 verwandeln würde. Genau deshalb habe ich
sie nicht verwendet, um zu entscheiden, wen ich kontaktiere, und deshalb sollten Sie Ihre Version
stattdessen anhand des Admin-Bildschirms oder der readme.txt-Zeile beurteilen.
Wenden Sie dann diese Regel an, und beachten Sie, dass Versionen numerisch und nicht alphabetisch verglichen werden, sodass 3.9.10 neuer wäre als 3.9.9:
- 3.0.0 bis 3.9.5: potenziell betroffen (abhängig von der oben genannten OTP-Konfigurationsfrage), jetzt aktualisieren.
- 3.9.6 oder neuer: bereits behoben. Dies schließt 3.9.7 und 3.9.8 ein, spätere Veröffentlichungen, die nicht verwandte Probleme beheben; die aktuelle Veröffentlichung ist 3.9.8.
- Älter als 3.0.0: außerhalb dessen, worüber ich bereit bin, eine Aussage zu treffen. Die älteste Veröffentlichung, die der Hersteller noch anbietet, ist 3.0.0, sodass ich keine Möglichkeit habe, etwas darunter zu prüfen, und ich würde lieber nichts sagen, als eine Version zu beschuldigen, die ich nicht prüfen kann. In der Praxis ist dieser Fall hypothetisch: die älteste Installation, die ich irgendwo gesehen habe, ist eine 3.4.x-Version.
Wie Sie aktualisieren
Der sicherste Weg ist die Aktualisierung direkt über WordPress selbst, und zwar nach vorheriger Sicherung:
- 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.
- Gehen Sie im WordPress-Adminbereich zu Dashboard und dann zu Aktualisierungen, oder zu Plugins und dann zu Installierte Plugins. Wenn ein SMS Alert-Update aufgelistet ist, installieren Sie es von hier.
- Wenn Sie die Befehlszeile bevorzugen, erledigt WP-CLI dasselbe:
wp plugin update sms-alert(der Befehl verwendet den Ordnernamen,sms-alert). - Wenn kein Update angezeigt wird, können Sie die neueste Veröffentlichung direkt von der Plugin-Seite im WordPress.org-Verzeichnis beziehen, SMS Alert, und das Update über Plugins dann Plugin installieren dann Plugin hochladen durchführen.
- Bestätigen Sie nach dem Update die neue Versionsnummer (3.9.6 oder höher) mit den oben genannten Schritten, und prüfen Sie, ob Ihre Bestellbenachrichtigungen und alle von Ihnen genutzten OTP-Abläufe weiterhin normal funktionieren.
Während Sie dort sind, lohnt es sich zu bestätigen, dass WordPress-Kern, WooCommerce und Ihre anderen Plugins auf dem neuesten Stand sind, da das gleiche Prinzip für alle gilt.
Nach dem Update
Das Update auf 3.9.6 oder höher schließt das Problem, und für die meisten Websites ist dies die gesamte Aufgabe. Diese Seite ist ein vorsorglicher Hinweis, kein Vorfallbericht: Ich habe keine Einsicht darin, ob auf Ihrer Website etwas passiert ist, und ich habe auch nicht danach gesucht.
Ein Folgeschritt ist es wert, in Betracht gezogen zu werden, und er ist an dieselbe Konfigurationsfrage geknüpft. Wenn Ihre Website die OTP-Verifizierung für Passwort-Zurücksetzungen aktiviert hatte, während sie eine betroffene Version ausführte, dann war es zumindest theoretisch möglich, dass jemand für ein Konto mit hinterlegter Telefonnummer ein neues Passwort gesetzt hat. Das Update schließt die Lücke, macht aber bereits erfolgten Zugriff nicht rückgängig. In diesem Fall sind daher zwei routinemäßige Vorsichtsmaßnahmen sinnvoll:
- Überprüfen Sie Ihre Administrator-Konten und alle anderen Konten, die von Bedeutung sind, auf Einträge, die Sie nicht wiedererkennen, oder Rollenänderungen, die Sie nicht vorgenommen haben.
- Prüfen Sie kürzliche Passwortänderungen und kürzliche Anmeldungen für Konten mit hinterlegter Telefonnummer, und setzen Sie jedes Passwort zurück, das sich geändert zu haben scheint, ohne dass der Kontoinhaber dies veranlasst hat.
Wenn Sie etwas finden, das Sie beunruhigt, ist es die richtige Reaktion, es wie jeden anderen
vermuteten unbefugten Zugriff zu behandeln: Setzen Sie die Passwörter der Administratoren
zurück, und erwägen Sie, die geheimen Schlüssel und Salts in wp-config.php neu zu generieren,
was jede bestehende Sitzung abmeldet. Wenn Ihre Website die OTP-Zurücksetzung für Passwörter
nie aktiviert hatte, reicht das Update allein aus.
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
zwei öffentliche Dateien gelesen, die Ihre Website bereits jedem Besucher bereitstellt,
spezifisch die öffentliche readme.txt-Datei des Plugins und Ihre Startseite. Ich habe
nicht auf Ihren WordPress-Adminbereich, Ihre Datenbank oder einen privaten Teil der Website
zugegriffen. Insbesondere habe ich den Passwort-Zurücksetzungs-Ablauf nicht angerührt, ich
habe nichts an Ihre Website übermittelt, und ich habe nichts getestet oder ausgenutzt.
Ich veröffentliche außerdem absichtlich nicht die Details, die jemandem helfen würden, dieses Problem auszunutzen: Die obige Seite beschreibt die Schwachstelle auf dem Niveau, das ein Website-Betreiber benötigt, und nicht weiter, und ich verlinke nicht den öffentlichen Proof-of-Concept-Code.
Dies ist eine versionsbasierte Beobachtung: Ihre Website meldet eine Version im betroffenen Bereich. Da dieses Problem konfigurationsabhängig ist, ist eine Website in diesem Bereich möglicherweise überhaupt nicht gefährdet (wenn sie keine OTP-Verifizierung für Passwort-Zurücksetzungen verwendet), und sie kann außerdem bereits durch andere Mittel abgesichert sein, wie etwa eine Web Application Firewall. Dieser Hinweis ist keine Aussage, dass Ihre Website zum Zeitpunkt meiner Prüfung ausnutzbar war.
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 (Ihren Webentwickler, Ihre Agentur oder Ihren 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
- E-Mail: security@mail.mcpsec.dev
- X: @Evan__Harris
- GitHub: eharris128
- LinkedIn: Evan Harris
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