Skip to main content

Cachet CVE-2026-113712

| EUVDEUVD-2026-105261 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-20 security-advisories@github.com GHSA-x397-5hrv-j9m9
4.8
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as privileged operator
  2. Delivery
    Inject script into incident message
  3. Exploit
    Payload stored and served on status page
  4. Execution
    Victim loads status page
  5. Impact
    Script 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 {!! !!} directive. A second precondition is that a victim must view the affected public status page for the stored payload to execute (UI:P). The vulnerability is present in default configurations of Cachet 2.4.1 and earlier - no special feature toggle is needed - but exploitation is meaningfully limited by the PR:H requirement: status pages typically grant incident-authoring rights only to a small set of trusted operators, so the realistic attacker is a malicious or compromised privileged user rather than an anonymous one.

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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Cachet ≤ 2.4.1

Affected Packages

composer cachethq/cachet no fix
euvd cachet no fix

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

Vendor (github) PRIMARY 4.8 MEDIUM
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
vuln.today AI 4.8 MEDIUM

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.

3.1 AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:H/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
High
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

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

EPSS Score
0.4%
Top 72% exploitable
Prevalence
Medium
popular open-source self-hosted status page system, moderate deployment footprint
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

24
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy