{"id":"CVE-2026-88858","kind":"vulnerability","aliases":["CVE-2026-88858"],"related":[],"title":"Grafana: crafted math expression crashes the server, and it persists across restarts","description":"A user with the Viewer role in Grafana can crash the server by submitting a crafted server-side math expression (uncontrolled recursion). A user with permission to provision alert rules can make the outage persist across restarts.","summary":"A Grafana user with the Viewer role can submit a crafted server-side math expression that triggers uncontrolled recursion and crashes the server. A user allowed to provision alert rules can store the expression so the outage repeats after each restart.","severity":"medium","cvss":6.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["grafana","package","self-hosted"],"not_affected_if":["managed-hosting"],"how_to_check":"- Check the running Grafana version with `grafana-server -v` or the About page in the UI.\n- Look for server-side expressions in alert rules that you did not create.","fix":"- Upgrade Grafana to a patched release; the sources do not name the fixed version, so check the Grafana advisory.\n- Remove any stored alert rule containing the crafted math expression if the server keeps crashing after restart.","status":"open","published_at":"2026-10-28T17:18:45+00:00","first_seen_at":"2026-10-28T17:34:10+00:00","triaged_at":"2026-10-28T17:36:24+00:00","updated_at":"2026-10-28T17:36:24+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-28T17:36:24Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Grafana to a patched release; the sources do not name the fixed version, so check the Grafana advisory.\n- Remove any stored alert rule containing the crafted math expression if the server keeps crashing after restart.","reach":"network","title":"Grafana: crafted math expression crashes the server, and it persists across restarts","impact":"medium","summary":"A Grafana user with the Viewer role can submit a crafted server-side math expression that triggers uncontrolled recursion and crashes the server. A user allowed to provision alert rules can store the expression so the outage repeats after each restart.","category":"package","nicknames":[],"who_cares":["grafana","self-hosted"],"confidence":0.6,"needs_auth":"yes","worst_case":"server crashes and stays down across restarts","analyst_note":"Find the fixed Grafana version and the affected version range in the NVD entry or Grafana's security advisory.","how_to_check":"- Check the running Grafana version with `grafana-server -v` or the About page in the UI.\n- Look for server-side expressions in alert rules that you did not create.","needs_analyst":true,"not_affected_if":["managed-hosting"],"who_is_affected":"Grafana instances where users can submit server-side expressions, which includes any instance with Viewer-role accounts reachable by untrusted users and any instance where alert rules can be provisioned. Instances with no untrusted users and no alerting exposure carry less risk.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000594,"input_tokens":3282,"output_tokens":531,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':14A,17A '-88858':15A,18A 'across':11A,102C 'alert':53B,95C 'allow':50B 'craft':2A,34B,81C 'crash':5A,45B,75C 'cve':13A,16A 'express':4A,39B,58B,86C 'grafana':1A,19B,25B,73C 'host':23B 'make':98C 'math':3A,38B,85C 'outag':61B,100C 'packag':20B 'permiss':92C 'persist':10A,101C 'provis':52B,94C 'recurs':43B,88C 'repeat':62B 'restart':12A,65B,103C 'role':30B,71C 'rule':54B,96C 'self':22B 'self-host':21B 'server':7A,36B,47B,77C,83C 'server-sid':35B,82C 'side':37B,84C 'store':56B 'submit':32B,79C 'trigger':41B 'uncontrol':42B,87C 'user':26B,49B,67C,90C 'viewer':29B,70C","nicknames":[],"mitigations":[],"who_affected":"Grafana instances where users can submit server-side expressions, which includes any instance with Viewer-role accounts reachable by untrusted users and any instance where alert rules can be provisioned. Instances with no untrusted users and no alerting exposure carry less risk.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-28T17:18:45+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","cvss_by":"security@grafana.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-88858","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-88858","severity":null,"published_at":"2026-10-28T17:18:45+00:00","modified_at":"2026-10-28T17:18:45+00:00","first_seen_at":"2026-10-28T17:34:10+00:00","fetched_at":"2026-10-28T17:34:10+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}