Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain unprivileged local process (web/CGI)
-
DeliveryReach MySQL Unix socket
-
ExploitConnect as root@localhost without password
-
ExecutionAuthenticate as DB root
-
ImpactRead/modify all databases and create privileged accounts
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V13 - Configuration Default permission hardening
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an existing local, unprivileged foothold on the host (per CVSS AV:L/PR:L) AND the NixOS services.mysql module deployed with the mysql (Oracle MySQL) or percona-server package on a channel prior to the 25.11/26.05 fix, with root@localhost still on default password/native authentication rather than auth_socket. Concretely, the local account must be able to reach the MySQL Unix socket or loopback interface. Limiting factors: exploitation is NOT possible remotely (local vector only); it does NOT apply to MariaDB-based services.mysql deployments (secure by default); it does not apply once secureSuperUserByDefault has converted root@localhost to auth_socket or the operator has otherwise set root authentication; and it requires that some lower-trust local process already exists to abuse the passwordless root login. |
| Impact | The vendor CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H, score 8.5) is internally consistent with the description: local vector, low complexity, low privileges (any local account) yielding high confidentiality, integrity, and availability impact over the database. No EPSS score, KEV entry, or published POC was provided, so exploitation-probability signals are absent - this reflects missing telemetry, not confirmed low risk. Practical risk is high where the precondition holds because an existing unprivileged local process (a web/CGI worker) is common on web-serving or multi-tenant hosts, and exploitation is then a single passwordless mysql login. The mitigating factor is that this is strictly local (AV:L): there is no remote/network path, so exposure is bounded to hosts running the vulnerable NixOS MySQL/Percona config alongside lower-trust local processes. Note PR:L means a local foothold is required - this is not remote-unauthenticated despite the high impact. |
| Exploit ScenarioDerived | An attacker controlling a low-privilege local process - for example an exploited PHP/CGI web worker running as the www or nobody user on a NixOS host running services.mysql with the mysql package - simply runs 'mysql -u root' over the local socket and is accepted as root@localhost with no password. From there they read or modify every database, create new privileged DB accounts, or abuse MySQL file/UDF features to escalate further. No public POC is needed since exploitation is a single native mysql client command. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 15, 2026
Local privilege escalation to MySQL root in the NixOS services.mysql module (Nixpkgs, before the 25.11 and 26.05 channel fixes) lets any unprivileged local account - including web, CGI, or other service processes on the same host - authenticate as the database root@localhost user with no password when the module is deployed with the mysql or percona-server package. Because the module initialized root@localhost without socket or password authentication, the DBMS trusted any local connection as root, granting full read/write control over all databases. No public exploit code has been identified at time of analysis and it is not in CISA KEV, but exploitation is trivial for any local process meeting the precondition.
RemediationAI
Vendor-released patch: update Nixpkgs/NixOS to the fixed 25.11 or 26.05 channel and rebuild, applying the services.mysql module change that sets root@localhost to auth_socket authentication for mysql and percona-server (see advisory GHSA-6qxx-6rg8-c4p8 and PR https://github.com/NixOS/nixpkgs/pull/534254). The new services.mysql.secureSuperUserByDefault option defaults to true and, for stateVersion 26.11+, auto-remediates existing insecure instances; on older stateVersions the module only emits a warning, so operators of pre-existing databases should manually run 'ALTER USER root@localhost IDENTIFIED WITH auth_socket;' as the DB superuser after confirming the system root user can still authenticate via the socket. If you cannot update immediately, manually convert root@localhost to auth_socket (side effect: only the OS root account, not password logins, can act as DB root - update automation that logged in as root with a password), or set a strong password on root@localhost via ALTER USER (side effect: breaks scripts expecting passwordless root). Additionally restrict access to the MySQL Unix socket and bind MySQL to loopback only so untrusted local processes cannot reach it, though this does not help against processes already on the same host with socket access. Migrating the service to MariaDB is also an option, as it is not vulnerable.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected component is the NixOS module nixos/modules/services/databases/mysql.nix in Nixpkgs, which declaratively provisions MySQL (Oracle MySQL) or Percona Server instances. The root cause is CWE-276 (Incorrect Default Permissions): during first-time database initialization the module left root@localhost using the default mysql_native_password authentication with an empty credential rather than the auth_socket (Unix socket peer-credential) plugin. With auth_socket, MySQL verifies the connecting OS user via the local socket and only lets the actual system root assume DB root; without it, any local user who can reach the MySQL Unix socket or loopback is accepted as root@localhost. The upstream fix adds a services.mysql.secureSuperUserByDefault option (default true) that runs 'ALTER USER root@localhost IDENTIFIED WITH auth_socket;' at initialization and attempts to remediate existing insecure deployments; it explicitly excludes MariaDB, which already ships with auth_socket for root by default.
Know when Nixpkgs 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:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Any local account can log in as MySQL root over the socket, so AV:L/AC:L/PR:L/UI:N with full C/I/A over the database; scope unchanged as impact stays within the DBMS.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Nixpkgs is a collection of software packages that can be installed with the Nix package manager. Prior to the 25.11 and 26.05 channel fixes, the NixOS module for MySQL services.mysql initializes the MySQL database in a way that allows local users, such as unprivileged web or CGI processes on the same host, to log in as the root user without a password when the service is used with mysql or percona-server. This issue is fixed in the 25.11 and 26.05.
Executive ViewAI
NixOS deployments using mysql or percona-server packages in Nixpkgs channels before 25.11 and 26.05 expose all local system accounts and processes-including web services, CGI handlers, and unprivileged daemons-to unauthenticated root-level database access. Any compromised application or untrusted service on the same host can gain complete read/write control of all databases without credentials, creating immediate risk of data breach, corruption, or ransomware in multi-tenant and microservice environments.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict shell access and reduce privilege scope of local service accounts on vulnerable hosts; (2) Implement OS-level controls (SELinux, AppArmor, seccomp) to block unprivileged process access to MySQL sockets; (3) Apply database-level privilege revocation for root@localhost and require authentication for all database users; (4) Implement network segmentation to isolate MySQL services from untrusted workloads; (5) Enable MySQL audit logging to detect unauthorized root access attempts.
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
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
EUVD-2026-44690
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB