Temporary Login <= 1.0.0 - Authentication Bypass to Account Takeover
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- 1 on Exploit-DB, 1 proof of concept on GitHub
- Exploitation: none
- Automatable: yes
- Technical impact: total
Summary
The Temporary Login plugin for WordPress is vulnerable to Authentication Bypass in versions up to and including 1.0.0. This is due to improper input validation in the maybe_login_temporary_user() function, which fails to verify that the 'temp-login-token' GET parameter is a scalar string before processing it. When the parameter is supplied as an array, PHP's empty() check is bypassed and sanitize_key() returns an empty string, which is then passed as the meta_value to get_users(). WordPress ignores an empty meta_value and returns all users matching the meta_key '_temporary_login_token', allowing authentication without a valid token. This makes it possible for unauthenticated attackers to authenticate as any active temporary login user by sending a single crafted GET request.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: total
- Record last updated
- Public exploit on Exploit-DB
EDB-52575
Affected versions
- elemntor Temporary Login
through 1.0.0
References 9
plugins.trac.wordpress.org
- browser/temporary-login/trunk/core/options.php#L157
- browser/temporary-login/tags/1.0.0/core/options.php#L157
- browser/temporary-login/trunk/core/admin.php#L135
- browser/temporary-login/tags/1.0.0/core/admin.php#L135
- browser/temporary-login/trunk/core/admin.php#L179
- browser/temporary-login/tags/1.0.0/core/admin.php#L179