
SMS & OTP für WooCommerce, Bestellbenachrichtigungen & Abandoned-Cart-Recovery-Plugin für WordPress; SMS Alert <3.9.6; Nicht authentifizierte Privilegienausweitung (Erzwungenes Zurücksetzen des Passworts)

SMS Alert ≤ 3.9.5 — nicht authentifizierte Privilegieneskalation durch willkürliches Zurücksetzen von Passwörtern
Ein kritischer Fehler bei der Authentifizierung im WordPress-Plugin SMS Alert – SMS & OTP for WooCommerce, Order Notifications & Abandoned Cart Recovery. Wenn die OTP-Verifizierung für Passwort-Zurücksetzungen aktiviert ist, kann ein nicht authentifizierter Aufrufer ein neues Passwort für einen Benutzer festlegen, der eine Telefonnummer hinterlegt hat — einschließlich Administratoren — ohne den Besitz dieser Telefonnummer nachzuweisen.
| CVE | CVE-2026-11387 |
| CWE | CWE-287: Improper Authentication |
| CVSS 3.1 | 9.8 Kritisch (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| Anbieter | Cozy Vision Technologies Pvt. Ltd. |
| Produkt | SMS Alert (sms-alert) |
| Betroffen | Alle Versionen bis einschließlich 3.9.5 |
| Behoben | 3.9.6 (27. Juni 2026) |
| CNA | Wordfence |
Dieses Repository enthält einen Proof-of-Concept von Abraxas Labs ausschließlich für autorisierte Tests — Offenlegung gegenüber dem Anbieter, Labor-Reproduktion oder einen Host, für den Sie eine schriftliche Genehmigung zur Bewertung haben.
SMS Alert greift in den WooCommerce-/WordPress-Passwort-vergessen-Ablauf ein, sodass ein per SMS gesendeter Einmalcode das neue Passwort absichern soll. In betroffenen Versionen wendet der Handler hinter option=smsalert-change-password-form smsalert_user_newpwd an, ohne zu prüfen, ob der Aufrufer die OTP-Verifizierung abgeschlossen hat oder anderweitig Eigentümer des Kontos ist.
Der offizielle CVE-Eintrag stellt außerdem fest, dass dieselbe fehlende Identitätsprüfung genutzt werden kann, um die E-Mail-Adresse eines Opfers zu ändern und das Konto anschließend über einen normalen Reset zu übernehmen. Beide Wege führen zu einer nicht authentifizierten Kontoubernahme.
Websites sind nur dann gefährdet, wenn beide der folgenden Bedingungen zutreffen:
billing_phone).Unter diesen Bedingungen ist die Auswirkung eine vollständige Kompromittierung des gewählten Kontos. Die Übernahme eines Administratorkontos bedeutet eine vollständige Kompromittierung der Website.
| Bedingung | Ergebnis |
|---|---|
| Nicht authentifizierter Netzwerkzugriff | Keine WordPress-Anmeldedaten erforderlich |
| Ziel ist ein Käufer / Abonnent | Kontoubernahme dieses Kunden |
| Ziel ist ein Administrator | Privilegieneskalation zu wp-admin, Plugin-/Theme-Installation, persistente Malware |
Vertraulichkeit, Integrität und Verfügbarkeit sind alle hoch: Der Angreifer kann Bestellungen und personenbezogene Daten lesen, Website-Inhalte und Benutzer ändern und den legitimen Eigentümer aussperren.
Das Zurücksetzen des Passworts mit SMS Alert sieht grob wie folgt aus:
lost-password-Anfrage → OTP an die Telefonnummer des Benutzers → verifizierter change-password-POST
Der fehlerhafte Schritt ist der letzte. Das Plugin leitet auf Basis von $_REQUEST['option'] == 'smsalert-change-password-form' um (siehe class-wpresetpassword.php in 3.9.5) und schreibt dann das übermittelte Passwort. Es bindet diesen POST nicht an eine vorherige OTP-Sitzung, ein Nonce oder eine Berechtigungsprüfung, die nachweisen würde, dass der Aufrufer der im Reset genannte Benutzer ist.
Dieser Proof-of-Concept bleibt bei diesem Handler:
POST an WooCommerce /my-account/lost-password/ und /wp-login.php?action=lostpassword mit gesetztem wc_reset_password, sodass der Reset-Pfad des Plugins für den Benutzernamen des Opfers betreten wird.POST option=smsalert-change-password-form plus smsalert_user_newpwd / smsalert_user_cnfpwd an /, /my-account/lost-password/ und die wp-login-lost-password-Aktion. Ein Location-Header mit password-reset=true wird als Erfolg gewertet.Es wird kein OTP übermittelt. Das ist der Fehler.
CVE-2026-11387-WooCommerce-SMS-OTP-Abraxas-Labs.py ist ein kleiner Python-3-Client: Farbbanner, dann die drei oben genannten Schritte. Er kommuniziert nur mit der URL, die Sie in der Befehlszeile übergeben.
requestsUnter macOS mit Homebrew-Python (PEP 668) verwenden Sie eine venv anstelle eines systemweiten pip install:
python3 -m venv .venv
.venv/bin/pip install requests
CVE-2026-11387-WooCommerce-SMS-OTP-Abraxas-Labs.py <base_url> <victim_username> [new_password]
.venv/bin/python3 CVE-2026-11387-WooCommerce-SMS-OTP-Abraxas-Labs.py \
https://shop.example \
admin
Ein drittes Argument legt das anzuwendende Passwort fest; der Standardwert ist abr4x4s#L4b5.
Ohne Argumente gibt das Skript das Banner und die Verwendung aus und beendet sich mit 1. Das ist ein sicherer Weg, um zu bestätigen, dass der Client startet.
Die Ziel-WordPress-Website muss SMS Alert ≤ 3.9.5 ausführen, mit aktiviertem OTP-beim-Reset, und der Benutzername des Opfers muss bereits eine Telefonnummer für OTP hinterlegt haben. Gegenüber einer gepatchten 3.9.6+-Website oder einem Benutzer ohne Telefonnummer wird erwartet, dass die Login-Prüfung fehlschlägt.
Richten Sie dies nicht gegen einen Host, der Ihnen nicht gehört oder für den Sie keine schriftliche Genehmigung zum Testen haben.
wp-admin-Sitzungen aus dem relevanten Zeitraum als nicht vertrauenswürdig.class-ultimatemember.php (Trac)Nur für Forschungs- und Bildungszwecke. Führen Sie dieses Material nicht gegen einen Host aus, stellen Sie es nicht bereit oder verwenden Sie es nicht, es sei denn, Sie haben die ausdrückliche schriftliche Genehmigung sowohl von der Partei, die dieses Repository hostet, als auch vom Eigentümer der Zielsysteme.
Abraxas Labs · abraxaslabs.tech · github.com/abraxas · @abraxas_null
wp-login.php