Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker retains valid LDAP credentials post-blocking
-
DeliverySubmit LDAP login request to phpMyFAQ portal
-
ExploitServer performs successful LDAP directory bind
-
ExecutionAuthLdap::create() calls setStatus('active') unconditionally
-
PersistBlocked account_status overwritten in database
-
ImpactAttacker gains full application access with no audit log entry
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A09:2025 - Security Logging & Alerting Failures
ASVS 5.0
V16 - Security Logging and Error Handling Sufficient logging implementation
|
| Exploitation Conditions | LDAP authentication must be explicitly enabled in phpMyFAQ's configuration - default installations using only local authentication are completely unaffected. The attacker must have a pre-existing local phpMyFAQ account that an administrator has set to 'blocked' status in the account_status database column. The attacker must additionally possess valid LDAP credentials for an identity that maps to the blocked local account; if the LDAP account itself has been disabled or the password changed, exploitation is prevented at the directory layer. Exploitation is limited to this specific intersection of conditions: known users who were explicitly blocked within phpMyFAQ but whose LDAP directory accounts remain active. Accounts blocked before LDAP was ever configured, or users who exist only in LDAP without a pre-existing local phpMyFAQ record, are not subject to this bypass. |
| Impact | The CVSS 4.0 base score of 8.8 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:N) reflects network exploitability and high integrity impact, but the PR:N and AT:N assignments overstate real-world ease of exploitation - the vulnerability requires LDAP to be explicitly configured and the attacker to hold valid LDAP credentials, conditions not captured in those metrics. No public exploit code has been identified, the vulnerability is absent from CISA KEV, and EPSS data was not included in the provided intelligence, so a quantitative exploitation probability cannot be cited. The practical attacker population is narrow: only users who previously had a local phpMyFAQ account that was administratively blocked and who retain working LDAP credentials. Even a mid-sized municipal IT team in opole deploying phpMyFAQ with LDAP would be at risk primarily from insider threats or dismissed employees blocked in the application but not yet deprovisioned from the directory. The most consequential risk is that organizations relying on account blocking as a deprovisioning step - without also removing or disabling the LDAP account - find that control completely bypassed with no log evidence, elevating residual risk beyond what the raw CVSS score communicates. |
| Exploit ScenarioDerived | A dismissed employee's phpMyFAQ account has been set to 'blocked' by an administrator, but their Active Directory credentials remain active pending full offboarding. The former employee navigates to the phpMyFAQ login page, submits their LDAP credentials, and the AuthLdap::create() method completes a successful LDAP bind, then unconditionally calls User::setStatus('active'), clearing the block in the database. The former employee is logged in with full application access, and no log entry is generated, leaving the security team unaware of the re-entry. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 19, 2026
LDAP authentication bypass in phpMyFAQ 3.1.0-4.1.6 allows a blocked local account to be silently reactivated by authenticating via LDAP, letting previously suspended users regain full application access. The AuthLdap::create() method calls User::setStatus('active') unconditionally after any successful LDAP bind, overwriting an administratively set 'blocked' status in the database without logging the state change. No public exploit code has been identified at time of analysis, and the vulnerability is not listed in CISA KEV; the vendor-confirmed fixed release is 4.1.7.
RemediationAI
Upgrade phpMyFAQ to version 4.1.7, the vendor-confirmed fixed release per GitHub security advisory GHSA-8pr3-q3cw-q234. If an immediate upgrade is not feasible, disable LDAP authentication entirely in phpMyFAQ's configuration until the patch is applied - this eliminates the vulnerable code path with no effect on local account management, though it forces all users to local authentication and may disrupt single-sign-on workflows. As a secondary compensating control, ensure that any user whose phpMyFAQ account is blocked is simultaneously deprovisioned from the LDAP or Active Directory directory, removing the credentials required to trigger the bypass; this changes the deprovisioning workflow and may conflict with broader directory lifecycle policies. Administrators should also audit the account_status column in the phpMyFAQ user table for accounts that have unexpectedly transitioned from 'blocked' to 'active', as historical overrides are detectable only through direct database inspection given the absence of application-level logging.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
phpMyFAQ is an open-source PHP FAQ management system (CPE: cpe:2.3:a:thorsten:phpmyfaq) that supports multiple authentication backends including local accounts and LDAP. The vulnerability resides in the AuthLdap::create() method, invoked whenever a user successfully authenticates through the LDAP backend. After a successful LDAP bind, the method calls User::setStatus('active') without first querying the current account_status value in the local database, silently overwriting a 'blocked' status set by an administrator. The vulnerability is assigned CWE-778 (Insufficient Logging) because no audit log entry is generated for the status transition, meaning administrators cannot detect the override through normal monitoring. The deeper root cause is a business logic error: the two authentication paths share the same user object but handle account state independently, creating an implicit authorization inconsistency where LDAP success unconditionally implies account activation.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N
LDAP must be explicitly configured (AC:H) and attacker must hold LDAP credentials (PR:L); no availability impact applies.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
phpMyFAQ versions 3.1.0 through 4.1.6 contain an authentication bypass vulnerability in AuthLdap::create(). When LDAP authentication is enabled, after a successful LDAP bind the code calls User::setStatus('active') unconditionally, which overwrites the account_status column of a pre-existing local account from 'blocked' to 'active'. As a result, a user whose local phpMyFAQ account has been administratively blocked can restore their account and log in by authenticating via LDAP. The state transition is not logged, so administrators cannot detect that the block was overridden. Fixed in 4.1.7.
Executive ViewAI
phpMyFAQ versions 3.1.0-4.1.6 with LDAP authentication contain a critical access control bypass allowing terminated or disciplined users to automatically reactivate their own accounts. No public exploit identified at time of analysis, but the vulnerability creates severe insider threat and compliance risk. This represents a direct undermining of access governance controls critical to employee lifecycle management and security compliance.
Apply vendor patch.
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.
Duplicate-email registration handling in phpMyFAQ 4.0.7 through 4.0.13 (and 4.0-nightly-2025-10-03 and earlier) lets una
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
EUVD-2026-62449
GHSA-x7f8-q53c-52pw
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB