Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessHijack valid authenticated phpMyAdmin session
-
ExploitPOST key=2fa with null JSON to /config/set
-
ExecutionSetConfigController removes 2FA without re-authentication
-
ImpactSubsequent login requires only MySQL password
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Password change verification
|
| Exploitation Conditions | Requires an already-authenticated phpMyAdmin session - either the attacker's own account or, per the description, a hijacked session (PR:L), so this is not remote-unauthenticated. The concrete trigger is a POST to the /config/set route (SetConfigController) carrying key=2fa with a null JSON value, reachable because the controller performed no re-authentication before applying the change. The attack only yields value when the target account actually has two-factor authentication enabled (otherwise there is nothing to strip); there is no user-interaction requirement (UI:N) and no non-default configuration beyond having 2FA configured. The practical limiting factor is obtaining the valid/hijacked session in the first place. |
| Impact | This is a medium-severity, authentication-dependent flaw rather than a drop-everything emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N, score 5.3) confirms a network-reachable, low-complexity issue but with PR:L - an attacker must already hold an authenticated (or hijacked) phpMyAdmin session - and only a Low integrity impact (VC:N, VA:N), consistent with CWE-620 (missing re-authentication) rather than code execution or data theft. There is no CISA KEV listing and no EPSS score in the provided data, so there is no evidence of active or widespread exploitation; the vuln.today Decision label is 'this_month', not act_now/emergency, which aligns with a patch-on-normal-cadence posture. A public technical writeup/advisory reference exists (abraxaslabs research and the VulnCheck advisory), but the input does not mark it as confirmed working exploit code. The main nuance: the pre-conditions (valid session + target having 2FA enabled) mean this is a privilege/defense-in-depth weakening that is only valuable to an attacker who has already achieved session access, so real-world urgency is moderate and should be weighted by whether 2FA is widely relied upon in the deployment. |
| Exploit ScenarioDerived | An attacker who has stolen or hijacked a valid phpMyAdmin session (for example via a leaked session cookie or XSS) sends a POST to index.php?route=/config/set with key=2fa and a null JSON value, which SetConfigController accepts without requiring re-authentication. This silently strips the account's two-factor authentication, so any subsequent login - including by the legitimate user or the attacker - needs only the MySQL password, removing the second factor. A public technical reference describing the technique exists, but it is not verified as working exploit code in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
phpMyAdmin through 5.2.3 lets an authenticated user disable two-factor authentication on an account by POSTing key=2fa with a null JSON value to the /config/set route handled by SetConfigController, which applies the change without requiring the session to re-authenticate; an attacker holding a valid or hijacked session can therefore strip 2FA and leave only the MySQL password guarding subsequent logins. Severity is medium (vendor score 5.3; independently assessed as CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N), the technique only yields anything against accounts that actually have 2FA enabled, and the practical limiting factor is obtaining the session in the first place. A public research writeup of the flaw exists but is not verified as working exploit code, there is no CISA KEV entry, and the vendor fix is delivered as two Git commits plus pull request 19087 rather than a tagged release confirmed in the supplied data.
RemediationAI
Apply the upstream fix, which is published as commits b2a3e41f1e9ce42d1ee3f07a91f476029987799f and 6482dfa28bd56d515f482b008b194a516646fe1b and as pull request https://github.com/phpmyadmin/phpmyadmin/pull/19087 in the phpmyadmin/phpmyadmin repository; the change deletes the generic /config/get and /config/set controllers and the config.ts client helper and substitutes a dedicated navigation-width controller. Patch status beyond those PR/commit references is 'patch available per vendor advisory' - no tagged fixed release version is identified in the supplied data, so confirm the release that contains these commits with the vendor before relying on a specific version number. Where the update cannot be applied immediately, the effective compensating control is to block POST requests to index.php?route=/config/set at the reverse proxy or WAF, accepting the side effect that legitimate client-side preference persistence routed through the same endpoint (for example navigation width, as used by the deleted config.ts helper) stops working; additionally, hunt proxy and phpMyAdmin access logs for POSTs to route=/config/set carrying key=2fa, and for any hit treat the session as compromised - force re-authentication, re-enroll the affected account's second factor, and rotate the underlying MySQL credentials. Because exploitation requires an existing session, shortening session lifetimes and invalidating sessions after privilege-relevant changes reduces exposure, at the cost of more frequent logins for administrators.
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 is a PHP web front end for administering MySQL and MariaDB, with state carried in an authenticated browser session. CWE-620 (Unverified Password Change) is the relevant class: a security-critical account setting was mutated through the same generic configuration path used for cosmetic preferences, with no re-authentication and no allowlist separating the two. Concretely, the client helper setConfigValue in resources/js/src/modules/functions/config.ts posted arbitrary key/value pairs to index.php?route=/config/set, backed by Config\SetConfigController, and that controller accepted key=2fa with a null JSON value, clearing the account's second factor. The upstream patch removes the generic Config\GetConfigController and Config\SetConfigController wiring from app/services_controllers.php, deletes the config.ts client helper entirely, and replaces the endpoint with a narrowly scoped Navigation\UpdateNavWidthConfigController, so the broad server-side key/value setter no longer exists to be abused. The supplied evidence describes the request shape and the missing re-authentication but does not detail any further preconditions beyond an existing session and 2FA being configured on the targeted account.
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:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Needs an authenticated/hijacked session (PR:L) over the network with low complexity and no UI; impact is limited to integrity (silent 2FA removal), with no confidentiality or availability loss.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
phpMyAdmin through 5.2.3 contains a missing re-authentication vulnerability that allows authenticated attackers to remove two-factor authentication by posting the 2fa key to /config/set. Attackers holding a hijacked session can submit key=2fa with a null JSON value to SetConfigController, stripping 2FA so later logins require only the MySQL password.
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
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-113809
GHSA-vp6j-3f4x-2qrh
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB