Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain KB category-edit rights
-
DeliveryPublish answer with crafted video-widget id
-
ExploitAttribute breakout injects session-switch HTML
-
ExecutionPrivileged viewer opens the answer
-
PersistBrowser auto-sends authenticated switch request
-
ImpactViewer session switched to attacker-chosen 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 | Requires the attacker to already hold Knowledge Base editing rights for a category so they can author and publish an answer embedding a video widget (the injection point is the widget's 'id' value interpolated into an <iframe> attribute). Exploitation additionally requires a victim who holds the session-switching ('switch to user'/impersonation) permission to simply view the published answer - the malicious request fires automatically on render with no further victim action. Limiting factors: two distinct privilege prerequisites (attacker=KB editor, victim=session-switch-capable, typically admin/elevated agent), the requirement that the answer be published and viewed, and the niche self-hosted deployment base. Fixed in 7.1.2. |
| Impact | This is a genuine but conditionally-gated stored XSS (CWE-79) that chains into a forced session-switch account takeover - not a raw high-severity remote flaw. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P) confirms network reach but requires privileges (PR:L = the attacker needs Knowledge Base editing rights for a category) and user interaction (UI:P = a victim must open the published answer). Notably the vendor scored VC/VI/VA as N and pushed impact onto the subsequent-system metrics SC:H/SI:H, modeling the fact that the harm lands on the VIEWER'S session (which is switched to an attacker-chosen account) rather than the vulnerable Zammad instance itself - this is a defensible but non-obvious modeling choice, and it is why the base score is only 6.3 despite the takeover outcome. Exploitation is doubly gated: the attacker must already hold KB-editor rights AND the victim must be a user who possesses the session-switching ('switch to user'/impersonation) permission, i.e. typically an admin or elevated agent. No EPSS score, KEV listing, or public exploit was provided in the input; the fix commit's spec file discloses the payload shape ('id: a\' srcdoc=...') but that is a regression test, not weaponized exploit code. Overall a real but not urgent priority: the outcome (impersonation of a privileged viewer) is severe, but the two required privilege preconditions and the niche product footprint keep real-world risk moderate. |
| Exploit ScenarioDerived | An attacker holding Knowledge Base category-editing rights publishes an answer containing a video widget whose 'id' value breaks out of the iframe attribute context (e.g. injecting a srcdoc/img that GETs /api/v1/sessions/switch/N). When an admin or agent who has session-switching permission opens that published answer, their browser silently issues the request with their own active credentials, switching their session to an account the attacker selected - no interaction beyond viewing is needed. No public exploit was identified at the time of analysis, though the vendor's fix commit includes a spec test demonstrating the attribute-breakout payload. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 25, 2026
Stored cross-site scripting in Zammad's Knowledge Base video widget lets an authenticated user who holds Knowledge Base editing rights for a category publish an answer whose crafted video 'id' value breaks out of the generated <iframe> attribute context and injects arbitrary HTML; when a second, more privileged user who can switch between user sessions opens that published answer, the injected markup silently fires a request to Zammad's session-switching endpoint and forces the victim's session onto an account chosen by the attacker. Exploitation requires two distinct privileges (a Knowledge Base editor on the attacker side and session-switch/impersonation permission on the victim side) plus the victim simply viewing the published answer, and no public exploit code has been identified at time of analysis. The flaw is tracked as CWE-79 and is fixed in Zammad 7.1.2; the circumstances make this a genuine but conditionally gated stored XSS that chains into a forced session-switch account takeover rather than a raw remote flaw.
RemediationAI
Vendor-released patch: upgrade Zammad to 7.1.2 or later, which contains the fix in commit f7a97ea209696bce85ed62901ee753b88368851c (attribute-context HTML escaping of the iframe id/src values plus a bounded split(':', 2) parse of the widget marker); consult the vendor advisory at https://github.com/zammad/zammad/security/advisories/GHSA-cxjg-4gmf-5xqc for the official guidance. Until the upgrade can be applied, the most effective compensating control is to remove or tightly restrict Knowledge Base category editing rights so only fully trusted staff can author and publish answers, since the attacker must be able to publish the malicious widget marker - the trade-off is reduced editorial throughput and a larger administrative burden on the remaining trusted editors. In parallel, review and, if necessary, revoke the session-switching ("switch to user"/impersonation) permission from all but a small set of administrators, because the attack's forced session switch only succeeds against users holding that capability; the trade-off is that support workflows relying on impersonation become slower, and note that this does not neutralize the underlying XSS for remaining privileged users. Where the Knowledge Base video widget is not needed, remove or do not use video widget markers - or sanitize any existing published answers that contain a widget marker whose id value includes a quote character, the substring "srcdoc", or references to /api/v1/sessions/switch/ - which eliminates the injection point entirely at the cost of losing embedded video in articles. A web application firewall or reverse-proxy rule that blocks requests to /api/v1/sessions/switch/ originating from an iframe/document context other than the legitimate Zammad UI can add defense in depth, but such rules are brittle and may break legitimate impersonation flows, so they should be treated as temporary and monitored before enforcement. Finally, audit Zammad logs for unexpected session-switch events, especially switches triggered after a Knowledge Base answer was viewed, as a detection measure for exploitation attempts that precede remediation.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation / stored cross-site scripting) in Zammad's Ruby on Rails Knowledge Base rendering path. Knowledge Base answers support a video widget expressed as a plain-text marker of the form "( widget: video, provider: youtube, id: <value> )", which the helper KnowledgeBaseRichTextHelper#prepare_rich_text_videos parses and expands into an embedded <iframe> pointing at YouTube or Vimeo embed URLs. The vulnerable helper parsed the marker's key/value pairs with a naive pair.split(':'), so a value containing additional colons or quote characters was mis-parsed, and the resulting provider/id values were concatenated directly into the iframe's id and src HTML attributes without context-aware escaping. Because the injection point is an HTML attribute delimited by single quotes, an attacker-supplied id such as "a' srcdoc='<img src=/api/v1/sessions/switch/1>' b='" terminates the id attribute and introduces a new srcdoc attribute, whose contents the browser renders as HTML inside the iframe - in effect an HTML/script injection primed to issue a same-origin, credentialed GET to Zammad's session-switch endpoint. The upstream fix (commit f7a97ea209696bce85ed62901ee753b88368851c) splits key/value pairs with split(':', 2) so only the first colon is treated as a separator, URL-encodes the video identifier with CGI.escape for the embed URL, and HTML-escapes both the interpolated id attribute and the src URL with CGI.escapeHTML, restoring correct attribute-context encoding; the accompanying spec explicitly covers the attribute-breakout payload and the embedded-colon case. The affected package is cpe:2.3:a:zammad:zammad:*:*:*:*:*:*:*:* (all versions before 7.1.2); the assessed CVSS:3.1 vector AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N reflects a network-reachable, low-privilege-authenticated attack requiring victim interaction with scope change and low confidentiality/integrity impact, while the secondary impact is high on the injection-targeted component.
Know when Zammad gets its next vulnerability
- 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:L/UI:P/VC:N/VI:N/VA:N/SC:H/SI:H/SA:N
PR:L because the attacker needs KB category-edit rights; UI:R and S:C because a privileged viewer must render the stored payload, which then acts on their authenticated session across a trust boundary.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Zammad is a web based open source helpdesk/customer support system. Prior to 7.1.2, a user with Knowledge Base editing rights for a category can embed a video widget in a published answer with a specially crafted value. When the answer is rendered, that value is inserted into the page's HTML without being escaped for its attribute context, allowing it to break out and inject additional HTML into the page. When another user who has permission to switch between user sessions views the affected answer, the injected HTML causes their browser to silently send a request to Zammad's session-switching endpoint using their own active credentials. This results in switching their session to an account chosen by the person who wrote the Knowledge Base answer. No action is required from the viewer beyond opening the published answer. This issue is fixed in version 7.1.2.
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.
Session hijacking in self-hosted Zammad 6.3.0 through 6.5.4 allows remote, unauthenticated attackers to take over a legi
Local privilege escalation in Zammad lets an attacker who already controls the unprivileged 'zammad' service account ele
An issue was discovered in Zammad before 1.0.4, 1.1.x before 1.1.3, and 1.2.x before 1.2.1. Rated critical severity (CVS
An issue was discovered in Zammad before 1.0.4, 1.1.x before 1.1.3, and 1.2.x before 1.2.1, caused by lack of a protecti
Zammad 5.2.0 is vulnerable to privilege escalation. Rated critical severity (CVSS 9.8), this vulnerability is remotely e
An issue was discovered in Zammad before 4.1.1. Rated critical severity (CVSS 9.8), this vulnerability is remotely explo
An issue was discovered in Zammad before 4.1.1. Rated critical severity (CVSS 9.8), this vulnerability is remotely explo
An issue was discovered in Zammad before 3.4.1. Rated critical severity (CVSS 9.8), this vulnerability is remotely explo
An issue was discovered in Zammad before 6.3.0. Rated critical severity (CVSS 9.1), this vulnerability is remotely explo
Zammad's SSO auto-linking logic can be abused to take over any existing local account, including agent and administrator
An access control issue in Zammad v5.0.3 allows attackers to write entries to the CTI caller log without authentication.
An issue was discovered in Zammad before 4.1.1. Rated critical severity (CVSS 9.1), this vulnerability is remotely explo
EUVD-2026-87264
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB