Skip to main content

phpMyFAQ CVE-2026-109573

| EUVDEUVD-2026-98156 CRITICAL
SQL Injection (CWE-89)
2026-10-12 VulnCheck GHSA-2v8j-hf72-c5w9
9.2
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Send request to public api/autocomplete
  2. Delivery
    Inject Unicode right single quote in search
  3. Exploit
    Bypass backslash escaping via NO_BACKSLASH_ESCAPES mode
  4. Execution
    Terminate SQL literal and append payload
  5. Impact
    Exfiltrate credentials or drop tables

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

Exploitation requires the backend database (MySQL or MariaDB) to be running in NO_BACKSLASH_ESCAPES SQL mode - this is the explicit, non-default prerequisite that makes PdoMysql::escape()'s backslash-based quote escaping ineffective, and it is reflected as AT:P/AC:H in the CVSS vector. The specific entry point is the search parameter of the api/autocomplete endpoint, and the payload must use a Unicode right single quotation mark (U+2019) that the application later normalizes to an ASCII single quote, bypassing the escaping that already executed. No authentication and no user interaction are needed (PR:N/UI:N), so deployments meeting the SQL-mode condition are exposed to unauthenticated remote attackers. The primary limiting factor is the SQL mode: instances using the default MySQL/MariaDB configuration (where backslash escaping is honored) are not exploitable via this path.

Impact

This is a genuine high-priority issue, not merely a high-CVSS artifact, but with an important caveat embedded in the CVSS 4.0 vector itself. The vector CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H scores 9.2 because it combines network reach, no authentication (PR:N), no user interaction, and full high impact to confidentiality, integrity, and availability (read credentials, modify records, drop tables) via classic SQL injection (CWE-89). However, the elevated attack complexity (AC:H) and the explicit attack requirement (AT:P) are the decisive risk modulators: exploitation only works when the backend MySQL/MariaDB instance runs in NO_BACKSLASH_ESCAPES SQL mode, which is NOT the default configuration. No EPSS score was provided in the input, so exploitation probability cannot be quantified. The vulnerability is NOT listed in CISA KEV, and no public exploit code is referenced in the provided sources (only a GitHub Security Advisory and a VulnCheck advisory, which are disclosure records, not exploit releases). Signals are therefore consistent rather than conflicting: a real, serious unauthenticated SQLi gated by a non-default database mode, disclosed by a reputable finder (VulnCheck) but without confirmed active exploitation. Treat as high priority to patch for any phpMyFAQ deployment, with triage weighting toward instances whose database runs in NO_BACKSLASH_ESCAPES mode.

Exploit ScenarioDerived

An unauthenticated attacker sends an HTTP request to the public api/autocomplete endpoint with a Unicode right single quotation mark (U+2019) in the search parameter; the application normalizes this to an ASCII single quote after the flawed backslash-based escaping in PdoMysql::escape() has already run, so the quote breaks out of the SQL string literal. Because the backend runs in NO_BACKSLASH_ESCAPES mode, the escaping backslashes are treated literally rather than as escapes, allowing the injected quote to terminate the query and append attacker-controlled SQL to read stored credentials and configuration secrets, alter records, or drop tables. No public exploit code is identified in the provided sources, but the disclosure describes the technique in actionable detail.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
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 – Oct 12, 2026

Unauthenticated SQL injection in phpMyFAQ versions prior to 4.1.9 lets remote attackers read credentials and configuration secrets, modify or delete records, or drop tables via the search parameter of the api/autocomplete endpoint. Exploitation is conditional: the backend MySQL or MariaDB instance must be running in NO_BACKSLASH_ESCAPES mode, because PdoMysql::escape() relies on backslash escaping of single quotes that that SQL mode treats literally; the payload additionally uses a Unicode right single quotation mark (U+2019) that the application normalizes to an ASCII quote after escaping has already been applied, bypassing the filter. This is a genuine high-priority issue (CVSS 4.0 base 9.2, AT:P/AC:H reflecting the non-default SQL-mode prerequisite) rather than a high-CVSS artifact, since an attacker who reaches such a deployment needs no authentication and no user interaction; no public exploit code and no confirmed active exploitation were identified at time of analysis, and the primary limiting factor is whether the target database uses the default SQL mode.

RemediationAI

