Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with low-privilege account
-
DeliverySet nickname containing XSS payload
-
ExploitVictim opens private message contact list
-
ExecutionUnescaped nickname renders in title attribute
-
ImpactScript executes in victim browser
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 an authenticated low-privilege icms2 account (CVSS PR:L) to control a user nickname that is used in the Private Message Handler. The nickname is emitted unescaped into the title attribute of a contact anchor in templates/default/controllers/messages/index.tpl.php (and the modern template), so exploitation requires the attacker to appear as a contact in the victim's private-message list and requires the victim to load that contact list (UI:P). Limiting factors: a valid account is mandatory, victim interaction (viewing the messages page) is required, and the issue is confined to the message contact-list rendering in affected template versions up to 2.18.2. |
| Impact | This is a moderate, not urgent, issue. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P) and the resulting 5.1 score indicate a network-reachable but privilege- and interaction-gated flaw: PR:L confirms the attacker must hold a valid (low-privilege) icms2 account, and UI:P means a victim must view the affected page for the stored payload to fire. Impact is limited to VI:L with no confidentiality or availability impact in the supplied vector, consistent with a stored XSS in a private-message contact list rather than a system-compromising bug. Exploitation signal: the CVSS 4.0 exploit-maturity metric is E:P and the description states the exploit was publicly disclosed, so publicly available exploit code exists - but there is no CISA KEV listing and no EPSS score was provided, so there is no evidence of active or widespread exploitation. The POC existence raises likelihood of opportunistic abuse but should not be conflated with in-the-wild activity. Net: a real but low-to-moderate priority issue, appropriate to patch on a normal maintenance cycle rather than emergency timelines, especially given the niche deployment footprint of the product. |
| Exploit ScenarioDerived | An attacker registers or uses a low-privilege account and sets their user nickname to a string containing a script payload, then initiates private-message contact with a target user. When the victim opens their private messages contact list, the nickname is rendered unescaped inside an HTML title attribute, executing the attacker's script in the victim's browser session. A public proof-of-concept has been disclosed (CVSS E:P), lowering the effort needed to reproduce it. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 11, 2026
Stored cross-site scripting in InstantCMS 2 (icms2) up to 2.18.2 lets an authenticated low-privilege user inject script through the user 'nickname' field, which is rendered unescaped into the title attribute of contact links in the Private Message Handler templates (templates/default and templates/modern, controllers/messages/index.tpl.php). When a victim views the private-message contact list, the injected markup executes in their browser session, which can lead to session or content manipulation within the CMS, and because the payload is stored on the profile it can trigger whenever a contact list is rendered. An exploit has been disclosed publicly and may be used, but the issue is not confirmed as actively exploited (no CISA KEV listing); the assessed vector (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) reflects a moderate, interaction-dependent risk rather than an urgent remote-code-execution-class flaw.
RemediationAI
Apply the upstream fix by updating to an icms2 build that contains commit 3a1ec8fcb073a46d06a2ab83bc2bf68225834281; the concrete change is wrapping $contact['nickname'] in html() in templates/default/controllers/messages/index.tpl.php and templates/modern/controllers/messages/index.tpl.php, so if a tagged release incorporating it is not yet available (patch available per vendor advisory, exact release version not independently confirmed) the commit can be cherry-picked or the templates patched manually. Where patching is not immediately possible, compensating controls include restricting who can control nicknames (for example, constrain the nickname/profile field to an alphanumeric-only character set or an administrator-moderated allowlist in the user profile field settings), which removes the injection primitive but may inconvenience users with non-Latin or symbol-containing display names; temporarily disabling the user-registration path or requiring manual approval of new accounts reduces the exposure to untrusted low-privilege users, at the cost of blocking legitimate sign-ups; and disabling the Private Message module removes the vulnerable rendering path entirely, though it disables private messaging for all users. If custom themes are derived from default or modern, they must be reviewed for the same unescaped nickname interpolation, since the fix only covers the two shipped templates.
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
InstantCMS 2 is a PHP-based content management system that uses a custom template layer (.tpl.php files) plus a helper API; output escaping is expected via the html() helper, which was omitted in the affected templates. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation / cross-site scripting): the value of $contact['nickname'] was written directly into an HTML attribute context (title="..."), so an attacker-controlled nickname containing quote characters and script markup breaks out of the attribute and is parsed as HTML/JavaScript. The upstream fix (commit 3a1ec8fcb073a46d06a2ab83bc2bf68225834281) changes these interpolations to html($contact['nickname']) in both templates/default/controllers/messages/index.tpl.php and templates/modern/controllers/messages/index.tpl.php, i.e. an HTML-encoding correction. The CPE cpe:2.3:a:instantsoft:icms2:*:*:*:*:*:*:*:* indicates the vulnerability applies across icms2 release lines up to the stated 2.18.2 ceiling. Note that the referenced commit also carries unrelated menu copy/move refactoring (menu_item_move.php, form_menu_item_move.php, grid_menu_items.php, menu/model.php copyMenuItem), which is not the security-relevant change.
Know when Icms2 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:L/VA:N/SC:N/SI:N/SA:N/E:P
Stored XSS requires an authenticated account to set the nickname (PR:L) and victim page view (UI:R); browser execution crosses into the victim's context (S:C) with limited C/I and no availability impact.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
2DescriptionCVE.org
A vulnerability has been found in InstantSoft icms2 up to 2.18.2. This issue affects the function index of the file templates/default/controllers/messages/index.tpl.php of the component Private Message Handler. Such manipulation of the argument nickname leads to cross site scripting. The attack can be launched remotely. The exploit has been disclosed to the public and may be used. The name of the patch is 3a1ec8fcb073a46d06a2ab83bc2bf68225834281. It is best practice to apply a patch to resolve this issue.
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.
SQL Injection in GitHub repository instantsoft/icms2 prior to 2.16.1. Rated high severity (CVSS 7.2), this vulnerability
An authenticated user with low privileges on an InstantCMS 2 (icms2) installation running version 2.18.2 or earlier can
Insufficient authenticity verification in the PayPal billing handler of InstantSoft icms2 (version 2.18.2 and earlier) l
EUVD-2026-96869
GHSA-j944-2cmv-5vxf
NVD
CVE.org
EPSS
VulDB
Exploit-DB