phpMyFAQ
CVE-2025-69200
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify internet-exposed phpMyFAQ < 4.0.16
-
DeliveryPOST /api/setup/backup with non-empty body
-
ExploitServer generates config backup ZIP
-
ExecutionDownload ZIP from content/core/config/ URL
-
PersistExtract database.php credentials
-
ImpactPivot to database for follow-on compromise
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V14 - Data Protection Sensitive data in outbound message
|
| Exploitation Conditions | Requires that the phpMyFAQ instance be running a vulnerable version (< 4.0.16, or the 4.1.0-alpha-4.1.0-beta.2 pre-release branch) with the default .htaccess rewrite rules active, which expose /api/setup/(check|backup|update-database) to api/index.php. No authentication, API token, or user interaction is required; the attacker only needs to send a POST request with any non-empty body (interpreted as an 'installed version' string). The main limiting factors are reliance on the default rewrite configuration being present and the content/core/config/ directory being web-accessible - environments that have hardened or removed the setup rewrite rules, or restricted access to the config directory, would not be exploitable. |
| Impact | This is a genuine high-priority issue rather than an inflated high-CVSS score. All exploitability signals align toward easy abuse: the CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N) indicates a network-reachable, low-complexity, unauthenticated attack with no user interaction, and this is corroborated by the GHSA advisory, which confirms the /api/setup/backup endpoint is exposed via default .htaccess rewrite rules and performs no hasValidToken(), userIsAuthenticated(), or permission check. A working PoC is publicly available in the GitHub Security Advisory, lowering the barrier to mass exploitation. The impact profile is narrow but severe: C:H with I:N/A:N reflects pure confidentiality loss (disclosure of database.php credentials), not code execution - though the advisory correctly notes this enables follow-on compromise once DB credentials are obtained. Not in CISA KEV and no EPSS score was provided in the input, so widespread active exploitation is not confirmed; the combination of a public PoC, trivial exploitation, and default-configuration reachability nonetheless makes near-term opportunistic scanning likely. Verify EPSS independently, as it was absent from the provided data. |
| Exploit ScenarioDerived | An attacker scanning the internet for phpMyFAQ instances sends an unauthenticated POST to /api/setup/backup with any non-empty body, causing the server to generate a configuration backup ZIP and return its direct URL. The attacker then downloads the ZIP from the web-accessible content/core/config/ path and extracts database.php to recover database host, username, and password. A public PoC (curl-based) exists in the GHSA advisory, making this trivially reproducible. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 05, 2026
Unauthenticated attackers can force phpMyFAQ installations running versions prior to 4.0.16 to generate a full configuration backup ZIP inside a web-accessible directory and then simply download it, exposing database credentials and other configuration secrets. The POST /api/setup/backup endpoint performs no authentication, authorization, or API token verification, and the resulting archive is served from content/core/config/ under a date-stamped filename, so no user interaction or privileges are needed (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N). Publicly available exploit code exists - the vendor's GitHub advisory publishes a three-step curl proof of concept - and the information disclosed (database.php credentials, integration configuration) is well suited to follow-on compromise, making this a genuine high-priority issue rather than an inflated high-CVSS score.
RemediationAI
Vendor-released patch: upgrade to phpMyFAQ 4.0.16 (or a later 4.1.x release), which is the fixed version per the advisory and corresponds to commit b0e99ee3695152115841cb546d8dce64ceb8c29a; see https://github.com/thorsten/phpMyFAQ/security/advisories/GHSA-9cg9-4h4f-j6fg for details. Note that the 4.1.0 pre-release range (4.1.0-alpha through 4.1.0-beta.2) is listed with no fixed version, so operators on that branch should move to 4.0.16 stable or a newer patched 4.1.x build. If immediate upgrading is not possible, apply specific compensating controls: block or remove the setup rewrite rule '/api/setup/(check|backup|update-database)' in .htaccess or the web server configuration (trade-off: the web-based setup and update wizard stops working, so upgrades must be performed manually/CLI-side), and deny direct HTTP access to the content/core/config/ directory so any generated archive cannot be retrieved (trade-off: verify nothing else legitimately served from that path is broken). Because exploitation only requires a single unauthenticated POST followed by a GET, treat any deployment that was exposed as potentially already compromised: delete any leftover phpmyfaq-config-backup.YYYY-MM-DD.zip files from content/core/config/, rotate the database credentials in database.php, and rotate any other integration secrets captured in the backup. These controls reduce but do not eliminate risk, since the underlying endpoint remains callable until the code is patched.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in composer
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
phpMyFAQ is a PHP-based FAQ/knowledge-base web application distributed as the Composer package thorsten/phpmyfaq. The flaw sits in the setup API surface: the default Apache rewrite rule in phpmyfaq/.htaccess ('RewriteRule ^api/setup/(check|backup|update-database) api/index.php [L,QSA]') routes the setup endpoints into the application front controller, where SetupController::backup() handles the request without calling hasValidToken(), userIsAuthenticated(), or any permission check. The handler passes the attacker-supplied body - lightly interpreted as an 'installed version' string - into Update::createConfigBackup(), which writes a ZIP archive into the configuration directory and returns a public URL under content/core/config/. The assigned CWE-202 (Exposure of Sensitive Information Through Data Queries) describes the data-exposure outcome, while the advisory frames the practical root cause as missing authentication/authorization for a sensitive function plus sensitive information exposure; the two views converge on an unauthenticated request that produces and discloses a secret-bearing artifact. The vulnerability's reach therefore depends on PHP/Apache deployment specifics: the default rewrite rules must be active and the content/core/config/ directory must be reachable over HTTP. The patch commit b0e99ee3695152115841cb546d8dce64ceb8c29a removes the client-side logic that consumed the returned backupFile URL (assets/src/configuration/update.js) and the download link in the setup update template (assets/templates/setup/update/step2.twig), eliminating the exposed backup-generation/download flow.
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:N/A:N
Unauthenticated network endpoint reachable by default (AV:N/AC:L/PR:N/UI:N); discloses DB credentials giving high confidentiality impact, with no direct integrity or availability effect (C:H/I:N/A:N).
Primary rating from Vendor (github).
CVSS VectorVendor: github
DescriptionCVE.org
phpMyFAQ is an open source FAQ web application. In versions prior to 4.0.16, an unauthenticated remote attacker can trigger generation of a configuration backup ZIP via POST /api/setup/backup and then download the generated ZIP from a web-accessible location. The ZIP contains sensitive configuration files (e.g., database.php with database credentials), leading to high-impact information disclosure and potential follow-on compromise. Version 4.0.16 fixes the issue.
Executive ViewAI
phpMyFAQ installations prior to version 4.0.16 are susceptible to unauthenticated attackers downloading full configuration backups that contain database credentials and integration secrets. This can lead to unauthorized access to sensitive data, further compromise of connected systems, and potential regulatory non-compliance. Leadership should prioritize immediate patching because publicly available exploit code exists and the vulnerability is easy to exploit, resulting in significant data breach impact.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Affected Products (CPE)CVE.org
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
NVD
CVE.org
EPSS
GitHub
Exploit-DB