Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Write-only endpoints create/modify content (I:H); PR:L for required API token; C:N as no data is read or disclosed.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
phpMyFAQ is an open source FAQ web application. Versions prior to 4.1.4 have Missing Authorization in the API CategoryController. CVE-2026-24421 addressed this in the BackupController by adding: $this->userHasPermission(PermissionType::BACKUP). The same fix was not applied to 4 other write endpoints in the public API. All 4 only call $this->hasValidToken() - which checks a shared API key header, rather than the individual user's role permissions. The following APIs are affected: POST /api/v4.0/category (CategoryController::create), POST /api/v4.0/faq (FaqController::create), PUT /api/v4.0/faq (FaqController::update), and POST /api/v4.0/question (QuestionController::create). This issue has been fixed in version 4.1.4.
AnalysisAI
Missing authorization in four write API endpoints of phpMyFAQ prior to version 4.1.4 allows any holder of the shared API key to create categories, create or update FAQs, and post questions regardless of their assigned role permissions. The vulnerability is a partial remediation gap: CVE-2026-24421 previously added userHasPermission checks to BackupController, but that fix was not consistently applied to CategoryController::create, FaqController::create, FaqController::update, and QuestionController::create. No public exploit code has been identified and this CVE is not listed in CISA KEV at time of analysis.
Technical ContextAI
phpMyFAQ is a PHP-based open-source FAQ web application exposing a REST API at /api/v4.0/. The API uses a shared API key header validated via $this->hasValidToken() for authentication. The root cause is CWE-862 (Missing Authorization): after token validation, the four affected write endpoints do not call $this->userHasPermission(PermissionType::*), meaning role-based access controls (CATEGORY_ADD, FAQ_ADD, FAQ_EDIT, QUESTION_ADD) are entirely skipped. The affected CPE is cpe:2.3:a:thorsten:phpmyfaq:*:*:*:*:*:*:*:*. Commit d5c195b1ecf5dc30fb825d7eb50d22481c24cb07 shows the fix adds distinct PermissionType imports and userHasPermission calls to each of the three affected controller files, mirroring the pattern already applied to BackupController.
RemediationAI
Upgrade phpMyFAQ to version 4.1.4 or later, which is the vendor-released patch for this issue as confirmed by GitHub Security Advisory GHSA-8c6h-7g6x-m5x4 and commit d5c195b1ecf5dc30fb825d7eb50d22481c24cb07. If immediate upgrade is not feasible, restrict network access to the four affected API paths (POST /api/v4.0/category, POST /api/v4.0/faq, PUT /api/v4.0/faq, POST /api/v4.0/question) via WAF rules or reverse-proxy ACLs - note this will break any legitimate integrations relying on these endpoints. Alternatively, rotate or revoke the shared API key and limit distribution strictly to trusted automated systems until the patch is applied, reducing the pool of potential abusers. Advisory reference: https://github.com/thorsten/phpMyFAQ/security/advisories/GHSA-8c6h-7g6x-m5x4.
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
Same weakness CWE-862 – Missing Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-37954
GHSA-8c6h-7g6x-m5x4