HexBrain

Browse / CVEs / CVE-2021-39226

CVE-2021-39226· grafana / grafana· CWE-287

Grafana Snapshot - Authentication Bypass

Exploited in the wild. Listed by CISA on 2022-08-25; known to be used by ransomware.

highseverity
7.3CVSS score
99.9%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it

Grafana instances up to 7.5.11 and 8.1.5 allow remote unauthenticated users to view the snapshot associated with the lowest database key by accessing the literal paths /api/snapshot/:key or /dashboard/snapshot/:key. If the snapshot is in public mode, unauthenticated users can delete snapshots by accessing the endpoint /api/snapshots-delete/:deleteKey. Authenticated users can also delete snapshots by accessing the endpoints /api/snapshots-delete/:deleteKey, or sending a delete request to /api/snapshot/:key, regardless of whether or not the snapshot is set to public mode (disabled by default).

Impact

An attacker can bypass authentication and gain unauthorized access to Grafana Snapshot feature.

Fix

This issue has been resolved in versions 8.1.6 and 7.5.11. If you cannot upgrade you can block access to the literal paths: /api/snapshots/:key, /api/snapshots-delete/:deleteKey, /dashboard/snapshot/:key, and /api/snapshots/:key. They have no normal function and can be disabled without side effects.

How to confirm it

Send: GET {{BaseURL}}/api/snapshots/:key ; GET {{BaseURL}}/dashboard/snapshot/:key
Positive when: contains "\"isSnapshot\":true" AND status 200

Run it with nuclei: nuclei -id CVE-2021-39226 -u <target>. This check is not marked as verified by its authors.

The full check
id: CVE-2021-39226

info:
  name: Grafana Snapshot - Authentication Bypass
  author: Evan Rubinstein,matejsmycka
  severity: high
  description: Grafana instances up to 7.5.11 and 8.1.5 allow remote unauthenticated users to view the snapshot associated with the lowest database key by accessing the literal paths /api/snapshot/:key or /dashboard/snapshot/:key. If the snapshot is in public mode, unauthenticated users can delete snapshots by accessing the endpoint /api/snapshots-delete/:deleteKey. Authenticated users can also delete snapshots by accessing the endpoints /api/snapshots-delete/:deleteKey, or sending a delete request to /api/snapshot/:key, regardless of whether or not the snapshot is set to public mode (disabled by default).
  impact: |
    An attacker can bypass authentication and gain unauthorized access to Grafana Snapshot feature.
  remediation: 'This issue has been resolved in versions 8.1.6 and 7.5.11. If you cannot upgrade you can block access to the literal paths: /api/snapshots/:key, /api/snapshots-delete/:deleteKey, /dashboard/snapshot/:key, and /api/snapshots/:key. They have no normal function and can be disabled without side effects.'
  reference:
    - https://github.com/advisories/GHSA-69j6-29vr-p3j9
    - https://nvd.nist.gov/vuln/detail/CVE-2021-39226
    - https://github.com/grafana/grafana/commit/2d456a6375855364d098ede379438bf7f0667269
    - https://grafana.com/docs/grafana/latest/release-notes/release-notes-8-1-6/
    - http://www.openwall.com/lists/oss-security/2021/10/05/4
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
    cvss-score: 7.3
    cve-id: CVE-2021-39226
    cwe-id: CWE-287
    epss-score: 0.99933
    epss-percentile: 0.9997
    cpe: cpe:2.3:a:grafana:grafana:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: grafana
    product: grafana
    shodan-query:
      - title:"Grafana"
      - cpe:"cpe:2.3:a:grafana:grafana"
      - http.title:"grafana"
    fofa-query:
      - title="grafana"
      - app="grafana"
    google-query: intitle:"grafana"
  tags: cve2021,cve,grafana,kev,vkev,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/api/snapshots/:key"
      - "{{BaseURL}}/dashboard/snapshot/:key"

    matchers-condition: and
    matchers:
      - type: word
        words:
          - '"isSnapshot":true'

      - type: status
        status:
          - 200

References

Use this check only on systems you are authorised to test. Where the data comes from