CVE-2025-59943: phpMyFAQ duplicate email registration allows multiple accounts with the same email
8.1
Basic Information
Technical Details
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version | 
|---|---|---|---|
| thorsten/phpmyfaq | composer | >= 4.0.7, < 4.0.13 | 4.0.13 | 
Vulnerability Intelligence Miggo AI
Miggo AI
 Root Cause Analysis
Root Cause Analysis
The vulnerability allows multiple user accounts to be created with the same email address due to a lack of uniqueness enforcement during registration. The root cause is the absence of a check to verify if an email address is already present in the system before creating a new user.
The analysis of the patch commit 44cd20f86eb041f39d1c30a9beefad1cc61dc0ec reveals the exact locations of the flaw. The developers added email validation logic in two key functions:
- 
phpMyFAQ\Helper\RegistrationHelper::createUser: This is the high-level function that orchestrates the user registration process. The patch adds a block of code to call a newemailExists()method on theUserDataobject. If the email exists, the registration is halted. This function is the most direct entry point for the vulnerability described in the proof-of-concept.
- 
phpMyFAQ\User::createUser: This is a more fundamental user creation function. It was also patched to handle cases where the username (login) itself is an email address. It now checks if the provided login is an email and, if so, verifies its uniqueness in theuserdatatable.
By identifying these two functions, we can conclude that any runtime profile capturing a user registration event that triggers this vulnerability would show phpMyFAQ\Helper\RegistrationHelper::createUser in the stack trace, which in turn calls phpMyFAQ\User::createUser. Both were processing potentially malicious input (a duplicate email) without proper validation.
Vulnerable functions
phpMyFAQ\Helper\RegistrationHelper::createUserphpmyfaq/src/phpMyFAQ/Helper/RegistrationHelper.php
phpMyFAQ\User::createUserphpmyfaq/src/phpMyFAQ/User.php