Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
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-2026-19632 — Unauthenticated account takeover PoC for TranslatePress Multilingual <= 3.3.1 (WordPress) | Kitploit
Tools/GitHubGitHub/ghostpels/cve-2026-19632
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingAuthenticationRed TeamingRepository Deleted
GitHubghostpels/cve-2026-19632

CVE-2026-19632

Unauthenticated account takeover PoC for TranslatePress Multilingual <= 3.3.1 (WordPress)

The upstream repository was not found during the latest Kitploit update check. This listing remains available for reference, but it has been removed from search results.
221 days 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

CVE-2026-19632 — TranslatePress ≤ 3.3.1 Unauthenticated Account Takeover PoC

CVE CVSS Affected Patched Python License

Mass account-takeover tool for CVE-2026-19632, an unauthenticated account takeover in the TranslatePress – Multilingual WordPress plugin (≤ 3.3.1) caused by password reset link disclosure. One command per target list — the full chain runs automatically, and every successful takeover is written to the output file the moment it happens.

Disclaimer — authorized use only. This tool changes real account passwords and triggers real password-reset emails. Use it exclusively against systems you own or have explicit written permission to test. The author is not responsible for any misuse.


Vulnerability summary

CVECVE-2026-19632
ProductTranslatePress – Multilingual (WordPress plugin, slug translatepress-multilingual), by Cozmoslabs
AffectedAll versions ≤ 3.3.1 (400,000+ active installations)
Patched3.3.2 (fix: current_user_can check on the public dictionary AJAX handler)
CVSS 3.19.8 CRITICAL — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (CNA: Wordfence)
CWECWE-200 (Sensitive Information Exposure) + CWE-640 (Weak Password Recovery Mechanism)
ImpactUnauthenticated admin account takeover

The chain

  1. Public AJAX nonce — every secondary-language page prints trp_data including the get_translations nonce. Nonces for logged-out visitors are public by design; the plugin relies on them for security.
  2. Reset URL stored in the translation dictionary — the plugin hooks wp_mail and translates outgoing emails in the recipient's locale. When an anonymous attacker triggers wp-login.php?action=lostpassword for an admin whose profile locale is a published secondary language, the entire reset email — including the plaintext wp-login.php?action=rp URL with the valid reset key — is inserted into wp_trp_dictionary_<default>_<locale> synchronously inside the attacker's request. SMTP does not even need to work.
  3. Public dictionary read — trp_get_translations_regular is registered as wp_ajax_nopriv and, before 3.3.2, only verified the public nonce. Anyone can enumerate the dictionary by string_ids and extract the key.

Full technical write-up: CVE-2026-19632-REPORT.md


Tool — cve-2026-19632.py

A single self-contained script that executes the complete chain for every target in a list:

  1. Detect TranslatePress (page signature + readme.txt fallback)
  2. Extract the public nonce and all published secondary languages (trp_data + language-switcher probing)
  3. Verify the unpatched public AJAX handler answers unauthenticated
  4. Discover usernames (REST API → author redirect → common guesses, each verified through the wp-login error oracle)
  5. Harvest already-stored reset URLs first — no trigger needed
  6. Otherwise trigger a password reset per candidate until the URL leaks
  7. Reset the password (WP ≤ 6.x and WP 7.0 flows), log in, and — the second it succeeds — append url|username|password to the output file (flush, thread-safe, no waiting for the run to finish)

Robustness built in:

  • Stale-key fallback — harvested keys that were already used/expired are detected and a fresh reset is triggered automatically.
  • Multi-language coverage — the leak is looked up in every secondary language dictionary, not just the first one.
  • Network retry, proxy support, colorized logs (colorama with plain fallback).
  • Random strong password per target (or a fixed one via --new-password).

Requirements

root@kitploit:~
pip install -r requirements.txt

Usage

root@kitploit:~
# full execution against a list of targets, 20 threads
python cve-2026-19632.py -l targets.txt -o vuln.txt -t 20

# fixed password for every target
python cve-2026-19632.py -l targets.txt -o vuln.txt -t 10 --new-password 'Pwn3d!2026'

# through a proxy
python cve-2026-19632.py -l targets.txt -o vuln.txt -t 10 --proxy http://127.0.0.1:8080
OptionDescription
-l, --listFile with one target URL per line (# comments allowed)
-o, --outputResults file, format url|username|password (default vuln.txt)
-t, --threadsConcurrent workers (default 10)
--new-passwordFixed password for all targets (default: random 14-char per target)
--timeoutPer-request timeout in seconds (default 15)
--proxyHTTP proxy, e.g. http://127.0.0.1:8080
--no-colorDisable colored output

Demo

Terminal log against a lab instance (WordPress 7.0.4 + TranslatePress 3.3.1, ar default → en_US secondary) — values sanitized:

root@kitploit:~
[00:09:06] [INFO] CVE-2026-19632 takeover tool - 3 target(s), 3 thread(s)...
[00:09:06] [SKIP]    http://example.com (no TranslatePress)
[00:09:07] [INFO]   http://TARGET TP found - langs: ar->en_US, nonce=a1b2c3d4e5
[00:09:09] [INFO]   username candidates: ['admin', ...]
[00:09:09] [WARN]   attempt 1/3 failed (stale key)
[00:09:09] [WARN]   attempt 2/3 failed (stale key)
[00:09:09] [WARN]   attempt 3/3 failed (stale key)
[00:09:09] [INFO]   all keys stale - fresh reset trigger...
[00:09:15] [TAKEOVER] http://TARGET SUCCESS - user='admin' password='Pwn3d!2026'
[00:09:15] [INFO]   done. summary: ERROR=1 | SKIP=1 | TAKEOVER=1

vuln.txt (written live, at the moment of success):

root@kitploit:~
http://TARGET|admin|Pwn3d!2026

Treat vuln.txt as a sensitive artifact — it contains live credentials and/or valid reset keys. Add it to .gitignore.

Conditions required for a target to be exploitable

  • TranslatePress ≤ 3.3.1 with at least one published secondary language
  • Automatic string saving ON (advanced setting "Manual Translation Only" OFF — the default)
  • The target account's profile locale = a secondary language
  • A discoverable username
  • Password reset not otherwise blocked

Not required: a working mail server (the URL is stored inside the wp_mail filter, before the send attempt).


Mitigation

  1. Update TranslatePress to 3.3.2 or later (official fix).
  2. Defense in depth: enable "Manual Translation Only", keep admin profile locales on the site default language, rotate credentials on any installation that ran ≤ 3.3.1 with a secondary language.
  3. Monitor admin-ajax.php logs for sequential string_ids enumeration with a public security nonce.

Disclosure timeline

DateEvent
2026-08-12CVE-2026-19632 reserved
2026-08-13TranslatePress 3.3.2 released with the fix
2026-08-25/26Wordfence publishes the advisory; 8,618 exploitation attempts blocked within 24h
2026-08-28ThaiCERT advisory

Credits

  • Vulnerability discovery: Yuto Hyakumoto (momopon1415) and the Wordfence team, credited in the 3.3.2 changelog.
  • Proof of concept: ghostpel

References

  • Wordfence advisory
  • TranslatePress 3.3.2 changelog
  • ThaiCERT advisory
  • IONIX Threat Center
  • CIRCL vulnerability-lookup

License

MIT © 2026 ghostpel