Upgrade to phpMyFAQ 4.1.9, the vendor-released fixed version, which removes the backslash-dependent escaping and closes the normalization bypass; the release is documented in advisory GHSA-98p2-cg7p-h385. As an interim compensating control for deployments that cannot patch immediately, remove NO_BACKSLASH_ESCAPES from the MySQL/MariaDB sql_mode setting (restoring backslash-based escaping and rendering this path non-exploitable) and verify the change in the running configuration - the trade-off is that any other application sharing the database instance that depends on that mode, or any stored data containing literal backslashes, may behave differently after the change. Additionally, block or restrict access to the api/autocomplete endpoint at the reverse proxy for unauthenticated clients, or apply a WAF rule rejecting the U+2019 character and SQL metacharacters in the search parameter; both are partial mitigations because alternate injection paths in the same abstraction layer are not excluded. Note that patching alone does not require the SQL-mode change, so database configuration rollback can be re-evaluated once 4.1.9 is deployed. Monitor database accounts used by phpMyFAQ for unexpected DDL or bulk SELECT activity, and rotate any credentials or configuration secrets stored in the database if compromise is suspected.

Affected VersionsENISA

phpMyFAQ 0 <4.1.9
phpMyFAQ 4.2.0-alpha <4.2.0-beta

Affected Packages

euvd phpmyfaq fix: 4.1.9, 4.2.0-beta

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is a classic CWE-89 SQL injection rooted in an incorrect escaping strategy. phpMyFAQ's PdoMysql::escape() method escapes single quotes by prefixing them with a backslash, an approach that is only valid when the MySQL/MariaDB server honors backslash escape sequences inside string literals. When the server runs with NO_BACKSLASH_ESCAPES enabled, backslashes are ordinary characters, so the injected quote terminates the string and attacker-controlled SQL is parsed. A second, independent weakness compounds this: the api/autocomplete 'search' parameter accepts a Unicode right single quotation mark (U+2019), which is normalized to an ASCII apostrophe by the application only after the escaping routine has run, so the quote introduced by normalization is never escaped. The result is an unauthenticated injection path through a JSON/autocomplete API endpoint, allowing data exfiltration, record manipulation, and destructive DDL. The affected CPE is cpe:2.3:a:thorsten:phpmyfaq:*:*:*:*:*:*:*:* (all releases before the fixed 4.1.9), reported by VulnCheck and detailed in the vendor's GitHub security advisory GHSA-98p2-cg7p-h385.

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 (VulnCheck) PRIMARY 9.2 CRITICAL
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.1 HIGH

Network-reachable unauthenticated endpoint (AV:N/PR:N/UI:N), but AC:H because it depends on the non-default NO_BACKSLASH_ESCAPES mode; SQLi allows reading secrets, modifying records, and dropping tables (C:H/I:H/A:H).

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

Lifecycle Timeline

2
Patch available
Oct 13, 2026 - 02:16 EUVD
CVE Published
Oct 12, 2026 - 22:21 cve.org
CRITICAL 9.2

DescriptionCVE.org

phpMyFAQ before 4.1.9 contains an SQL injection vulnerability in PdoMysql::escape(), which escapes single quotes with backslashes that are treated literally when MySQL or MariaDB runs in NO_BACKSLASH_ESCAPES mode. Unauthenticated attackers can send a Unicode right single quotation mark in the search parameter of api/autocomplete, which is normalized to an ASCII quote, to read credentials and configuration secrets, modify records, or drop tables.

Executive ViewAI

Why It Matters

phpMyFAQ deployments running versions prior to 4.1.9 face a critical SQL injection risk that, under a specific non-default MySQL/MariaDB configuration, could allow attackers to read credentials and configuration secrets, alter or delete data, or drop tables. No vendor-released patch identified at time of analysis, so security leadership should treat this as a high-priority exposure requiring immediate inventory, access restriction, and compensating controls until a fix is released. No public exploit identified at time of analysis, but the potential organizational impact includes credential compromise, data integrity loss, and service disruption.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations include ensuring MySQL/MariaDB is not configured with NO_BACKSLASH_ESCAPES mode, restricting access to the api/autocomplete endpoint, deploying WAF rules to filter SQL injection and U+2019 payloads, applying least-privilege database permissions, rotating exposed credentials, and monitoring logs for suspicious search parameter activity.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Medium
popular open-source FAQ web application, moderate real-world footprint
Data Quality
4 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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
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