Skip to main content

phpMyFAQ CVE-2026-46363

| EUVDEUVD-2026-30598 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-05-15 VulnCheck GHSA-h36g-93qx-rxgr
5.1
CVSS 4.0 · NVD
View

Attack ChainAIDerived

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

  1. Recon
    Obtain low-privilege account with FAQ_ADD permission
  2. Delivery
    Acquire valid CSRF token from authenticated session
  3. Exploit
    Craft FAQ with <script> payload in question/answer
  4. Install
    Submit via /admin/api/faq/create endpoint
  5. C2
    Payload passes through encode-decode sanitization bypass
  6. Execute
    Malicious FAQ stored in database
  7. Impact
    Victim users browse FAQ or search results
  8. Step 8
    Stored JavaScript executes in victim browsers

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Attacker must possess an authenticated phpMyFAQ account with FAQ_ADD permission assigned (PR:L). This permission is typically granted to content editors, FAQ managers, or support staff roles - not available to anonymous users or default user accounts. The vulnerability exists in both FAQ creation (/admin/api/faq/create) and update (/admin/api/faq/update) endpoints, both requiring valid CSRF tokens for the authenticated session. Attack complexity is low (AC:L) with no special server configuration required - default phpMyFAQ installations are vulnerable. User interaction is required (UI:R) because stored payloads only execute when other users view the malicious FAQ through the web interface or search results. The changed scope (S:C) means impact extends beyond the attacker's privilege level to affect all site visitors including administrators. Exploitation is NOT limited by network location (AV:N allows remote attack), server configuration, or specific deployment modes. The key limiting factor is the FAQ_ADD permission requirement - organizations that restrict FAQ editing to highly trusted accounts have reduced exposure, while those with distributed content management models face higher risk.

Impact

CVSS 5.4 (Medium) reflects network accessibility (AV:N) with low attack complexity (AC:L) but requires authenticated access with low privileges (PR:L) and user interaction (UI:R). The changed scope (S:C) is critical - it indicates the vulnerability can impact resources beyond the vulnerable component's security scope, meaning an attacker with FAQ editor permissions can execute JavaScript in the security context of all site visitors, including administrators. The confidentiality and integrity impacts are rated Low (C:L/I:L) with no availability impact (A:N), typical for XSS that can steal session tokens or perform actions as the victim but doesn't directly crash systems. Real-world risk assessment factors: (1) Authentication requirement significantly reduces attack surface compared to unauthenticated XSS - attacker must first obtain or compromise an account with FAQ_ADD permission, (2) User interaction requirement (UI:R) means victims must view the malicious FAQ, but this is highly likely in a FAQ system's normal usage patterns, (3) Publicly available exploit code exists via the GitHub security advisory GHSA-f5p7-2c9q-8896 with working proof-of-concept curl commands and payload examples, lowering exploitation barrier, (4) No CISA KEV listing suggests no confirmed mass exploitation campaigns, but stored XSS in content management systems is a proven attack vector for session hijacking and privilege escalation. The encode-decode bypass demonstrates sophisticated understanding of the sanitization logic, indicating this may be researcher-discovered rather than attacker-disclosed. Priority should be high for internet-facing phpMyFAQ installations with multiple user roles, moderate for internal-only deployments with trusted editors. Patch availability in version 4.1.2 provides clear remediation path.

Exploit ScenarioDerived

An attacker with a low-privilege account possessing FAQ_ADD permission (such as a content editor or support staff member) crafts a malicious FAQ entry containing a <script> tag in the question or answer field. The payload is designed to steal session cookies or perform actions as authenticated users. When legitimate site visitors or administrators browse the FAQ section or use the search functionality, the stored JavaScript executes in their browser context with their privileges, potentially exfiltrating authentication tokens to attacker-controlled infrastructure or creating administrative accounts. Publicly available proof-of-concept code from GHSA-f5p7-2c9q-8896 demonstrates the exact curl command and JSON payload structure required, including valid CSRF token handling, significantly lowering technical barriers for exploitation.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – May 15, 2026

