Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAccess open registration form
-
ExploitRegister duplicate account with victim's email
-
ExecutionTrigger email-based password reset
-
ImpactExploit email-ID ambiguity to seize account
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Access control enforcement
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that user self-registration is enabled on the phpMyFAQ instance (so an attacker can create accounts at all) and that the installation's business logic - specifically password reset, notifications, or administrative actions - uses the email address as an account identifier rather than the unique user_id. Escalation to account takeover or privilege escalation additionally requires that a privileged/admin account already exists under the email the attacker targets, as stated by the advisory ('in certain configurations, may lead to...'). The vulnerable function is createUser in RegistrationHelper.php / User.php, which prior to 4.0.13 performed no emailExists() check. Limiting factors: no account takeover occurs in deployments that key flows off the unique user ID, no privileged victim account under the target email means impact is limited to accountability loss and spam/duplicate pollution, and registration must be open to anonymous users. |
| Impact | The signals in this case conflict sharply and the headline CVSS 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) overstates real-world risk. The description itself qualifies the severe outcomes - privilege escalation and account takeover occur only 'in certain configurations' where email is the sole identifier for password-reset or administrative flows, which contradicts the AC:L/no-conditions assumption baked into the 9.8 score. EPSS is just 0.05% (16th percentile), indicating very low probability of exploitation at scale, and the vulnerability is NOT in CISA KEV, so there is no confirmed active exploitation. A public PoC does exist (GHSA-9wj2-4hcm-r74j), but it merely demonstrates creating two accounts with the same email and both appearing in the admin user list - not a working account-takeover exploit. The underlying weakness (CWE-284, improper enforcement of email uniqueness at registration) is a business-logic/accountability flaw; its escalation to C:H/I:H/A:H depends on deployment-specific conditions (email-only password reset AND an existing privileged account sharing the target email) that the advisory explicitly frames as conditional. Net: this is a legitimate hardening fix worth patching, but the combination of low EPSS, no KEV listing, a non-weaponized PoC, and conditional impact makes it a moderate real-world priority rather than a critical emergency - the 9.8 should be treated with skepticism and the C/I/A:H impacts verified against the actual deployment before prioritizing. |
| Exploit ScenarioDerived | On a phpMyFAQ instance with open self-service registration, an attacker registers a new account using the same email address as an existing (ideally privileged) user; because uniqueness is not enforced, both accounts coexist. If the site's password-reset or notification logic keys off the email rather than the unique user ID, the attacker can leverage this ambiguity to intercept reset flows or impersonate the victim. A public PoC exists but only proves duplicate-account creation, not a turnkey takeover. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Oct 08, 2026
Duplicate-email registration handling in phpMyFAQ 4.0.7 through 4.0.13 (and 4.0-nightly-2025-10-03 and earlier) lets unauthenticated remote attackers create multiple distinct accounts sharing the same email address because the createUser logic in RegistrationHelper.php and User.php performed no uniqueness check prior to 4.0.13. The practical consequence is account ambiguity rather than immediate compromise: data-integrity loss, colliding password-reset flows, and spam/duplicate pollution, with privilege escalation or account takeover possible only in specific configurations where a privileged account already exists under the targeted email and downstream flows key off the email instead of the unique user ID. A public proof-of-concept and the upstream fix commit are available, EPSS is negligible (0.05%, 16th percentile), and there is no indication of confirmed active exploitation (no CISA KEV), although the NVD headline CVSS of 9.8 substantially overstates real-world risk relative to our assessment of AV:N/AC:H/PR:N/UI:N/C:L/I:L/A:N.
Earlier versions of this analysis (1)
RemediationAI
Vendor-released patch: upgrade to phpMyFAQ 4.0.13, which introduces the UserData::emailExists() uniqueness check invoked from both RegistrationHelper::createUser() and User::createUser() and rejects duplicate registrations with ERROR_USER_EMAIL_NOT_UNIQUE; the fix is contained in commit 44cd20f86eb041f39d1c30a9beefad1cc61dc0ec (https://github.com/thorsten/phpMyFAQ/commit/44cd20f86eb041f39d1c30a9beefad1cc61dc0ec) and documented in GHSA-9wj2-4hcm-r74j. Because the impact depends on configuration, the most effective compensating control on unpatched instances is to disable open self-registration (or restrict it via the domain whitelist security.domainWhiteListForRegistrations), accepting the trade-off that this blocks legitimate new-account sign-ups and any workflow that relies on self-service registration; additionally, review password-reset, notification, and administrative flows to ensure accounts are resolved by the unique user_id rather than by email, since that change removes the ambiguity that enables account takeover or privilege escalation and the only cost is a code change to those lookup paths. Administrators should also audit the user list in the admin panel (/?action=user&user_action=listallusers) for existing duplicate-email accounts created before patching, merge or remove them, and force password resets where a duplicated address was associated with a privileged account; if self-registration cannot be disabled, adding CAPTCHA/rate limiting only reduces mass-registration spam and does not remediate the underlying uniqueness gap. No vendor-released workaround short of upgrading eliminates the root cause.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in composer, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is classified as CWE-284 (Improper Access Control) and is best understood as an account-management business-logic defect rather than a memory-safety or injection bug. phpMyFAQ's registration path funnels through RegistrationHelper::createUser(), which delegates to User::createUser() and stores profile attributes - including the email - in the faquserdata table. Prior to the fix, neither path validated that the submitted email was already associated with an existing record, so the relational invariant 'one email, one account' was never enforced at the application layer. The patch commit 44cd20f86eb041f39d1c30a9beefad1cc61dc0ec adds a UserData::emailExists(string $email) helper that runs SELECT user_id FROM faquserdata WHERE email = '<escaped value>' and returns true when rows are present; RegistrationHelper::createUser() now short-circuits with User::ERROR_USER_EMAIL_NOT_UNIQUE ('The email address already exists.'), and User::createUser() throws the same exception when the login value itself passes filter_var($string, FILTER_VALIDATE_EMAIL). The same commit also corrected null/whitespace handling for the security.domainWhiteListForRegistrations option in RegistrationHelper::isDomainAllowed(). The core risk comes from the pattern of treating email as an account identifier in password-reset, notification, and administrative flows: where those flows resolve an account by email rather than by the unique user_id, a duplicated address creates ambiguity that can be abused. Deployments that resolve accounts strictly by user_id are not affected beyond account duplication and audit-trail noise.
Know when Phpmyfaq gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Network-reachable self-registration gives AV:N/PR:N, but takeover depends on non-default email-as-identifier config and a colliding privileged account (AC:H); direct impact is accountability/integrity loss (I:L, C:L), no availability effect.
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
6DescriptionNVD
phpMyFAQ is an open source FAQ web application. Versions 4.0-nightly-2025-10-03 and below do not enforce uniqueness of email addresses during user registration. This allows multiple distinct accounts to be created with the same email. Because email is often used as an identifier for password resets, notifications, and administrative actions, this flaw can cause account ambiguity and, in certain configurations, may lead to privilege escalation or account takeover. This issue is fixed in version 4.0.13.
Executive ViewAI
Organizations using phpMyFAQ face notable risk from CVE-2025-59943, a improper access control vulnerability rated CVSS 8.1. Successful exploitation could significantly impact the confidentiality, integrity, or availability of affected systems. Proof-of-concept code is publicly available, increasing the risk of exploitation. A patch is available and should be applied as part of regular vulnerability management.
Apply vendor patch. If immediate patching is not feasible: (1) Restrict access to affected endpoints; (2) Implement additional authorization checks; (3) Enable audit logging.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
Insufficient Session Expiration in GitHub repository thorsten/phpmyfaq prior to 3.2.2. Rated critical severity (CVSS 9.8
Authentication Bypass by Capture-replay in GitHub repository thorsten/phpmyfaq prior to 3.1.12. Rated critical severity
Weak Password Requirements in GitHub repository thorsten/phpmyfaq prior to 3.1.12. Rated critical severity (CVSS 9.8), t
Weak Password Requirements in GitHub repository thorsten/phpmyfaq prior to 3.1.8. Rated critical severity (CVSS 9.8), th
Unauthenticated SQL injection in phpMyFAQ before 4.1.2 allows remote attackers to extract credentials, admin tokens, and
In phpMyFAQ before 2.9.9, there is Cross-Site Request Forgery (CSRF) in admin/stat.ratings.php. Rated high severity (CVS
In phpMyFaq before 2.9.9, there is CSRF in admin/ajax.config.php. Rated high severity (CVSS 8.8), this vulnerability is
In phpMyFAQ before 2.9.9, there is Cross-Site Request Forgery (CSRF) for modifying a glossary. Rated high severity (CVSS
In phpMyFAQ before 2.9.9, there is Cross-Site Request Forgery (CSRF) in admin/stat.main.php. Rated high severity (CVSS 8
phpMyFAQ is an open source FAQ web application for PHP 8.1+ and MySQL, PostgreSQL and other databases. Rated high severi
phpMyFAQ is an open source FAQ web application for PHP 8.1+ and MySQL, PostgreSQL and other databases. Rated high severi
Improper Privilege Management in GitHub repository thorsten/phpmyfaq prior to 3.1.12. Rated high severity (CVSS 8.8), th
EUVD-2025-32505
GHSA-9wj2-4hcm-r74j
NVD
CVE.org
EPSS
Exploit-DB