Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as privileged operator
-
DeliveryInject script into incident message
-
ExploitPayload stored and served on status page
-
ExecutionVictim loads status page
-
ImpactScript executes, steals session token / hijacks account
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a high-privilege authenticated account with permission to create or edit incident messages (and, per the diffs, component descriptions, schedules, updates, or the About page), because those Markdown fields were rendered with the unescaped Blade |
| Impact | This is a genuinely low-to-moderate real-world risk, and the signals are consistent rather than conflicting. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:H/UI:P) scores 4.8 (Medium), and the two dominant limiting factors are PR:H and UI:P: the attacker must already hold a high-privilege account capable of creating/editing incidents, and a victim must actively view the affected status page for the stored payload to fire. Impact is confined to the subsequent system (the victim's browser) with SC:L/SI:L and no impact to the Cachet host itself (VC:N/VI:N/VA:N), which matches a classic stored-XSS profile - session/token theft and potential account takeover of status-page viewers rather than server compromise. No EPSS score, KEV listing, or public POC was supplied; there is no public exploit identified at time of analysis, so this should not be treated as an active-exploitation emergency. The main nuance: 'authenticated attacker' in the description plus PR:H means the real threat is an already-trusted operator or a compromised admin account, not an anonymous internet attacker - this is a privilege-abuse / insider-leaning issue, which substantially lowers priority versus an unauthenticated XSS. Patch commits are confirmed in cachethq/core, so remediation is clearly available. |
| Exploit ScenarioDerived | An attacker who already holds a privileged Cachet account (able to create or edit incidents) submits an incident message containing malicious HTML/JavaScript, which is stored and rendered unescaped on the public status page. When any user - including other administrators - subsequently views that status page, the script executes in their browser, enabling session token theft and potential account takeover. No public exploit code was provided, but the payload is trivial to craft (e.g. a <script> tag in the incident message) given the required privileges. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
Stored cross-site scripting in Cachet 2.4.1 and earlier allows a high-privilege authenticated operator to inject malicious HTML/JavaScript into incident messages and other Markdown-rendered status-page fields, with the payload executing when a victim views the public status page and potentially enabling session-token theft or account takeover. Exploitation is constrained by the PR:H requirement and victim interaction (UI:R), and no public exploit was identified at time of analysis. The independent assessment rates real-world risk as low-to-moderate; upstream fixes are available in the referenced cachethq/core commits, but a released patched version was not independently confirmed.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed. Apply cachethq/core commits 57b44a8bac0b250b0d5751e93e0349070d14606e and 23adbb88ffa819f92be4a905ff1d812670d980a2, or upgrade to a Cachet release that includes them, and consult the vendor advisory at https://github.com/cachethq/cachet/security/advisories/GHSA-x397-5hrv-j9m9. If immediate patching is not possible, restrict incident, component, schedule, update, and About-page authoring to a minimal set of trusted privileged operators-this reduces exposure but does not eliminate risk from a compromised privileged account-and temporarily sanitize or strip raw HTML from Markdown output, for example by enforcing html_input='strip' and allow_unsafe_links=false or removing unescaped {!! !!} rendering for affected fields; this can break intended rich-text formatting and safe embedded links. Review sessions and credentials of any privileged author suspected of abuse.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in composer, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Cachet is a Laravel/PHP open-source status page system. The affected Markdown-bearing fields-incident messages, component descriptions, schedule and update messages, and the About page-were rendered through Laravel's Str::markdown() and emitted with the unescaped Blade {!! !!} directive, so stored HTML was not stripped before reaching the browser. This is CWE-79 stored XSS; the upstream fix introduces Cachet::markdown() using CommonMark options html_input='strip' and allow_unsafe_links=false, updates Component, Incident, Schedule, Update, and About rendering, and adds tests confirming script tags are not rendered. No CPE strings were supplied; source references identify cachethq/core, and the input CVSS 4.8 vector indicates PR:H/UI:P, consistent with the independent CVSS:3.1 assessment AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Stored XSS requires a high-privilege account to author the incident (PR:H) and a victim to load the page (UI:R); payload executes in the victim's browser (S:C) with limited confidentiality/integrity impact and no availability impact.
Primary rating from Vendor (github).
CVSS VectorVendor: github
DescriptionCVE.org
Cachet is an open-source status page system. Versions 2.4.1 and earlier have a stored Cross-Site Scripting (XSS) vulnerability in the incident creation form, allowing an authenticated attacker to inject malicious HTML/JavaScript that executes in the browser of any user who views the status page, potentially leading to session token theft and account takeover. Commits 57b44a8bac0b250b0d5751e93e0349070d14606e and 23adbb88ffa819f92be4a905ff1d812670d980a2 in cachethq/core patch the issue.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
EUVD-2026-105261
GHSA-x397-5hrv-j9m9
NVD
CVE.org
EPSS
VulDB
Exploit-DB