Stored cross-site scripting in phpMyFAQ versions prior to 4.1.2 allows authenticated users with FAQ_ADD permission to inject malicious JavaScript into FAQ questions and answers that execute in all visitors' browsers. The vulnerability exploits an encode-decode cycle where FILTER_SANITIZE_SPECIAL_CHARS encoding is immediately reversed by html_entity_decode(), bypassing Filter::removeAttributes() which only strips HTML attributes but not tags like <script>. Twig templates render this content with the |raw filter, executing stored payloads. CVSS 5.4 indicates network-accessible attack requiring low-privilege authentication and user interaction, with changed scope enabling cross-user impact. EPSS data not provided; no CISA KEV listing indicates no confirmed widespread exploitation at time of analysis.

RemediationAI

Upgrade to phpMyFAQ version 4.1.2 immediately, which addresses the encode-decode bypass and implements proper tag-level sanitization. For Composer-managed installations, run 'composer require thorsten/phpmyfaq:^4.1.2' or 'composer update thorsten/phpmyfaq' depending on package naming in composer.json. Verify the fix by checking FaqController.php no longer calls html_entity_decode() before sanitization, or that Filter::removeAttributes() has been replaced with proper HTML tag filtering (exact fix implementation not detailed in advisory). If immediate patching is not feasible, implement compensating controls with the following trade-offs: (1) Revoke FAQ_ADD permission from all users except a single trusted administrator account until patching is complete - this eliminates the PR:L attack vector but may disrupt FAQ management workflows in organizations with distributed content editors, (2) Remove the |raw filter from faq.twig and search.twig templates and replace with Twig's default auto-escaping - this prevents JavaScript execution but will cause existing FAQ content containing legitimate HTML formatting to display as escaped entities, breaking intended formatting, (3) Implement Web Application Firewall rules to block <script>, <iframe>, <object>, and <embed> tags in POST requests to /admin/api/faq/create and /admin/api/faq/update endpoints - effective but may be bypassed by encoding variations or other dangerous tags not in the blocklist. Full remediation guidance at GitHub advisory https://github.com/thorsten/phpMyFAQ/security/advisories/GHSA-f5p7-2c9q-8896.

Affected VersionsENISA

phpMyFAQ 0 <4.1.2
phpMyFAQ 0 <4.1.2

Affected Packages

composer phpmyfaq/phpmyfaq fix: 4.1.2
composer thorsten/phpmyfaq fix: 4.1.2
euvd phpmyfaq fix: 4.1.2

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

phpMyFAQ is a PHP-based FAQ management system using Twig templating. This CWE-79 (Improper Neutralization of Input During Web Page Generation) vulnerability stems from a flawed sanitization architecture in FaqController.php. The code applies htmlspecialchars() via FILTER_SANITIZE_SPECIAL_CHARS to convert angle brackets to HTML entities, then immediately calls html_entity_decode() to reverse the encoding before passing content to Filter::removeAttributes(). This attribute-stripping function uses regex patterns to remove event handlers and style attributes but performs no tag-level validation, allowing <script>, <iframe>, <object>, and <embed> tags to persist. The stored payloads are rendered through faq.twig and search.twig templates using Twig's |raw filter, which explicitly disables auto-escaping. Affected CPE is cpe:2.3:a:thorsten:phpmyfaq:*:*:*:*:*:*:*:* for versions ≤4.1.1. Both Composer package names (composer/phpmyfaq and thorsten/phpmyfaq) are affected, suggesting namespace migration in the project's history.

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

NVD PRIMARY 5.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from NVD · only source for this CVE.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

Lifecycle Timeline

2
CVSS changed
May 28, 2026 - 16:22 NVD
5.4 (MEDIUM) 5.1 (MEDIUM)
Patch available
May 15, 2026 - 20:02 EUVD

DescriptionCVE.org

phpMyFAQ before 4.1.2 contains a stored cross-site scripting vulnerability in FAQ creation and update endpoints that bypass sanitization through encode-decode cycles. The vulnerability allows authenticated attackers with FAQ_ADD permission to inject malicious script tags via question or answer parameters, which execute in every visitor's browser when FAQ content is rendered with the raw Twig filter.

Threat Intelligence Overview

EPSS Score
0.0%
Top 92% exploitable
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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