/

CVE-2026-111897

Severity:

HIGH RISK

(7.1)

Authorization Bypass (CWE-862) in phpMyFAQ Attachments

CVE-2026-111897

Deferred

Vulnerability type

Category:

Authorization Bypass

CWE:

CWE-862

Impact:

Unauthorized file modification and deletion

Severity:

HIGH RISK

(7.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

phpMyFAQ contains an authorization bypass that may let category-restricted editors manage attachments associated with FAQs outside their permitted categories. An attacker with medium-level editor access could supply another FAQ record or attachment identifier to upload or delete files without the required category authorization.

phpMyFAQ contains an authorization bypass that may let category-restricted editors manage attachments associated with FAQs outside their permitted categories. An attacker with medium-level editor access could supply another FAQ record or attachment identifier to upload or delete files without the required category authorization.

Affected context

The issue may arise in phpMyFAQ deployments where editors are restricted to selected FAQ categories but attachment management requests rely on client-supplied record or attachment identifiers without consistently enforcing category-level authorization. It concerns upload and delete operations for FAQ attachments.

The issue may arise in phpMyFAQ deployments where editors are restricted to selected FAQ categories but attachment management requests rely on client-supplied record or attachment identifiers without consistently enforcing category-level authorization. It concerns upload and delete operations for FAQ attachments.

Exploit preconditions

  • Attack surface: Authenticated attachment-management endpoints
  • Required access: An account with medium permission mode and editor-level access
  • Trigger point: An upload or deletion request containing a target record_id or attachment ID
  • Why exploitation is possible: The request may identify a resource outside the editor's authorized categories without an effective server-side ownership or category check
  • Attack surface: Authenticated attachment-management endpoints
  • Required access: An account with medium permission mode and editor-level access
  • Trigger point: An upload or deletion request containing a target record_id or attachment ID
  • Why exploitation is possible: The request may identify a resource outside the editor's authorized categories without an effective server-side ownership or category check

Why this happens

The underlying flaw is an authorization enforcement gap. The application accepts a client-controlled FAQ record or attachment identifier and does not reliably verify that the authenticated editor is permitted to manage the referenced resource. This behavior maps to CWE-862, Missing Authorization, because access control is absent or inconsistently applied at the operation boundary.

The underlying flaw is an authorization enforcement gap. The application accepts a client-controlled FAQ record or attachment identifier and does not reliably verify that the authenticated editor is permitted to manage the referenced resource. This behavior maps to CWE-862, Missing Authorization, because access control is absent or inconsistently applied at the operation boundary.

Potential impact

  • An attacker may upload files to FAQs outside their assigned categories.
  • An attacker could delete legitimate attachments from unauthorized FAQs.
  • FAQ content integrity and attachment availability may be reduced.
  • Malicious or misleading files could be introduced into trusted documentation.
  • An attacker may upload files to FAQs outside their assigned categories.
  • An attacker could delete legitimate attachments from unauthorized FAQs.
  • FAQ content integrity and attachment availability may be reduced.
  • Malicious or misleading files could be introduced into trusted documentation.

General mitigation guidance

Mitigation generally focuses on enforcing authorization for every attachment

operation on the server side.

Common defensive patterns include:

  • Deriving the target FAQ and category from server-side records rather than trusting identifiers alone.
  • Checking the authenticated user's permissions and category scope before upload, replacement, or deletion.
  • Applying the same authorization policy consistently across create, update, and delete paths.
  • Using deny-by-default behavior when a resource, category, or permission relationship cannot be resolved.
  • Limiting editor privileges and separating attachment administration from broader FAQ management where practical.

Mitigation generally focuses on enforcing authorization for every attachment

operation on the server side.

Common defensive patterns include:

  • Deriving the target FAQ and category from server-side records rather than trusting identifiers alone.
  • Checking the authenticated user's permissions and category scope before upload, replacement, or deletion.
  • Applying the same authorization policy consistently across create, update, and delete paths.
  • Using deny-by-default behavior when a resource, category, or permission relationship cannot be resolved.
  • Limiting editor privileges and separating attachment administration from broader FAQ management where practical.

How teams detect issues like this

Organizations can look for this issue through:

  • Static analysis and code review of attachment handlers for missing authorization checks after resource lookup.
  • Review signals such as direct use of request-supplied IDs in upload or delete operations.
  • Tests that attempt cross-category access with valid authenticated editor accounts.
  • Audit logging and alerting for attachment actions involving resources outside the actor's assigned categories.
  • Policy enforcement requiring centralized, server-side authorization checks for object-level operations.

Organizations can look for this issue through:

  • Static analysis and code review of attachment handlers for missing authorization checks after resource lookup.
  • Review signals such as direct use of request-supplied IDs in upload or delete operations.
  • Tests that attempt cross-category access with valid authenticated editor accounts.
  • Audit logging and alerting for attachment actions involving resources outside the actor's assigned categories.
  • Policy enforcement requiring centralized, server-side authorization checks for object-level operations.

Sources

SourceLink
github.comgithub.com/thorsten/phpMyFAQ/security/advisories/GHSA-hj8v-cg6r-gg6q
vulncheck.comvulncheck.com/advisories/phpmyfaq-4.2.0-alpha-before-4.2.0-beta-authorization-bypass-in-attachment-administration-endpoints

Frequently asked

questions

Exploitation generally requires an authenticated account with medium-level

editor permissions and category-restricted access. It does not ordinarily

imply that unauthenticated visitors can manage attachments.

A permitted editor may be able to upload files to, or delete attachments

from, FAQs outside the categories assigned to that account by supplying

unauthorized record or attachment identifiers.

Enforce server-side, object-level authorization for every attachment action,

verifying both the requested resource and the user's category scope before

processing the operation.

Use centralized deny-by-default access-control checks, avoid trusting

client-supplied resource ownership, and include cross-tenant or cross-category

authorization tests in automated security testing.

Exploitation generally requires an authenticated account with medium-level

editor permissions and category-restricted access. It does not ordinarily

imply that unauthenticated visitors can manage attachments.

A permitted editor may be able to upload files to, or delete attachments

from, FAQs outside the categories assigned to that account by supplying

unauthorized record or attachment identifiers.

Enforce server-side, object-level authorization for every attachment action,

verifying both the requested resource and the user's category scope before

processing the operation.

Use centralized deny-by-default access-control checks, avoid trusting

client-supplied resource ownership, and include cross-tenant or cross-category

authorization tests in automated security testing.

Find out what's already
exploitable in your codebase.