Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend crafted HTML email/ticket to helpdesk
-
DeliveryEmbed traversal image URL to protected API path
-
ExploitAgent views ticket content
-
ExecutionBrowser auto-requests endpoint with session cookie
-
ImpactSide effect e.g. forced agent logout
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires (1) a Zammad instance older than 7.1.2 that renders inbound email/ticket HTML to agents, and (2) an authenticated agent passively opening the attacker's message - the malicious <img src>/srcset URL fires as a same-origin GET carrying the agent's session cookie. The attacker needs no Zammad account (the payload is just an inbound email/ticket), but the effect only triggers on agent view (UI:P), and impact is limited to state-changing/disruptive same-origin API calls such as forced logout, not data exfiltration. Patched instances (>=7.1.2) that CGI.unescape twice and match dot-segments anywhere in the URL are not vulnerable. |
| Impact | This is a genuine but low-severity issue, and the signals are internally consistent rather than conflicting. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:L) scores 5.3 (medium) and correctly reflects a low-impact flaw: no confidentiality loss, only limited integrity/availability effects (a forced logout / unwanted state-changing API call). Exploitation is network-delivered and needs no attacker authentication (the payload arrives as an ordinary inbound email or ticket), but it is gated on a victim agent passively viewing the malicious content (UI:P), which caps real-world impact. There is no EPSS score, no CISA KEV listing, and no public exploit provided - the patch commit does disclose the bypass payloads (interior '../', double-encoded '%252e%252e', backslash '..\'), which lowers the bar to reproduce, but that is not the same as active exploitation. Net: a real defect worth patching on a normal cadence, not an emergency; the primary consequence (session disruption) is a nuisance-grade effect rather than data theft or RCE. No key signals conflict here. |
| Exploit ScenarioDerived | An attacker emails the helpdesk (or opens a ticket) containing HTML like <img src="/api/v1/attachments/../signout">, using path-traversal that the old sanitizer treated as a safe local URL. When an authenticated agent later opens that ticket, their browser silently resolves the path to Zammad's protected API endpoint and issues the request with the agent's session cookie, forcing a logout with no click required. No public exploit is published, but the fix commit's test cases enumerate working payload variants (literal, double-encoded, and backslash-separator). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 25, 2026
Improper URL sanitization in Zammad's inbound-email/ticket HTML scrubber lets an attacker embed traversal-laden <img src> or srcset URLs that survive the remote-URL check; when an authenticated agent simply views the message, the browser resolves the URL to a same-origin Zammad API endpoint and issues the request with the agent's session cookie, producing disruptive state changes such as forced logout with no further interaction. The attacker needs no Zammad account (the payload is delivered as ordinary inbound email or ticket content), but the effect only triggers on agent view (UI:P) and is confined to low-integrity/low-availability same-origin calls rather than data exfiltration. Exploitation status: no public exploit identified at time of analysis; a vendor-released patch is available in Zammad 7.1.2.
RemediationAI
Vendor-released patch: upgrade Zammad to 7.1.2, which hardens lib/html_sanitizer/scrubber/wipe.rb by applying CGI.unescape a second time, normalizing backslashes to slashes, and rejecting dot-segments anywhere in the URL (fix commit 856af85c12413087d6a74ffee25b16048a5ed8c3; advisory https://github.com/zammad/zammad/security/advisories/GHSA-33p2-cm7w-62g3). If immediate upgrade is not possible, reduce exposure by disabling or restricting the email/ticket channels that render untrusted HTML to agents, or by enabling Zammad's settings that block/strip images in incoming messages so agent browsers never emit the crafted same-origin GET - the trade-off is degraded rendering of legitimate inline images and attachments for agents. Restricting agent accounts to trusted networks or applying a strong Content-Security-Policy that blocks img-src to same-origin API paths can also prevent the request from firing, but CSP changes require per-deployment testing and may break other in-app behavior. Note that disabling affected channels is a staffing/workflow disruption rather than a clean fix, so patching remains the primary recommendation.
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-22 (path traversal) inside Zammad's HTML sanitizer, specifically the remote-URL scrubber in lib/html_sanitizer/scrubber/wipe.rb. That code decides whether an image URL points to a remote host (and should be stripped/marked) or to a legitimate local API path (and may remain), using a remote_url? routine built on a stripping step plus a check that the remaining path begins with /api/. The pre-7.1.2 implementation only removed leading ./ or ../ prefixes and did not account for dot-segments appearing in the middle of a path, for percent-encoded dot-segments, or for backslash path separators. Browsers normalize dot-segments and treat \ as a separator in special-scheme URLs, and because callers unescape once already (so %252e%252e becomes %2e%2e), a second decoding pass inside the sanitizer can turn encoded input into literal '..' after the initial check. The result is that a URL such as /api/v1/attachments/../signout or /api/v1/attachments/%252e%252e/signout is treated as a trusted local API reference, yet resolves in the agent's browser to a real same-origin Zammad endpoint (/api/v1/.../signout). The upstream fix applies CGI.unescape a second time, normalizes backslashes to forward slashes, and matches dot-segments anywhere in the string rather than only at the start. Affected code is version-independent across the product, captured by the CPE cpe:2.3:a:zammad:zammad:*:*:*:*:*:*:*:* with all releases below 7.1.2 in scope (ENISA EUVD-2026-87270 lists 'Zammad < 7.1.2').
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:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
Network-delivered payload needs no attacker auth (PR:N) but requires the agent to view the content (UI:R); no data disclosure (C:N), only a low-integrity forced state change and session-availability loss (I:L/A:L).
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, attacker-controlled HTML in inbound emails or tickets could bypass the image URL sanitizer using path traversal sequences. When an authenticated agent views the content, the browser resolves the URL to a protected API endpoint and sends the request with the agent's session cookie, enabling side effects such as forced logout without any user interaction. 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
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
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-87270
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB