Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
PR:L required for ticket submission; S:C because XSS executes in the privileged Agent/Admin browser context; A:N as availability is unaffected.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
Lifecycle Timeline
5DescriptionCVE.org
osTicket versions from 1.10 up to 1.17.7 and from 1.18.0 up to 1.18.3 are vulnerable to a stored XSS due to a vulnerable Bootstrap Tooltip component and insufficient HTML sanitization, allowing remote attackers to execute arbitrary JavaScript in Agent or Admin sessions.
AnalysisAI
Stored XSS in osTicket's Agent and Admin panel allows any authenticated user with ticket-submission privileges to inject persistent JavaScript that executes in privileged staff browser sessions. Affected versions span two release branches: 1.10 through 1.17.7 and 1.18.0 through 1.18.3. No public exploit identified at time of analysis per KEV, but publicly available exploit code exists on GitHub (WesWrench/CVE-2026-36214), and the CVSS scope-change rating (S:C) reflects that successful exploitation compromises Agent or Admin sessions rather than the attacker's own context.
Technical ContextAI
The vulnerability has two complementary root causes confirmed by the patch commit (5afdf54). First, osTicket shipped Bootstrap Tooltip v3.3.4 in scp/js/bootstrap-tooltip.js, which does not sanitize HTML embedded in tooltip-related data attributes such as data-original-title, allowing arbitrary HTML to be rendered by the tooltip engine. Second, osTicket's server-side safe_html() function in include/class.format.php blocked on* event handlers and other dangerous attributes via its deny_attribute list but omitted data-* attributes entirely - so attacker-controlled content containing malicious data-original-title payloads passed server-side sanitization and was stored persistently. CWE-79 (Stored XSS) applies: untrusted input is persisted and later rendered in privileged Agent/Admin sessions without sufficient neutralization. The fix addressed both vectors: Bootstrap Tooltip was upgraded to v3.4.1, which includes a whitelist-based sanitizeHtml() function with URI attribute validation, and deny_attribute was extended from 'id, formaction, action, srcset, on*' to 'id, formaction, action, srcset, data*, on*'.
RemediationAI
Upgrade to osTicket v1.17.8 (for deployments on the 1.17.x branch) or v1.18.4 (for deployments on the 1.18.x branch); both releases are available at https://github.com/osTicket/osTicket/releases. The vendor-released patch addresses both root causes: Bootstrap Tooltip is upgraded from v3.3.4 to v3.4.1 with built-in whitelist-based HTML sanitization, and the server-side safe_html() function now denies all data-* attributes. If immediate patching is not feasible, a compensating control is to restrict ticket submission to internally trusted, authenticated accounts only - removing the ability for external or anonymous users to register and submit content, which narrows the attacker pool. Note that this workaround does not eliminate risk if any low-privileged internal account is compromised or malicious, and it may disrupt the intended public-facing help desk workflow. No configuration flag to disable Bootstrap Tooltips independently without code changes has been identified.
LibreNMS before 24.10.0 allows a remote attacker to execute arbitrary code via OS command injection involving AboutContr
Reachable assertion in Open5GS up to version 2.7.6 allows remote unauthenticated attackers to crash the Diameter CER han
A Command Injection issue in the payload build page in BYOB (Build Your Own Botnet) 2.0 allows attackers to execute arbi
Denial of service in Open5GS 2.7.6 and earlier allows network-adjacent attackers with low-privilege Diameter Gx peer acc
Denial of service in Open5GS HSS (Home Subscriber Server) versions 2.7.0 through 2.7.6 is triggered remotely by manipula
Remote command injection in Control Web Panel allows unauthenticated attackers to execute arbitrary OS commands as root
LINQPad before 5.52.01 Pro edition is vulnerable to Unsafe Deserialization in LINQPad.AutoRefManager::PopulateFromCache(
Remote code execution in dash-uploader (Python package for Plotly Dash) versions 0.1.0 through 0.7.0a2 allows unauthenti
Command injection in LiteLLM 1.18.10 lets attackers who can configure MCP (Model Context Protocol) servers supply arbitr
SQL injection in AzuraCast's backup restore flow (versions up to and including 0.23.7) lets an attacker achieve privileg
Arbitrary file read in Yu AI Code Mother v4.3 lets anonymous, remote attackers retrieve files outside the intended previ
Remote code execution in APScheduler (all versions through 3.10.x and 4.0.0a5) is achievable when applications deseriali
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-43754
GHSA-ffr2-xp93-qf4x