Skip to main content

phpMyFAQ CVE-2026-56737

| EUVDEUVD-2026-85931 HIGH
Improper Authentication (CWE-287)
2026-09-24 GitHub_M GHSA-8gpw-xvpf-hvx5
8.1
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify phpMyFAQ instance with 2FA-enabled accounts
  2. Delivery
    Enumerate/guess target numeric user ID
  3. Exploit
    Submit userId + six-digit token to public 2FA endpoint
  4. Execution
    Brute-force TOTP with no attempt limit
  5. Persist
    Bypass password step, take over admin account
  6. Impact
    Full 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

phpMyFAQ 3.2.0, < 4.1.6

Affected Packages

composer phpmyfaq/phpmyfaq fix: 4.1.6
composer thorsten/phpmyfaq fix: 4.1.6
euvd phpmyfaq_3_2_0 fix: 4.1.6

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

Vendor (GitHub_M) PRIMARY 8.1 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.1 HIGH

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Sep 24, 2026 - 16:02 EUVD
CVE Published
Sep 24, 2026 - 14:59 cve.org
HIGH 8.1

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.4%
Top 69% exploitable
Prevalence
Low
niche but established open-source FAQ web application, not enterprise-ubiquitous
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

40
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +40
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2025-59943 CRITICAL POC
9.8 Oct 03

Duplicate-email registration handling in phpMyFAQ 4.0.7 through 4.0.13 (and 4.0-nightly-2025-10-03 and earlier) lets una

CVE-2023-5865 CRITICAL POC
9.8 Oct 31

Insufficient Session Expiration in GitHub repository thorsten/phpmyfaq prior to 3.2.2. Rated critical severity (CVSS 9.8

CVE-2023-1886 CRITICAL POC
9.8 Apr 05

Authentication Bypass by Capture-replay in GitHub repository thorsten/phpmyfaq prior to 3.1.12. Rated critical severity

CVE-2023-1753 CRITICAL POC
9.8 Mar 31

Weak Password Requirements in GitHub repository thorsten/phpmyfaq prior to 3.1.12. Rated critical severity (CVSS 9.8), t

CVE-2022-3754 CRITICAL POC
9.8 Oct 29

Weak Password Requirements in GitHub repository thorsten/phpmyfaq prior to 3.1.8. Rated critical severity (CVSS 9.8), th

CVE-2026-46364 CRITICAL POC
9.3 May 15

Unauthenticated SQL injection in phpMyFAQ before 4.1.2 allows remote attackers to extract credentials, admin tokens, and

CVE-2017-15730 HIGH POC
8.8 Oct 22

In phpMyFAQ before 2.9.9, there is Cross-Site Request Forgery (CSRF) in admin/stat.ratings.php. Rated high severity (CVS

CVE-2017-15808 HIGH POC
8.8 Oct 23

In phpMyFaq before 2.9.9, there is CSRF in admin/ajax.config.php. Rated high severity (CVSS 8.8), this vulnerability is

CVE-2017-15735 HIGH POC
8.8 Oct 22

In phpMyFAQ before 2.9.9, there is Cross-Site Request Forgery (CSRF) for modifying a glossary. Rated high severity (CVSS

CVE-2017-15734 HIGH POC
8.8 Oct 22

In phpMyFAQ before 2.9.9, there is Cross-Site Request Forgery (CSRF) in admin/stat.main.php. Rated high severity (CVSS 8

CVE-2024-28107 HIGH POC
8.8 Mar 25

phpMyFAQ is an open source FAQ web application for PHP 8.1+ and MySQL, PostgreSQL and other databases. Rated high severi

CVE-2024-27299 HIGH POC
8.8 Mar 25

phpMyFAQ is an open source FAQ web application for PHP 8.1+ and MySQL, PostgreSQL and other databases. Rated high severi

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy