Single Sign On For TNG <= 2.0.0 - Unauthenticated Privilege Escalation via Unverified Password Change
Strategic Overview
- Status
- Patched in 2.1.0
- Affected Plugin
- Single Sign On For TNG
- Affected Version
<= 2.0.0- CVSS
- 9.8Critical
- Weakness type
- CWE-620 · Unverified Password Change
- CVE
CVE-2026-15964
At a glance
CVE-2026-15964 is a critical-severity Unverified Password Change vulnerability in the Single Sign On For TNG WordPress plugin, affecting versions <= 2.0.0. It carries a CVSS score of 9.8 (reachable over the network; low attack complexity; high confidentiality, integrity, availability impact). Exploitation requires no authentication. The issue is fixed in version 2.1.0; sites on affected versions should update now. Disclosed July 2026, reported by andrea bocchetti.
Vulnerability Overview
The Single Sign On For TNG plugin for WordPress is vulnerable to Authentication Bypass via unauthenticated password reset in all versions up to, and including, 2.0.0. This is due to the `ssoprocess_ajax()` function — registered on `wp_ajax_nopriv_ssoprocess_ajax` and therefore reachable without authentication — accepting an attacker-supplied `email` parameter with the `setnewpassword` operation and calling `reset_password()` on the resolved account without any ownership token, email confirmation link, or capability check. The sole guard is a call to `check_ajax_referer()`, which provides no authorization barrier because the `ssoajaxnonce` nonce is publicly broadcast on every front-end page via `wp_localize_script()` into the `SSOPWDREQUIREMENT` JavaScript object; since WordPress computes nonces for logged-out visitors against a shared anonymous session context, any unauthenticated visitor can scrape a valid nonce from the homepage and use it to authenticate the request. This makes it possible for unauthenticated attackers to change the password of any WordPress account, including administrator accounts, enabling complete site takeover.
Technical Analysis
The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no privileges on the target site, and no interaction from a victim user. A successful exploit has high impact on confidentiality, integrity, availability — full site compromise territory.
CWE-620: Unverified Password Change
Single Sign On For TNG <= 2.0.0 carries this weakness at ssoprocess_ajax(), and reaching it takes no account at all. Unverified password change means the password-update path does not require proof that the requester is the account owner.
An attacker who can reach the endpoint takes over the account outright, and the legitimate owner is locked out of it. For Single Sign On For TNG the fix is 2.1.0: builds <= 2.0.0 are affected, anything from 2.1.0 onward is not.
Remediation
Update to version 2.1.0, or a newer patched version
How does WordSec protect against this?
This one needs no account at all, which puts it outside what login hardening can reach; WordSec's login security narrows the account-level paths around it, and the firewall is what inspects the request itself. None of that substitutes for the fix: Single Sign On For TNG 2.1.0 closes this, and updating the plugin is the step that ends it.
- Login Security
- Alerts
External References
Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C