Skip to main content

phpMyFAQ EUVDEUVD-2026-86289

| CVE-2026-56738 HIGH
SQL Injection (CWE-89)
2026-09-24 GitHub_M GHSA-rw77-vq4g-x3hp
8.5
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as phpMyFAQ administrator
  2. Delivery
    Open stop-word management feature
  3. Exploit
    Submit crafted SQL in 'word' parameter
  4. Execution
    Break out of INSERT string literal
  5. Persist
    Execute arbitrary SQL (drop/exfil/modify)
  6. Impact
    Compromise database integrity and availability

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Persistence

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

Exploitation Conditions

Requires an authenticated administrator account with access to the phpMyFAQ stop-word management feature (the code path invoking StopWords::add()) on any version prior to 4.1.6. The flaw is isolated to the add()/INSERT path - the update() path is not vulnerable because it correctly escapes input. Limiting factors: administrative privilege is mandatory (PR:H), so exposure is confined to trusted operators or compromised admin sessions; there is no unauthenticated or low-privilege path, and no user interaction by a victim is needed. Default configurations are affected once an admin can reach the stop-word UI.

Impact

This is a real but moderate-priority issue whose severity is bounded by its authentication requirement. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:H/UI:N, vendor score 8.5) confirms network reachability with no user interaction, but PR:H means only an authenticated administrator who can reach the stop-word management feature can exploit it - the description and the vector agree on this, so there is no source conflict on the access model. No EPSS score, no CISA KEV listing, and no public exploit code were provided, so exploitation is 'no public exploit identified at time of analysis' - this is not a mass-exploitation candidate. The high vendor score is driven by the CIA impact (arbitrary SQL: DROP TABLE, data exfiltration, row modification), not by ease of access. A key nuance: because the attacker must already be an application administrator, much of the injected capability overlaps with privileges the account already holds, which is why the real-world urgency is lower than an 8.5 unauthenticated SQLi would imply. The vendor rated VA:N (no availability impact), which conflicts with the description's explicit mention of dropping tables - that omission is worth verifying, as DROP TABLE is a clear availability impact. Priority: patch during normal maintenance; not an emergency unless admin accounts are shared, weakly protected, or exposed to lower-trust operators.

Exploit ScenarioDerived

An authenticated phpMyFAQ administrator (or an attacker who has phished/compromised an admin session) navigates to the stop-word management feature and submits a crafted 'word' value such as "test', 'en'); DROP TABLE faqstopwords; --" that breaks out of the SQL string literal in the unescaped sprintf-built INSERT. The injected SQL executes with the application's database privileges, allowing table drops, data exfiltration, or modification of other rows. No public exploit code was provided, but the vendor's own regression test embeds a working DROP TABLE payload, illustrating exact exploitation.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 public PoC Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 24, 2026

SQL injection in phpMyFAQ versions prior to 4.1.6 lets an authenticated administrator inject arbitrary SQL through the stop-word management feature by supplying a crafted "word" value that breaks out of the string literal built in StopWords::add(). The flaw is confined to the add()/INSERT code path - the sibling update() method escapes the same input correctly - and because it requires a high-privileged admin session (PR:H) plus access to the stop-word UI, exposure is bounded to trusted operators or compromised admin credentials rather than unauthenticated attackers. Successful exploitation permits reading, modifying, or deleting arbitrary rows and tables within the phpMyFAQ database; no public exploit code has been identified at time of analysis, and the vendor-released patch is version 4.1.6.

RemediationAI

Upgrade to phpMyFAQ 4.1.6 or later - the vendor-released patch that adds $this->configuration->getDb()->escape($word) to StopWords::add(); the specific fixing change is commit d56ef5d75c3c007de095bc4c13b470c7ac783f0f, documented in advisory GHSA-rw77-vq4g-x3hp (https://github.com/thorsten/phpMyFAQ/security/advisories/GHSA-rw77-vq4g-x3hp). If upgrading immediately is not possible, compensating controls must target the admin-only attack surface: restrict access to the stop-word management functionality (and the admin backend generally) to a minimal set of trusted accounts, enforce strong credentials, MFA and session hardening on those accounts to blunt credential-compromise paths, and review the database user assigned to phpMyFAQ so it holds only the privileges the application truly needs - removing DROP/CREATE/ALTER and cross-schema rights limits the blast radius of injected statements at the cost of potentially breaking legitimate maintenance operations. A WAF or reverse-proxy rule that blocks SQL metacharacters in stop-word submission requests can add friction but is trivially bypassable with encoding tricks and should not be treated as a substitute for the patch. There are no reported unauthenticated or low-privilege paths, so eliminating anonymous or guest access to admin endpoints is a low-cost structural mitigation.

Affected VersionsENISA

phpMyFAQ < 4.1.6

Affected Packages

composer phpmyfaq/phpmyfaq fix: 4.1.6
composer thorsten/phpmyfaq fix: 4.1.6
euvd phpmyfaq fix: 4.1.6

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/knowledge-base application that stores content in a relational database. The vulnerable routine, StopWords::add(), constructs an SQL INSERT statement with sprintf() and interpolates the caller-supplied stop-word string directly into the query text, omitting the framework's escaping call - the database abstraction layer exposes escape() via the configuration object (configuration->getDb()->escape()), and the analogous StopWords::update() path already applies it. This is a classic CWE-89 improper neutralization of special elements used in an SQL command: the missing escaping means a value such as a quote character terminates the intended string literal and lets the attacker append arbitrary SQL. The upstream fix in commit d56ef5d75c3c007de095bc4c13b470c7ac783f0f is a one-line change wrapping $word in escape() and is accompanied by a regression test (StopWordsTest::testAddEscapesSqlInjectionPayload) that inserts a payload like "test', 'en'); DROP TABLE faqstopwords; --" and asserts it round-trips verbatim as a literal stop word while the table remains usable. CPE data (cpe:2.3:a:thorsten:phpmyfaq:*:*:*:*:*:*:*:*) identifies the Thorsten Rinne-maintained phpMyFAQ package across all builds preceding the fix.

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

Vendor (GitHub_M) PRIMARY 8.5 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 7.2 HIGH

Network-reachable admin feature with no user interaction (PR:H, AC:L); full SQL injection yields data disclosure (C:H), row modification (I:H), and table drops (A:H), unlike the vendor's VA:N.

3.1 AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Sep 24, 2026 - 18:02 EUVD
CVE Published
Sep 24, 2026 - 16:35 cve.org
HIGH 8.5

DescriptionCVE.org

phpMyFAQ is an open source FAQ web application. The StopWords::add() method inversions prior to 4.1.6 builds a SQL INSERT statement using sprintf() and inserts the user-supplied stop word value directly into the query string without calling the application's database escaping function on it. A sibling method, StopWords::update(), which modifies an existing stop word, correctly escapes the same kind of input. The omission is isolated to the add() (insert) code path. An authenticated administrator who can reach the stop-word management feature can submit a crafted value as the "word" parameter that breaks out of the SQL string literal and injects arbitrary SQL, including statements to drop tables, exfiltrate data, or modify other rows in the database. Version 4.1.6 fixes the issue.

Technical POC Analysis

CWE-89 (Improper Neutralization of Special Elements used in an SQL Command).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

1 public PoC link from github

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

A SQL injection vulnerability in phpMyFAQ prior to version 4.1.6 allows someone holding an authenticated administrator session to run arbitrary SQL against the application's database through the stop-word management screen, meaning FAQ content, configuration, and other stored data could be read, altered, or deleted. Because exploitation requires high-privileged administrator access rather than an anonymous foothold, the realistic exposure is limited to trusted operators or to attackers who have already compromised admin credentials, which materially reduces the likelihood of external abuse. Leadership should still prioritize remediation because the affected knowledge base is often customer-facing and the flaw undermines the integrity of its data; version 4.1.6 is the vendor-released fix and no public exploit code has been identified at time of analysis.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 84% exploitable
Prevalence
Low
niche self-hosted open-source FAQ web application, no broad enterprise footprint
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium

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 HIGH
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Medium

Priority Score

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

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

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