☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 6.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:L/A:L 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-17033

CVE-2026-17033 Vulnerability in Grafana
📅 PUBLISHED: 2026-08-24 00:00 UTC 🔄 UPDATED: 2026-08-25 00:00 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🥷 MITRE: T1203
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: Unknown (no version range disclosed; presumes all versions with alerting features)
CVSS VECTOR BREAKDOWN 6.8
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: R User Interaction Required
S: U Scope Unchanged
C: H Confidentiality High
I: L Integrity Low
A: L Availability Low
6.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-17033 is an unpatched stored/click-based Cross-Site Scripting (XSS) vulnerability in Grafana's Alerting UI. An authenticated attacker possessing only Editor-level permissions or the alert.instances.external:write permission can embed attacker-controlled JavaScript in an external Alertmanager alert's generatorURL field; this payload executes when a user with read access clicks the "See source" link in the Alert Details view, running in the Grafana origin with the victim's session permissions. The vulnerability stems from missing URL-scheme sanitization and a bypassable :// heuristic in Grafana's click interceptor, combined with the direct rendering of alert.generatorURL as a link href. With a CVSS score of 6.8 (High), the impact is elevated confidentiality compromise with partial integrity and availability impact, requiring user interaction (clicking) and low-privilege authentication.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

Vulnerability Mechanism

The flaw resides in Grafana's handling of external Alertmanager alerts, specifically the generatorURL field. Per the NVD description:

  1. Lack of URL sanitization: Grafana renders alert.generatorURL directly as the href attribute of a "See source" LinkButton in the Alert Details view, without applying a safe-protocol allowlist or URL-scheme sanitization. This means non-HTTP schemes (e.g., javascript:, data:) are not filtered.

  2. Bypassable click interceptor heuristic: Grafana's UI includes a click interceptor intended to block unsafe URL schemes by detecting the :// sequence. However, the description states this heuristic "can be bypassed by placing :// inside a JavaScript comment." Specifically, a payload such as javascript://%0Aalert(document.domain) or similar can be crafted where :// appears inside a comment context, causing the interceptor's string-matching heuristic to fail while the browser still executes the payload upon click.

  3. Execution context: When the victim clicks the LinkButton, the browser executes the attacker-controlled JavaScript in the Grafana origin, inheriting the clicking user's permissions (session cookies, CSRF tokens, API rights).

Attack Surface

  • Entry point: External Alertmanager alerts, submitted via API by an authenticated user with alert.instances.external:write permission or Editor role.
  • Trigger: The UI link interaction ("See source" button) in Alert Details.
  • Vulnerable component: Grafana frontend rendering pipeline for alert details (no specific file/function names disclosed in the description; the component is the alert detail panel).

Preconditions

  • Attacker authentication: low-privilege (Editor or the specific permission).
  • Victim interaction: must click the malicious link.
  • The victim must have read access to the alert details.

Exploitation Scenarios

Note: No public PoC exists; the attack chain described below is inferred from the vulnerability class and the NVD description. No specific function names, URL endpoints, or payload strings beyond those in the description are claimed.

Step 1 — Reconnaissance & Target Identification

The attacker identifies a Grafana instance with external Alertmanager integration enabled. This can be discovered via Shodan (e.g., http.title:"Grafana") or by direct enumeration. The attacker confirms they hold (or can obtain) Editor credentials or the alert.instances.external:write permission — both obtainable via low-privilege account compromise, phishing, or insider access.

Step 2 — Flaw Trigger (Crafting the Malicious Alert)

The attacker submits an external Alertmanager alert via the API, setting the generatorURL field to a crafted payload. The payload embeds a javascript: URI where the :// sequence is placed inside a JavaScript comment to evade the interceptor. Example class-level payload structure:

javascript://%0A<malicious JavaScript here>

The :// appears after javascript: but inside a line comment context (the // starts a comment, and the : afterward is consumed by the comment parser). The browser's URL parser, however, interprets the scheme as javascript: and executes the code after a newline.

