/

CVE-2026-97380

Severity:

HIGH RISK

(8.8)

Authorization Bypass (CWE-863) in MariaDB GRANT PROXY

CVE-2026-97380

Analyzed

Vulnerability type

Category:

Authorization Bypass

CWE:

CWE-620, CWE-863

Impact:

Unauthorized Account Password Modification

Severity:

HIGH RISK

(8.8)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A privilege-checking flaw in MariaDB's GRANT PROXY statement mishandles an IDENTIFIED clause containing an empty password. A low-privileged attacker who can reference another account may exploit this authorization error to change that account's password and potentially gain access to it.

A privilege-checking flaw in MariaDB's GRANT PROXY statement mishandles an IDENTIFIED clause containing an empty password. A low-privileged attacker who can reference another account may exploit this authorization error to change that account's password and potentially gain access to it.

Affected context

The issue occurs in MariaDB server deployments where the GRANT PROXY statement is available and a grantor can name another database account. It affects the handling of an IDENTIFIED clause with an empty password, particularly when privilege checks distinguish between omitted authentication details and an explicitly empty password. The vulnerable behavior spans several supported MariaDB release lines before their respective security fixes.

The issue occurs in MariaDB server deployments where the GRANT PROXY statement is available and a grantor can name another database account. It affects the handling of an IDENTIFIED clause with an empty password, particularly when privilege checks distinguish between omitted authentication details and an explicitly empty password. The vulnerable behavior spans several supported MariaDB release lines before their respective security fixes.

Exploit preconditions

  • Attack surface: SQL privilege-management functionality exposed through the MariaDB server
  • Required access: A low-privileged database account able to issue the relevant GRANT PROXY statement and reference another account
  • Trigger point: Processing the statement with an IDENTIFIED clause containing an empty password
  • Why exploitation is possible: MariaDB interprets the empty password as if authentication were unspecified, causing authorization checks to evaluate the wrong grantor privileges
  • Attack surface: SQL privilege-management functionality exposed through the MariaDB server
  • Required access: A low-privileged database account able to issue the relevant GRANT PROXY statement and reference another account
  • Trigger point: Processing the statement with an IDENTIFIED clause containing an empty password
  • Why exploitation is possible: MariaDB interprets the empty password as if authentication were unspecified, causing authorization checks to evaluate the wrong grantor privileges

Why this happens

The underlying bug is an authorization logic error in the interpretation of authentication clauses. Treating an explicitly empty password as equivalent to an omitted authentication specification changes the privilege-checking path and may allow a requester to perform an account-management operation outside its intended authority. This maps primarily to CWE-863: Incorrect Authorization and is also related to CWE-620: Unverified Password Change, because an unauthorized actor may be able to set another account's password without the expected authorization validation.

The underlying bug is an authorization logic error in the interpretation of authentication clauses. Treating an explicitly empty password as equivalent to an omitted authentication specification changes the privilege-checking path and may allow a requester to perform an account-management operation outside its intended authority. This maps primarily to CWE-863: Incorrect Authorization and is also related to CWE-620: Unverified Password Change, because an unauthorized actor may be able to set another account's password without the expected authorization validation.

Potential impact

  • An attacker may change the password of another database account
  • Unauthorized access to the targeted account may become possible
  • Existing database authorization boundaries could be bypassed
  • Sensitive data may be accessed or modified through the compromised account
  • Administrative or application-service accounts could be abused for broader database actions
  • An attacker may change the password of another database account
  • Unauthorized access to the targeted account may become possible
  • Existing database authorization boundaries could be bypassed
  • Sensitive data may be accessed or modified through the compromised account
  • Administrative or application-service accounts could be abused for broader database actions

General mitigation guidance

Mitigation should focus on ensuring that authentication attributes are interpreted distinctly and that privilege checks are performed against the correct grantor and target account.

Common defensive patterns include:

  • Apply vendor-provided security fixes through the organization's normal patch-management process
  • Restrict access to account and privilege-management statements
  • Enforce least privilege for database users and service identities
  • Avoid granting broad proxy or account-administration capabilities to low-privileged users
  • Treat empty credentials as an explicit, invalid, or separately validated state rather than as an omitted value
  • Monitor and review password changes, proxy grants, and other account-management operations

Mitigation should focus on ensuring that authentication attributes are interpreted distinctly and that privilege checks are performed against the correct grantor and target account.

Common defensive patterns include:

  • Apply vendor-provided security fixes through the organization's normal patch-management process
  • Restrict access to account and privilege-management statements
  • Enforce least privilege for database users and service identities
  • Avoid granting broad proxy or account-administration capabilities to low-privileged users
  • Treat empty credentials as an explicit, invalid, or separately validated state rather than as an omitted value
  • Monitor and review password changes, proxy grants, and other account-management operations

How teams detect issues like this

Organizations can look for this issue and related authorization defects through:

  • Static analysis and code review rules covering empty-versus-absent authentication values
  • Tests that verify privilege checks for every combination of omitted, empty, and non-empty credential fields
  • Database audit logging for GRANT PROXY statements and password changes affecting other accounts
  • Alerts for low-privileged identities attempting account-management operations
  • Policy enforcement that limits proxy grants and password administration to approved roles
  • Automated security testing or database review tools that validate authorization boundaries under malformed and edge-case inputs

Organizations can look for this issue and related authorization defects through:

  • Static analysis and code review rules covering empty-versus-absent authentication values
  • Tests that verify privilege checks for every combination of omitted, empty, and non-empty credential fields
  • Database audit logging for GRANT PROXY statements and password changes affecting other accounts
  • Alerts for low-privileged identities attempting account-management operations
  • Policy enforcement that limits proxy grants and password administration to approved roles
  • Automated security testing or database review tools that validate authorization boundaries under malformed and edge-case inputs

Sources

SourceLink
github.comgithub.com/MariaDB/server/commit/dbd60d0ad8daa2d01050346aa50b7b102490e456
github.comgithub.com/MariaDB/server/releases/tag/mariadb-10.11.19
github.comgithub.com/MariaDB/server/releases/tag/mariadb-10.6.28
github.comgithub.com/MariaDB/server/releases/tag/mariadb-11.4.13
github.comgithub.com/MariaDB/server/releases/tag/mariadb-11.8.9
github.comgithub.com/MariaDB/server/releases/tag/mariadb-12.3.3
github.comgithub.com/MariaDB/server/releases/tag/mariadb-13.0.2
github.comgithub.com/MariaDB/server/security/advisories/GHSA-625w-4hgq-qwmr
jira.mariadb.orgjira.mariadb.org/browse/MDEV-40470

Frequently asked

questions

It may be exploitable over the network when a low-privileged database account can connect to MariaDB and issue the affected statement. Network reachability alone is not sufficient; the account must also have the relevant statement privileges and be able to name another account.

The attacker needs authenticated database access with enough authority to invoke the affected GRANT PROXY operation. The flaw is significant because the authorization check may incorrectly assess which grantor privileges apply.

Use a MariaDB security-fixed release through the organization's standard patch process, restrict proxy and account-management privileges, and ensure that empty authentication values cannot bypass authorization checks.

Test authorization logic with omitted, empty, malformed, and alternate identity values; apply least privilege; and monitor account password changes and proxy-grant activity for unexpected operations.

It may be exploitable over the network when a low-privileged database account can connect to MariaDB and issue the affected statement. Network reachability alone is not sufficient; the account must also have the relevant statement privileges and be able to name another account.

The attacker needs authenticated database access with enough authority to invoke the affected GRANT PROXY operation. The flaw is significant because the authorization check may incorrectly assess which grantor privileges apply.

Use a MariaDB security-fixed release through the organization's standard patch process, restrict proxy and account-management privileges, and ensure that empty authentication values cannot bypass authorization checks.

Test authorization logic with omitted, empty, malformed, and alternate identity values; apply least privilege; and monitor account password changes and proxy-grant activity for unexpected operations.

Find out what's already
exploitable in your codebase.