CVE-2022-39324: Grafana vulnerable to spoofing originalUrl of snapshots
Grafana is an open-source platform for monitoring and observability. Prior to versions 8.5.16 and 9.2.8, malicious user can create a snapshot and arbitrarily choose the originalUrl parameter by editing the query, thanks to a web proxy. When another user opens the URL of the snapshot, they will be presented with the regular web interface delivered by the trusted Grafana server. The Open original dashboard button no longer points to the to the real original dashboard but to the attacker’s injected URL. This issue is fixed in versions 8.5.16 and 9.2.8.
Other sources
In Grafana, when creating a snapshot, an attacker may manipulate a hidden HTTP parameter to inject a malicious URL in the Open original dashboard” button.
Affected Versions - Grafana <=8.x - Grafana <=9.x
— Red Hat
To create a snapshot (and insert an arbitrary URL) the built-in role Viewer is sufficient. When a dashboard is shared as a local snapshot, the following three fields are offered in the web UI for a user to fill out: • Snapshotname • Expire • Timeout(seconds) After the user confirms creation of the snapshot (i.e. clicks the ”Local Snapshot” button) an HTTP POST request is sent to the Grafana server. The HTTP request contains additional parameters that are not visible in the web UI. The parameter originalUrl is not visible in the web UI, but sent in the HTTP POST request.
The value of the originalUrl parameter is automatically generated. The purpose of the presented originalUrl parameter is to provide a user that views the snapshot the possibility to click on the button in the Grafana web UI and be presented with the dashboard that the snapshot was made out of.
The value of the originalUrl parameter can be arbitrarily chosen by a malicious user that creates the snapshot (Note: by editing the query thanks to a web proxy like Burp) When another user opens the URL of the snapshot, they will be presented with the regular web interface delivered by the trusted Grafana server. The issue here is that the ”Open original dashboard” button no longer points to the to the real original dashboard but to the attacker’s (injected) URL.
— GitHub
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
go/github.com/grafana/grafanato a version that resolves this vulnerability.Fixed in 8.5.16 - Upgrade
Upgrade
go/github.com/grafana/grafanato a version that resolves this vulnerability.Fixed in 9.2.8 - Upgrade
Upgrade
redhat/grafanato a version that resolves this vulnerability.Fixed in 9.2.6.1 - Upgrade
Upgrade
redhat/grafanato a version that resolves this vulnerability.Fixed in 9.1.8.2 - Upgrade
Upgrade
redhat/grafanato a version that resolves this vulnerability.Fixed in 8.5.16 - Upgrade
Upgrade
Grafanato a version that resolves this vulnerability.Fixed in 8.5.16 - Upgrade
Upgrade
Grafanato a version that resolves this vulnerability.Fixed in 9.2.8
Event History
Frequently Asked Questions
What is CVE-2022-39324?
CVE-2022-39324 is a vulnerability in Grafana that allows a malicious user to create a snapshot with a manipulated URL.
How does CVE-2022-39324 affect Grafana?
CVE-2022-39324 affects Grafana versions 8.5.16 and 9.2.8 and allows users to manipulate the URL of a snapshot to execute arbitrary code.
What is the severity of CVE-2022-39324?
CVE-2022-39324 has a severity rating of medium with a CVSS score of 3.5.
How can I fix CVE-2022-39324?
To fix CVE-2022-39324, update Grafana to versions 8.5.16 or 9.2.8 or apply the relevant patches provided by Red Hat.
Is there any additional information about CVE-2022-39324?
Yes, you can find more information about CVE-2022-39324 in the references provided.