Step 3 — Payload Execution

The attacker waits for any user with read access to the alert to open the Alert Details view and click "See source." Upon click, the interceptor's :// heuristic fails to block the URI (because :// is split across comment semantics), and the browser executes the JavaScript in the Grafana origin with the victim's full session privileges.

Step 4 — Post-Exploitation Impact

With the victim's session context, the payload can:

  • Exfiltrate Grafana session tokens, API keys, or dashboards containing sensitive data (CVSS Confidentiality: High).
  • Modify Grafana settings, dashboards, or alert rules (Integrity: Low).
  • Disrupt monitoring by deleting or altering alerts (Availability: Low).

The attacker maintains a low-profile because the malicious alert is invisible until clicked.


Impact Assessment

Business Impact

  • Confidentiality (High): Successful exploitation grants the attacker access to the victim's Grafana session, potentially exposing sensitive monitoring data, credential stores, dashboards, and internal infrastructure details.
  • Integrity (Low): The attacker can modify dashboards or alert configurations within the victim's permission scope.
  • Availability (Low): Alert deletion or tampering can degrade monitoring coverage.

Affected Systems

  • Any Grafana deployment with external Alertmanager integration where users have Editor or alert.instances.external:write permissions.
  • Enterprises relying on Grafana for production monitoring, incident response, and observability.

Blast Radius

  • Privilege boundary: Attack requires low privilege but yields execution in the context of a higher-privileged (read-access) user.
  • User interaction requirement (UI:R) reduces the likelihood of automated mass exploitation.
  • Network positioning: Attack is remotely exploitable (AV:N) with low attack complexity (AC:L).

Detection Guidance

Sigma Rule

title: Grafana External Alert with Suspicious generatorURL Scheme
id: 3c1b8e5e-6722-4f80-9a2e-b4a9c0d7f123
status: experimental
description: Detects submission of external Alertmanager alerts with non-http(s) schemes in generatorURL, indicating CVE-2026-17033 exploitation attempts.
logsource:
  category: application
  product: grafana
  service: alerting
detection:
  selection:
    event.action: alert.instances.external.write
    request.body|contains:
      - "generatorURL"
  filter_safe_schemes:
    request.body.generatorURL|startswith:
      - "http://"
      - "https://"
  filter_benign:
    request.body.generatorURL|re: "^(https?://|#|/|\\?|\\[)"
  condition: selection and not filter_safe_schemes and not filter_benign
level: high
tags:
  - attack.t1203
  - cve.2026.17033

YARA Rule

rule Grafana_CVE_2026_17033_generatorURL_Payload
{
    meta:
        author = "Valter Sit Threat Intel"
        description = "Detects suspicious generatorURL payloads targeting CVE-2026-17033"
        cve = "CVE-2026-17033"
        date = "2026-02-01"
    strings:
        $scheme = "javascript:" ascii nocase
        $comment_bypass = "://" ascii
        $url_enc_char = "\\x25" ascii
        $newline = "\\x0A" ascii
        $generator_field = "generatorURL" ascii nocase
    condition:
        $generator_field and $scheme and $comment_bypass and (
            #newline or #url_enc_char
        )
}

Suricata IDS Rule

alert http any any -> any any (msg:"CVE-2026-17033 Potential Grafana generatorURL XSS Payload"; flow:established,to_server; content:"generatorURL"; http_client_body; content:"javascript:"; distance:0; http_client_body; content:"://"; distance:0; http_client_body; content:"%0A"; distance:0; http_client_body; classtype:attempted-user; sid:202617033; rev:1; metadata:created_at 2026_02_01, cve CVE_2026_17033, attack_target grafana, deployment perimeter, tag xss;)

Elastic Detection

sequence with maxspan=5m
  [ network where destination.port == 443 and event.category == "network" ]
  [ http where event.category == "request" and
      http.request.body.text : "*generatorURL*javascript:*://*" and
      not http.request.body.text : ("*generatorURL*http://*", "*generatorURL*https://*")
  ]

Splunk SPL Query

index=web sourcetype=access_combined_wcookie OR sourcetype=grafana_api
| where req_body LIKE "%generatorURL%" AND req_body LIKE "%javascript:%" AND req_body LIKE "%://%"
| where NOT req_body LIKE "%generatorURL%http://%" AND NOT req_body LIKE "%generatorURL%https://%"
| eval cve="CVE-2026-17033"
| table _time, src_ip, dest_ip, user, uri_path, req_body, http_user_agent
| sort _time desc

Wazuh OSSEC Rule

<group name="grafana,">
  <rule id="170330" level="12">
    <if_sid>553</if_sid>
    <match>generatorURL</match>
    <regex>javascript:.*://</regex>
    <description>CVE-2026-17033: Authenticated external alert submission with malicious generatorURL scheme</description>
    <group>attack.t1203, cve.2026.17033, xss,</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence: 0/4 — UNPATCHED. No vendor advisory, patch, or version fix exists from any tracked source. Affected versions not disclosed; vendor fix marked N/A.

1) Immediate Mitigations

  • Restrict alert.instances.external:write permission to only trusted, high-privilege personnel. Audit current role assignments and remove this permission from Editors where possible.
  • Disable or hide the external Alertmanager integration if not strictly required.
  • Deploy a web application firewall (WAF) or reverse proxy rule to inspect and block API requests containing generatorURL with non-http(s) schemes (see Suricata rule above).
  • Educate users not to click "See source" on unexpected or newly-added external alerts; enforce a culture of verifying alert provenance.
  • Enable Content Security Policy (CSP) with script-src restrictions and base-uri constraints where Grafana supports it, limiting the damage even if XSS executes.

2) Patch / Upgrade Steps

  • Monitor Grafana security advisories (https://grafana.com/security) for a CVE-2026-17033-specific advisory and patch release.
  • Subscribe to the Grafana GitHub releases feed (https://github.com/grafana/grafana/releases) for the first patched version and apply it immediately upon release.
  • Until a patch ships, do not upgrade blindly — verify compatibility and test in a staging environment.

3) Long-Term Hardening

  • Enforce least-privilege access: Revoke alert.instances.external:write from all default roles; grant only on explicit, reviewed requests.
  • Require multi-factor authentication (MFA) for all Grafana logins to reduce the likelihood of low-privilege account compromise that enables the attack.
  • Implement runtime URL-scheme validation at the network layer for all Grafana API traffic; consider an application-level proxy or API gateway that enforces allowlists.
  • Regularly audit Grafana alerts for unexpected external Alertmanager sources; alert on any new integration endpoints.
  • Track CISA KEV (currently NO) and EPSS (not yet scored) for changes; re-evaluate exposure when EPSS data becomes available.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-17033 — Official vulnerability record with CVSS vector CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:L/A:L, CWE-79 classification.

  2. Grafana Security Advisories: https://grafana.com/security — Monitor here for the forthcoming vendor advisory and patched version (currently no advisory published).

  3. Grafana GitHub Releases: https://github.com/grafana/grafana/releases — Track for the first patched release of the affected alerting component.

  4. CISA Known Exploited Vulnerabilities Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog — CVE-2026-17033 currently listed as NO (not exploited in the wild per CISA), but should be re-checked periodically.

  5. CWE-79 (Cross-site Scripting) Reference: https://cwe.mitre.org/data/definitions/79.html — Weakness class documentation for the underlying improper neutralization of input during web page generation.


No known threat actor campaigns or active exploit-in-the-wild evidence exists for CVE-2026-17033 as of this writing (EPSS unscored, CISA KEV = NO, no PoC, no exploit code). This report will be updated if patch availability or exploitation activity emerges.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"Grafana"
product:"Grafana"
http.title:"Grafana" "Sign In"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-17033/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.