Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Jivejdon as a user
-
DeliveryCraft short message with script payload
-
ExploitSend private message to target recipient
-
ExecutionRecipient opens message, unfiltered body renders
-
ImpactScript executes in victim's browser session
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 (1) an authenticated Jivejdon account able to send private short messages (PR:L), and (2) the targeted recipient opening the malicious short message in their browser (UI:P), at which point receiveshortmessage.jsp renders the unfiltered message body - ToolsUtil.convertURL() does not sanitize script content. The specific feature required is the private short-message (PM) functionality; this is not exploitable against anonymous/unauthenticated users and does not fire automatically without the victim viewing the message. These factors (prior authentication plus victim interaction) meaningfully limit real-world exploitation to targeted abuse against a selected user rather than broad, unattended compromise. |
| Impact | This is a medium-severity stored XSS (CWE-79) with a vendor-supplied CVSS 4.0 score of 5.1, and the signals are internally consistent: the vector CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N shows a network-reachable but privilege- and interaction-gated flaw, not a drive-by. No EPSS score was provided, the CVE is not on CISA KEV, and no public exploit code is referenced - so exploitation status is 'no public exploit identified at time of analysis.' There is no SSVC decision data in the input. The practical risk is bounded: an attacker must already hold a valid authenticated account (PR:L) to send a short message, and the payload only fires when the specific recipient opens it (UI:P), making this a targeted stored-XSS against a chosen victim rather than a wormable or mass-exploitation condition. The limited VC/VI (Low) and lack of availability impact mean session/credential theft or UI manipulation in the recipient's browser is the realistic ceiling, not system compromise. Overall this is a legitimate but low-priority issue for most defenders - real but constrained, and heavily dependent on the product's small deployment footprint. |
| Exploit ScenarioDerived | An authenticated forum user crafts a private short message whose body contains a script payload and sends it to a chosen recipient. Because receiveshortmessage.jsp renders the message body unfiltered and ToolsUtil.convertURL() passes it through unchanged, the script executes in the recipient's browser when they open the message, enabling session-cookie theft or actions as the victim. No public exploit code is identified at time of analysis, and the attack requires the recipient to actually open the message (UI:P). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
Stored cross-site scripting in Jivejdon through 5.0 allows an authenticated user to embed script inside a private short message that then executes in the recipient's browser when the message is opened. The flaw is reachable over the network but gated by two prerequisites: the attacker must hold a valid account able to send private messages, and the victim must actively open the malicious message, so real-world abuse is limited to targeted attacks against a chosen user rather than unattended, broad compromise. It carries a vendor CVSS 4.0 score of 5.1 (our independent 3.1 assessment aligns at AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N), and no public exploit code or confirmed active exploitation (CISA KEV) was identified at time of analysis.
RemediationAI
No vendor-released patch or fixed version has been identified in the available data at time of analysis; the upstream issue tracker entry (https://github.com/banq/jivejdon/issues/28) and the VulnCheck advisory (https://www.vulncheck.com/advisories/jivejdon-through-5.0-stored-xss-via-private-short-messages) should be monitored for a tagged fix, and deployments should verify the current state of the referenced source files (application/shortmessage/receiveshortmessage.jsp and ShortMessageForm.java) before assuming they are remediated. Until a patched release is confirmed, the highest-value compensating control is to fix the sink directly: HTML-entity-encode the message body at output in receiveshortmessage.jsp using an escaping encoder such as OWASP Java Encoder or JSTL <c:out>, and stop relying on ToolsUtil.convertURL() for safety, since it only rewrites URLs and does not neutralize markup - the trade-off is that existing messages containing intentional HTML formatting will render as literal text. A strict Content-Security-Policy header with script-src 'self' (no 'unsafe-inline') on the short-message view will block injected inline script as a secondary layer, at the cost of breaking any legitimate inline scripts the application relies on, so it must be tested first. If immediate code changes are not feasible, restrict the ability to send private short messages to a trusted user group via Jivejdon's permission/site configuration, or disable the private short-message feature entirely, which removes the attack path but also removes a core community capability. Note that neither prerequisite can be bypassed by an anonymous visitor: exploitation requires an authenticated account that can send private messages plus the recipient opening the message (PR:L, UI:P per the assessed vector).
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 vulnerability is a classic CWE-79 improper neutralization of user input in an HTML output context, manifesting as persistent (stored) XSS within Jivejdon's private short-message feature. Message content is captured through ShortMessageForm (referenced at src/main/java/com/jdon/jivejdon/presentation/form/ShortMessageForm.java, lines 89-91) and later rendered by the JSP view receiveshortmessage.jsp (line 63). Critically, the rendering path pipes the body through ToolsUtil.convertURL(), a helper intended to auto-link URLs; it transforms URL-like text but performs no HTML-entity encoding, so markup such as script tags survives intact into the response. Because the payload is persisted with the message and re-rendered on each view, every subsequent render is an execution opportunity for that recipient, and the scope change (S:C) reflects that script runs in the victim's session context. The CPE cpe:2.3:a:banq:jivejdon:*:*:*:*:*:*:*:* indicates all published versions of the banq/jivejdon project up to and including 5.0 are in scope, as no version boundary has been published.
Know when Jivejdon 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:L/VI:L/VA:N/SC:L/SI:L/SA:N
Network-delivered stored XSS requiring a low-privileged authenticated sender (PR:L) and victim opening the message (UI:R); script executes across a security boundary into the victim's browser (S:C) with low C/I and no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Jivejdon through 5.0 contains a stored cross-site scripting vulnerability that allows authenticated attackers to inject script into private short messages because receiveshortmessage.jsp renders unfiltered message bodies. Attackers can send a short message containing script, which ToolsUtil.convertURL() passes through unchanged, to execute code in the recipient's browser when opened.
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.
Jivejdon through 5.0 stores account passwords as unsalted MD5 digests - computed by ToolsUtil.hash() and persisted throu
Missing rate limiting in Jivejdon's unauthenticated /account/smsVRAction endpoint allows remote attackers to send unlimi
SQL injection in Jivejdon through 5.0 allows an authenticated user with the Admin role to read arbitrary database conten
Authentication bypass in Jivejdon through 5.0 allows remote attackers to log in as any user whose account was created th
Authenticated users can delete other users' subscriptions in Jivejdon through 5.0 by sending a delete action with a vict
Reflected cross-site scripting in Jivejdon from commit 5489372d through ee67a65e allows unauthenticated remote attackers
Missing authorization in Jivejdon's UpdateThreadToForumAction (present from commit d58a36b0 through commit ee67a65e) let
Reflected cross-site scripting in Jivejdon through 5.0 lets an attacker execute arbitrary JavaScript in an authenticated
Cross-site request forgery in Jivejdon through 5.0 allows unauthenticated attackers to trick authenticated users into de
Stored cross-site scripting in Jivejdon through 5.0 lets an authenticated, upload-capable user store an attachment whose
Stored cross-site scripting in Jivejdon through 5.0 allows any authenticated forum user to inject JavaScript into a thre
Stored cross-site scripting in the JiveJdon forum platform (banq/jivejdon) from commit 595d8d22 through commit ee67a65e
EUVD-2026-95306
GHSA-rq35-wp93-7v6g
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB