Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach unauthenticated setup/validate.php endpoint
-
ExploitPOST attacker-chosen host and port
-
ExecutionValidator::testDBConnection() opens outbound MySQL connection
-
ImpactParse returned error messages to infer open internal ports
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires that the phpMyAdmin setup/validate.php endpoint is network-reachable by the attacker; the vulnerability exists because validate.php lacks the setup-disabled guard, so the probe path remains exposed even in deployments that believe setup is disabled. No authentication is required (PR:N). The exploit is a blind/semi-blind SSRF constrained to outbound MySQL-protocol connections, and the attacker's gain is limited to internal port/service enumeration inferred from returned error messages (VC:L); there is no integrity or availability impact. Limiting factors that reduce real-world risk: the setup/ directory must be accessible (many hardened deployments block or remove it after initial configuration), the high attack complexity and present attack requirements (AC:H/AT:P) mean exploitation is not trivially reliable, and output is restricted to error-message-based inference rather than arbitrary response retrieval. |
| Impact | This is a medium-severity, real-but-not-urgent issue. The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:N) scores 6.3 and confirms a network-reachable, unauthenticated vector (PR:N), but the high attack complexity (AC:H) and present attack requirements (AT:P) plus only low confidentiality impact (VC:L, with VI:N/VA:N/SC:N/SI:N/SA:N) reflect that this is a blind/semi-blind SSRF whose yield is limited to inferring internal port state from returned MySQL-protocol error messages - not data theft, code execution, or write access. No EPSS score and no KEV status are present in the input, so there is no signal of active or probabilistic exploitation to weigh; exploitation status is therefore 'no public working exploit identified at time of analysis' (see confidence notes regarding the public write-up). The vuln.today decision label is 'this_month' (not act_now/emergency), which aligns with the medium CVSS and absence of KEV. Net: a genuine SSRF worth patching within the normal monthly cycle, not a high-CVSS-but-low-real-risk false alarm nor a drop-everything emergency. The signals are consistent with each other; the main caveat is that real-world exposure hinges on whether the setup/ endpoint is network-reachable, which is a deployment-dependent condition the CVSS vector does not capture. |
| Exploit ScenarioDerived | An attacker who can reach a phpMyAdmin instance's setup/validate.php endpoint sends a POST request supplying an attacker-chosen host and port; because validate.php lacks the setup-disabled guard, the request reaches Validator::testDBConnection() and opens an outbound MySQL-protocol connection to that target. By varying the host/port and reading the returned connection error messages, the attacker maps reachable internal services and open ports behind the server. A public technical write-up describing the flaw exists, but the input does not confirm working, weaponized exploit code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Server-side request forgery in phpMyAdmin through 5.2.3 lets unauthenticated remote attackers drive the application into outbound MySQL-protocol connections to attacker-chosen hosts and ports via setup/validate.php, which never enforces the setup-disabled guard, so the probe path stays live even on installations where administrators believe setup mode is off. Impact is limited to semi-blind internal reconnaissance: the attacker learns whether a host/port answers the MySQL handshake by reading the differing error messages returned by Validator::testDBConnection(), with low confidentiality impact and no integrity or availability effect. Exploitation is not accidental-territory: it requires the setup directory to be network-reachable, and the high attack complexity and present attack requirements (AC:H/AT:P) mean probing is not trivially reliable; there is no CISA KEV listing and no confirmed active exploitation, though a public research writeup describing the issue exists and is not verified as working exploit code. Severity is medium and the issue is real but not urgent - the vendor has published upstream fixes in commits and a pull request, with a released patched version not independently confirmed in the supplied data.
RemediationAI
Apply the vendor's upstream fix for the setup-controller handling: commit 510e442593af5d4702bbb46cdb45ad51f3a8a9d3, commit 126ac3ac5662ed3171ef3646636348fad3f8e952 and pull request https://github.com/phpmyadmin/phpmyadmin/pull/19156; because these are repository commits and a PR rather than a clearly tagged release, confirm with the project repository or vendor advisory (https://www.vulncheck.com/advisories/phpmyadmin-through-5.2.3-ssrf-via-setup-validate-php-after-setup-disabled) which packaged version carries them before treating an upgrade as complete. Where an immediate upgrade is not possible, the decisive compensating control is reducing reachability of the endpoint, since exploitation requires that setup/validate.php be network-reachable: delete the setup/ directory from the web root after configuration is complete, or, if the installer must stay in place, deny access to the entire setup/ path at the web server (Apache/nginx location or rewrite rules) or restrict it by source IP - trade-off being that legitimate reconfiguration and installer use will then require temporarily re-enabling access. Network egress filtering from the phpMyAdmin host toward internal address ranges and non-application ports also blunts the MySQL-protocol probing primitive but does not remove the flaw and requires an accurate inventory of which database hosts the application legitimately needs. Note that blocking outbound connections alone leaves the unguarded endpoint intact, so it should be layered behind the code fix and the setup-directory removal rather than treated as a substitute.
Affected VersionsENISA
Affected Packages
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
phpMyAdmin's setup/ directory is a PHP web installer that is intended to be usable only while configuration is being written; the installer ships a guard that is supposed to short-circuit requests once setup has been completed, but setup/validate.php (lines 21-35 of the 5.2.3 release) does not carry that guard. The script's purpose is to validate configuration input submitted by the installer, and it forwards attacker-supplied host and port parameters into Validator::testDBConnection() (libraries/classes/Config/Validator.php around line 241), which performs an actual outbound connection attempt using the MySQL client protocol and reports the result via an error message. Because neither an allowlist nor a destination restriction sits between the POST parameters and the connection routine, the endpoint becomes a request-forgery primitive rooted in CWE-918: it is not a full-read SSRF, since the attacker receives only connect/failure inference rather than arbitrary response bodies, and the transport is constrained to MySQL-protocol negotiation, which narrows what can be fingerprinted. The CVSS 4.0 vector rates network reachability with high attack complexity and present attack requirements and no privileges or user interaction, reflecting that the endpoint must be exposed and the response channel is indirect. The upstream remediation adds dependency-injection service definitions for Setup\MainController, Setup\ShowConfigController and Setup\ValidateController, i.e. it restructures the setup controllers so the disabled-setup guard applies consistently, per commits 510e442593af5d4702bbb46cdb45ad51f3a8a9d3 and 126ac3ac5662ed3171ef3646636348fad3f8e952 and pull request 19156.
Know when Phpmyadmin 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
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Unauthenticated network-reachable setup endpoint (PR:N/AV:N), but blind SSRF yielding only error-message-based port inference gives AC:H and C:L with no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
phpMyAdmin through 5.2.3 contains a server-side request forgery vulnerability that allows unauthenticated attackers to trigger outbound connections via setup/validate.php, which lacks the setup-disabled guard. Attackers can POST attacker-chosen host and port values reaching Validator::testDBConnection() to open MySQL-protocol connections and probe internal ports using returned error messages.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
More in Phpmyadmin
View allphpMyAdmin 4.0.x before 4.0.10.16, 4.4.x before 4.4.15.7, and 4.6.x before 4.6.3 does not properly choose delimiters to
phpMyAdmin 3.5.2.2, as distributed by the cdnetworks-kr-1 mirror during an unspecified time frame in 2012, contains an e
phpMyAdmin 3.5.x before 3.5.8 and 4.x before 4.0.0-rc3 allows remote authenticated users to execute arbitrary code via a
An issue was discovered in phpMyAdmin 4.8.x before 4.8.2, in which an attacker can include (view and potentially execute
SQL Injection vulnerability in function getTableCreationQuery in CreateAddField.php in phpMyAdmin 5.x before 5.2.0 via t
An issue was discovered in SearchController in phpMyAdmin before 4.9.6 and 5.x before 5.0.3. Rated critical severity (CV
libraries/plugins/auth/AuthenticationCookie.class.php in phpMyAdmin 4.3.x before 4.3.13.2 and 4.4.x before 4.4.14.1 allo
phpMyAdmin through 5.0.2 allows CSV injection via Export Section. Rated high severity (CVSS 8.8), this vulnerability is
In phpMyAdmin 4 before 4.9.4 and 5 before 5.0.1, SQL injection exists in the user accounts page. Rated high severity (CV
phpMyAdmin 4.8.0 before 4.8.0-1 has CSRF, allowing an attacker to execute arbitrary SQL statements, related to js/db_ope
libraries/common.inc.php in phpMyAdmin 4.0.x before 4.0.10.7, 4.1.x before 4.1.14.8, and 4.2.x before 4.2.13.1 allows re
The Portable phpMyAdmin plugin before 1.3.1 for WordPress allows remote attackers to bypass authentication and obtain ph
EUVD-2026-113808
GHSA-7gqf-2rj6-2m6m
NVD
CVE.org
EPSS
Exploit-DB