Skip to main content

Cotonti CVE-2026-100522

| EUVDEUVD-2026-87377 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-09-26 VulnCheck GHSA-6r43-xr6w-qprx
5.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft malicious link with script in lng param
  2. Delivery
    Deliver link to victim via phishing
  3. Exploit
    Victim opens message.php URL
  4. Execution
    Payload reflected unescaped into dialog
  5. Impact
    JavaScript executes in victim 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 an unauthenticated attacker to deliver a crafted message.php link with a script payload in the lng parameter AND a victim to open that link in an authenticated or interactive browser session (CVSS UI:A/UI:R). The affected code path is the confirmation dialog in message.php on Cotonti versions through 1.0.0, where the lng value is echoed without htmlspecialchars() escaping. Limiting factors: required user interaction (no drive-by/automatable exploitation), session-scoped impact only (no server-side code execution or data compromise), and the narrow low-footprint product base. A vendor patch is available, so exposure is limited to unpatched instances.

Impact

This is a classic reflected cross-site scripting flaw (CWE-79) rated moderate at CVSS 4.0 5.1. The vendor 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:A/SC:L/SI:L) confirms network-reachable, low-complexity, unauthenticated exploitation, but requires victim interaction (UI:A) - the attacker must lure a user into clicking a crafted link, so it is not a wormable or automatable issue. Impact is confined to the subsequent system (the victim's browser session), rated Low confidentiality/integrity with no availability impact, consistent with reflected XSS rather than server compromise. No EPSS score, no CISA KEV listing, and no public exploit code are present in the provided data, so exploitation status is: no public exploit identified at time of analysis. The vulnerability was reported by VulnCheck and a vendor patch (PR #1908) exists, which raises credibility of the finding while lowering urgency. Net: a real but low-priority issue - genuine unauthenticated reflected XSS, but gated by required user interaction, limited to session-level impact, and in a low-footprint product; not a high-real-risk emergency.

Exploit ScenarioDerived

An attacker crafts a URL to a Cotonti site's message.php with a JavaScript payload injected into the lng parameter and delivers it via phishing email, forum post, or chat. When a victim clicks the link, the unescaped lng value is reflected into the confirmation dialog and executes in their browser, allowing session cookie theft or actions performed as the victim. No authentication is needed by the attacker, but the victim must open the malicious link; no public POC is indicated.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 26, 2026

Reflected cross-site scripting in the Cotonti CMS through 1.0.0 allows an unauthenticated attacker to execute arbitrary JavaScript in a victim's browser by luring them to a crafted link whose lng parameter is echoed without escaping into the message.php confirmation dialog. Exploitation requires victim interaction (remote, unauthenticated, UI:A per the assessed CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N vector), and the impact is session-scoped - session/cookie theft, phishing-style content injection, or actions performed as the victim - with no server-side code execution or data compromise. An upstream fix has been published (GitHub PR 1908) and no public exploit code or confirmed active exploitation has been identified at time of analysis.

RemediationAI

Apply the upstream fix: the vendor classifies a patch as available and the correction is published as GitHub pull request 1908 (https://github.com/Cotonti/Cotonti/pull/1908), which escapes the lng fallback with htmlspecialchars() in message.php; because the fix is delivered as a pull request rather than a clearly tagged release, confirm the exact patched version or release tag with the project before relying on it, tracking the repository at https://github.com/Cotonti/Cotonti. If patching cannot be done immediately, the narrowest effective workaround is to block or temporarily remove public access to message.php (for example, a webserver ACL or rewrite rule returning 403/404), accepting that users lose the confirmation-dialog functionality it provides. As a secondary control, add a WAF or reverse-proxy rule rejecting requests to message.php whose lng parameter contains angle brackets, quotes, or javascript: style payloads, recognizing such filters are bypassable and only reduce risk; a restrictive Content-Security-Policy (script-src 'self' or nonce-based) limits payload execution but may break legitimate inline scripts. Server-side output encoding of the lng parameter and rejection of protocol-relative redirect targets in message.php mirror the changes in PR 1908. With no KEV listing and no identified public exploit code, this should be handled as a moderate-severity issue whose exposure is limited to unpatched instances.

Affected VersionsENISA

Cotonti 0 ≤1.0.0

Affected Packages

euvd cotonti no fix

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

Cotonti is an open-source PHP/MySQL content-management framework, and message.php renders a confirmation dialog in which the lng request parameter is used as a language-array key and, when no translation matches, echoed directly to the page ($body = isset($L[$lng]) ? $L[$lng] : $lng). Because that fallback value is never encoded, attacker-controlled query-string input lands in the HTML response, the textbook definition of CWE-79 improper neutralization of input during web page generation (reflected XSS). The fixing PR 1908 applies htmlspecialchars() to that fallback and also hardens adjacent code paths: redirect handling in message.php and modules/page/inc/page.main.php now validates targets with cot_url_check() and rejects protocol-relative '//' and off-site redirects (open-redirect/CRLF abuse), CSRF tokens via cot_check_xg() are added to forum new-topic/posts and page add/edit actions, category titles in page.list.php are escaped, and datas/.htaccess is broadened to block execution of php3-php8, phtml, phar, shtml, cgi, pl and html-like files. The only affected CPE provided is cpe:2.3:a:cotonti:cotonti:*:*:*:*:*:*:*:*, i.e. all Cotonti versions through 1.0.0.

Know when Cotonti 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

Vendor (VulnCheck) PRIMARY 5.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
vuln.today AI 6.1 MEDIUM

Unauthenticated network-delivered reflected XSS requiring victim click (UI:R); scope change to browser (S:C) with low confidentiality/integrity and no availability impact.

3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Active
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

DescriptionCVE.org

Cotonti through 1.0.0 contains a reflected cross-site scripting vulnerability in message.php where the lng parameter is not properly escaped before output in the confirmation dialog. Unauthenticated attackers can craft malicious links with script payloads in the lng parameter to execute arbitrary JavaScript in victim browser sessions.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Rare
obscure open-source PHP CMS/framework with small deployment footprint
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2013-4789 HIGH POC
7.5 Aug 09

SQL injection vulnerability in modules/rss/rss.php in Cotonti before 0.9.14 allows remote attackers to execute arbitrary

CVE-2026-55742 CRITICAL
9.4 Jun 18

Cross-site request forgery in Cotonti 1.0.0 (commit f43f1fc3) lets a remote attacker escalate privileges to administrato

CVE-2026-91939 CRITICAL
9.3 Sep 15

PHP object injection in the Cotonti 1.0.0 Comments plugin allows unauthenticated, network-reachable attackers to instant

CVE-2025-44115 MEDIUM POC
5.4 Jun 02

A vulnerability has been found in Cotonti Siena v0.9.25. Affected by this vulnerability is the file /admin.php?m=config&

CVE-2021-47808 MEDIUM POC
5.4 Jan 16

Cotonti Siena 0.9.19 contains a stored cross-site scripting vulnerability in the admin configuration panel's site title

CVE-2024-24115 MEDIUM POC
5.4 Feb 08

A stored cross-site scripting (XSS) vulnerability in the Edit Page function of Cotonti CMS v0.9.24 allows authenticated

CVE-2026-93868 CRITICAL
9.2 Sep 18

Unauthenticated attackers can reset the password of any Cotonti account, including administrator accounts, because passw

CVE-2022-39840 MEDIUM POC
4.8 Sep 05

Cotonti Siena 0.9.20 allows admins to conduct stored XSS attacks via a direct message (DM). Rated medium severity (CVSS

CVE-2022-39839 MEDIUM POC
4.8 Sep 05

Cotonti Siena 0.9.20 allows admins to conduct stored XSS attacks via a forum post. Rated medium severity (CVSS 4.8), thi

CVE-2026-55741 HIGH
8.7 Jun 18

Cross-site request forgery in Cotonti 1.0.0 (commit f43f1fc3) administration configuration handler allows a remote attac

CVE-2026-55744 HIGH
8.6 Jun 18

Cross-Site Request Forgery in the Personal File Storage (PFS) module of Cotonti 1.0.0 (commit f43f1fc3) allows remote at

CVE-2026-93872 HIGH
7.7 Sep 18

PHP object injection in Cotonti 1.0.0 allows authenticated users with comment-write permissions to pass attacker-control

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy