CVE-2026-49205: phpMyFAQ: Missing userHasPermission() in 4 API write endpoints (CVE-2026-24421 Incomplete Fix)

Published Jun 18, 2026
·
Updated

Missing Authorization in API CategoryController — CVE-2026-24421 fixed BackupController by adding userHasPermission(PermissionType::BACKUP). The same fix was NOT applied to 4 other write endpoints in the public API. All 4 only call hasValidToken() (shared API key) but never call userHasPermission(), allowing any API token holder to perform admin operations regardless of their user permissions.

Summary

CVE-2026-24421 fixed 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, NOT the individual user's role permissions.

Affected Endpoints

1. src/phpMyFAQ/Controller/Api/CategoryController.php → create() POST /api/v4.0/category Missing: userHasPermission(PermissionType::CATEGORYADD) Any API token holder can create categories regardless of user role.

2. src/phpMyFAQ/Controller/Api/FaqController.php → create() POST /api/v4.0/faq Missing: userHasPermission(PermissionType::FAQADD) Any API token holder can create FAQ entries regardless of user role.

3. src/phpMyFAQ/Controller/Api/FaqController.php → update() PUT /api/v4.0/faq Missing: userHasPermission(PermissionType::FAQEDIT) Any API token holder can update any FAQ entry regardless of user role.

4. src/phpMyFAQ/Controller/Api/QuestionController.php → create() POST /api/v4.0/question Missing: permission check Any API token holder can create questions regardless of user role.

Root Cause

All 4 methods only call: $this->hasValidToken(); ← shared API key, not per-user

The fixed BackupController correctly calls: $this->userHasPermission(PermissionType::BACKUP);

PermissionType::CATEGORYADD, FAQADD, FAQEDIT all exist in src/phpMyFAQ/Enums/PermissionType.php — they just are not being used.

Fix

Add userHasPermission() before the logic in each method:

// CategoryController.create() $this->userHasPermission(PermissionType::CATEGORYADD);

// FaqController.create() $this->userHasPermission(PermissionType::FAQADD);

// FaqController.update() $this->userHasPermission(PermissionType::FAQEDIT);

Reporter

CONTACT Santhoshini Ganta Github:@santhoshinipayload Email: santhoshinive75@gmail.com LinkedIn: http://linkedin.com/in/santhoshini-g-1440621ba

Other sources

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.

MITRE

Affected Software

3 affected componentsFixes available
PhpMyFaq phpmyfaq<4.1.4
composer/phpmyfaq/phpmyfaq<4.1.4
4.1.4
composer/thorsten/phpmyfaq<4.1.4
4.1.4

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade composer/phpmyfaq/phpmyfaq to a version that resolves this vulnerability.

    Fixed in 4.1.4
  2. Upgrade

    Upgrade composer/thorsten/phpmyfaq to a version that resolves this vulnerability.

    Fixed in 4.1.4
  3. Upgrade

    Upgrade phpMyFAQ to a version that resolves this vulnerability.

    Fixed in 4.1.4
  4. Configuration

    In src/phpMyFAQ/Controller/Api/CategoryController.php, update create() to call $this->userHasPermission(PermissionType::CATEGORY_ADD) before the method logic (currently only $this->hasValidToken() is called).

    CategoryController::create (POST /api/v4.0/category) authorization check = add $this->userHasPermission(PermissionType::CATEGORY_ADD) before create logic; ensure it is checked in addition to $this->hasValidToken()
  5. Configuration

    In src/phpMyFAQ/Controller/Api/FaqController.php, update create() to call $this->userHasPermission(PermissionType::FAQ_ADD) before the method logic (currently only $this->hasValidToken() is called).

    FaqController::create (POST /api/v4.0/faq) authorization check = add $this->userHasPermission(PermissionType::FAQ_ADD) before create logic; ensure it is checked in addition to $this->hasValidToken()
  6. Configuration

    In src/phpMyFAQ/Controller/Api/FaqController.php, update update() to call $this->userHasPermission(PermissionType::FAQ_EDIT) before the method logic (currently only $this->hasValidToken() is called).

    FaqController::update (PUT /api/v4.0/faq) authorization check = add $this->userHasPermission(PermissionType::FAQ_EDIT) before update logic; ensure it is checked in addition to $this->hasValidToken()
  7. Configuration

    In src/phpMyFAQ/Controller/Api/QuestionController.php, update create() to add the missing user permission check before create logic (material states only $this->hasValidToken() is called for this write endpoint; the specific PermissionType for QuestionController::create is not explicitly named in the provided text).

    QuestionController::create (POST /api/v4.0/question) authorization check = add $this->userHasPermission() for the appropriate permission type before create logic; ensure it is checked in addition to $this->hasValidToken()

Event History

Jun 18, 2026
CVE Published
via MITRE·09:12 PM
Data Sourced
via MITRE·09:12 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·10:16 PM
DescriptionSeverityWeakness
Jun 23, 2026
Advisory Published
via GitHub·10:27 PM
Data Sourced
via GitHub·10:27 PM
DescriptionSeverityWeaknessAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-49205?

The severity of CVE-2026-49205 is medium, rated at 6.5.

2

What type of vulnerability is CVE-2026-49205?

CVE-2026-49205 is a missing authorization vulnerability affecting phpMyFAQ.

3

How do I fix CVE-2026-49205?

To fix CVE-2026-49205, update to phpMyFAQ version 4.1.4 or later where the issue has been addressed.

4

Which endpoints are affected by CVE-2026-49205?

CVE-2026-49205 affects four write endpoints in the API CategoryController of phpMyFAQ.

5

Is CVE-2026-49205 related to any other vulnerabilities?

Yes, CVE-2026-49205 is related to CVE-2026-24421, which had an incomplete fix for similar authorization issues.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203