Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify phpMyFAQ instance with 2FA-enabled accounts
-
DeliveryEnumerate/guess target numeric user ID
-
ExploitSubmit userId + six-digit token to public 2FA endpoint
-
ExecutionBrute-force TOTP with no attempt limit
-
PersistBypass password step, take over admin account
-
ImpactFull read/write control of application
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK
2 techniques across 2 tactics: Defense Evasion, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the target phpMyFAQ account (e.g. an administrator) to have TOTP two-factor authentication enabled; the flaw is in the PUBLIC 2FA verification flow of index.php. The attacker must supply the account's numeric user ID (guessable/enumerable) plus a valid or brute-forced six-digit TOTP code, and submit it WITHOUT first passing password authentication. What makes this practical pre-patch is the total absence of a failed-attempt limit and the lack of any requirement for a prior password-authenticated pending session (2fa_pending_user_id), which the 4.1.6 patch introduces along with a 5-attempt cap. The main limiting factor is the TOTP brute-force cost within the code's rolling validity window (hence AC:H) and the requirement that the target account actually uses 2FA; no user interaction and no attacker authentication are needed. |
| Impact | This is a genuine high-priority vulnerability for anyone running phpMyFAQ 3.2.0-4.1.5 with 2FA enabled. The CVSS vector (AV:N/AC:H/PR:N/UI:N/C:H/I:H/A:H, base 8.1) describes an unauthenticated, network-reachable account-takeover flaw with full confidentiality/integrity/availability impact, which is corroborated by the description (takeover of any 2FA-enabled account including administrators) and by the source-code evidence in the patch commits. The AC:H rating is well-justified: the pre-patch flow required a valid OR brute-forced six-digit TOTP, and although the numeric user ID is easy to guess, the TOTP space (10^6) is what raises attack complexity - critically, the pre-patch code had NO failed-attempt limiting (the patch adds a 5-attempt cap), so offline-style rapid brute force of the 30-second-window TOTP was feasible against a valid or currently-authenticating window. No EPSS score, no CISA KEV listing, and no public POC were provided, so this is not confirmed as actively exploited; however, the fix commits are public and clearly reveal the vulnerable logic (submitting userId + token without a password-authenticated pending session), which lowers the bar for exploit development. Signals are consistent rather than conflicting: high CVSS, a clear root cause, and a vendor advisory (GHSA-8gpw-xvpf-hvx5), tempered only by the AC:H brute-force requirement and the dependence on the target having 2FA enabled. Treat as a priority patch where 2FA is in use; where 2FA is not enabled on any account, exposure is effectively nil. |
| Exploit ScenarioDerived | An unauthenticated attacker targets a phpMyFAQ instance where an administrator has enabled TOTP 2FA. The attacker submits the admin's numeric user ID together with a six-digit token directly to the public 2FA verification endpoint - skipping the password step entirely - and, because pre-patch code did not bind verification to a password-authenticated session or limit failed attempts, brute-forces or replays a valid TOTP to gain full control of the admin account. No public POC was identified, but the patch commits publicly disclose the vulnerable code path. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 24, 2026
Unauthenticated attackers can bypass TOTP-based two-factor authentication in phpMyFAQ 3.2.0 through 4.1.5 and take over any 2FA-enabled account, including administrator accounts, by submitting a victim's numeric user ID together with a valid or brute-forced six-digit code to the public 2FA verification flow in index.php without ever supplying the account password. The flaw rates CVSS 3.1 base 8.1 (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H); the high attack complexity reflects the cost of guessing a TOTP code inside its rolling validity window, while the practical enabler pre-patch is the complete absence of any failed-attempt limit and the fact that token verification was never bound to a prior password-authenticated session. There is no public exploit identified at time of analysis and no CISA KEV listing, but exploitation requires only that the targeted account have 2FA enabled, making the exposure significant for deployments that adopted TOTP. Vendor-released patch: 4.1.6.
RemediationAI
Upgrade to phpMyFAQ 4.1.6 or later, which is the vendor-released patch: it binds TOTP verification to a session whose 2fa_pending_user_id was set only after a successful password check and enforces a five-attempt cap that clears the pending state and counter when exceeded. Verify the fix by confirming that a token submission carrying a valid token but no prior password-authenticated session is rejected. No official workaround is documented, so if immediate upgrade is not possible apply compensating controls with awareness of their trade-offs: front the login and 2FA endpoints with a reverse proxy or WAF rule that rate-limits and temporarily blocks repeated six-digit token submissions per source IP and per user ID, accepting that legitimate users who mistype codes may also be throttled and that distributed attackers can evade per-IP limits; restrict access to the login/2FA path to known administrative network ranges or a VPN, which reduces exposure but breaks public or remote-user login; or temporarily disable TOTP 2FA for accounts until patched, which removes this specific bypass but leaves those accounts protected by passwords alone and therefore weaker overall against credential attacks. Monitor authentication logs for token-verification requests that arrive without a preceding successful password authentication or that fan out across sequential numeric user IDs, and treat any such pattern as attempted compromise. Advisory and patch detail: https://github.com/thorsten/phpMyFAQ/security/advisories/GHSA-8gpw-xvpf-hvx5.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 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 vulnerability is an instance of CWE-287 (Improper Authentication) in phpMyFAQ's login controller, phpmyfaq/index.php. In affected releases the second login step evaluated the submitted TOTP token purely on its own merits: if a non-empty token of exactly six numeric characters accompanied a supplied user ID, the code proceeded to validate the token against the stored TOTP secret for that user ID, with no check that the request belonged to a session in which the account password had already been verified. Because the user ID is a numeric, enumerable value and TOTP secrets are validated against a rolling time window, an attacker could forgo the password entirely and iterate over candidate six-digit codes for a chosen 2FA-enabled account. The commit series referenced by the advisory (410208b90f1d01534812ac5203d3e8d9c7bd591f, 5097dff341fb01e93e8561e7261b3ae657df715a, 6a69f6e2142fde722165c65b7e0a49f3176e87be) restructures this flow so that the password-verification branch sets a session marker, 2fa_pending_user_id, populated from the authenticated user object along with a reset 2fa_failed_attempts counter; the token branch then refuses to proceed unless 2fa_pending_user_id exists and matches the submitted user ID, refuses once 2fa_failed_attempts reaches five, and clears both the pending state and the counter when the cap is hit. This converts the second factor from a standalone, independently brute-forceable check into a step that is cryptographically and statefully chained to a successful password authentication, eliminating direct access to the token endpoint.
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:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Network-reachable and unauthenticated (PR:N), but the six-digit TOTP brute force plus 2FA-enabled precondition raises complexity (AC:H); admin takeover yields full C/I/A.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
phpMyFAQ is an open source FAQ web application. Versions 3.2.0 through 4.1.5 contain an authentication bypass in its public two-factor authentication verification flow: an unauthenticated attacker can submit an account’s numeric user ID and a valid or brute-forced six-digit TOTP code without first authenticating with the account password, allowing takeover of any 2FA-enabled account, including administrator accounts. Version 4.1.6 is patched by binding TOTP verification to a session established after successful password authentication and limiting failed TOTP attempts. No official workaround is documented; affected installations should upgrade to 4.1.6 or later.
Technical POC Analysis
Improper authentication (CWE-287; the advisory also cites CWE-306 - missing authentication for a critical step) in phpMyFAQ's public two-factor step.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
phpMyFAQ versions 3.2.0 through 4.1.5 contain an unauthenticated two-factor authentication bypass that lets an attacker seize any TOTP-protected account, including administrator accounts, without ever supplying the account password. Any organization hosting an affected instance - particularly one that adopted TOTP as its primary control for privileged access - faces a credible path to full administrative takeover of the platform and the knowledge base, user records, and configuration it holds. Leadership should treat this as a priority remediation item for internet-facing deployments because the control the business relied on for privileged access is the very control being bypassed.
Apply vendor patch (4.1.6). Interim mitigations pending upgrade: rate-limit and lock out repeated requests to the index.php 2FA verification flow per user ID and source IP via reverse proxy or WAF, restrict administrative and 2FA-protected account access to trusted networks, and monitor authentication logs for repeated or anomalous 2FA submissions.
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-85931
GHSA-8gpw-xvpf-hvx5
NVD
CVE.org
EPSS
Exploit-DB