Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify Cotonti site with PFS enabled
-
DeliveryHost page with auto-submitting multipart form targeting pfs.php?a=upload
-
ExploitLure authenticated victim to page (phishing/link)
-
ExecutionBrowser submits forged POST with session cookie
-
PersistUpload handler skips cot_check_xg() and accepts file
-
ImpactArbitrary file written to victim's PFS storage
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK
1 technique across 1 tactic: Initial Access 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) the target Cotonti instance to have the Personal File Storage (PFS) module enabled and accessible at its standard entry point, (2) a victim who is currently authenticated to that Cotonti site, and (3) that victim to load attacker-controlled HTML in the same browser (UI:P - passive interaction such as clicking a link or viewing a page with an auto-submitting form). Limiting factors: the attack cannot succeed against logged-out users; modern browsers' default SameSite=Lax cookie behavior will block cross-site multipart POSTs unless the Cotonti session cookie explicitly sets SameSite=None; impact is confined to the individual victim's PFS area rather than global site state; and the attacker gains no direct shell - only the ability to write files the victim is permitted to upload, so further impact depends on whether uploaded content is later executed, served, or parsed unsafely. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N) yields a base score of 8.6 driven by network reach, low complexity, no attacker authentication, and high confidentiality/integrity impact on the user's PFS contents; the UI:P (passive user interaction) accurately reflects that the victim must visit a hostile page while logged in. PR:N is from the attacker's standpoint - Cotonti correctly notes the *victim* must be authenticated, which is intrinsic to CSRF and not a vector mismatch. No CISA KEV listing, no EPSS score, and no public exploit identified at time of analysis, so the realistic priority is moderate rather than emergency: exploitation requires social engineering of a logged-in Cotonti user, and impact is scoped to that user's PFS area unless chained with a downstream parser/RCE flaw. SSVC signals (automatable, technical impact) are not provided; the CISA-style 'automatable' assessment would lean yes because the forged request is deterministic, but the per-victim requirement caps blast radius. |
| Exploit ScenarioDerived | An attacker publishes a webpage containing an auto-submitting HTML form that POSTs a multipart/form-data body with arbitrary file content to the target Cotonti site's pfs.php?a=upload endpoint. A logged-in Cotonti user is lured to the page (phishing link, malicious ad, forum embed); their browser silently attaches the session cookie and the upload completes, planting attacker-chosen files in the victim's PFS storage that can later be referenced, exhausted for quota abuse, or chained with any downstream file-handling weakness. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Jun 18, 2026
Cross-Site Request Forgery in the Personal File Storage (PFS) module of Cotonti 1.0.0 (commit f43f1fc3) allows remote attackers to upload arbitrary files into an authenticated victim's storage by luring them to a malicious page. The 'a=upload' action in modules/pfs/inc/pfs.main.php omits the cot_check_xg() anti-CSRF token check that sibling actions like 'delete' enforce. No public exploit identified at time of analysis, though the root cause is documented in the public source code reference.
Earlier versions of this analysis (1)
Cross-site request forgery in Cotonti 1.0.0 (master branch, commit f43f1fc3) lets a remote attacker upload arbitrary files into an authenticated victim's Personal File Storage (PFS) by tricking them into visiting a malicious page. The flaw is in modules/pfs/inc/pfs.main.php, where the 'a=upload' action omits the cot_check_xg() anti-CSRF token check that sibling actions like 'delete' enforce. No public exploit identified at time of analysis and the CVE is not in CISA KEV; EPSS data was not provided.
RemediationAI
No vendor-released patch identified at time of analysis - references point only to the vulnerable source file and the project repository, not to a tagged fix release. The minimal upstream remediation is to add a cot_check_xg() (or equivalent token validation) call at the top of the 'a=upload' branch in modules/pfs/inc/pfs.main.php, mirroring the existing guard on the 'delete' action at line 272; operators comfortable patching PHP can apply this change locally pending an official release. As compensating controls until a vendor fix lands, administrators can restrict the PFS module to trusted authenticated users via existing Cotonti permission groups (reduces attacker pool but does not eliminate the bug), enforce a strict SameSite=Lax or Strict cookie attribute on the Cotonti session cookie at the PHP or reverse-proxy layer (breaks cross-site multipart POSTs but may interfere with legitimate cross-origin embeds), or front the site with a WAF rule that requires a Referer/Origin matching the Cotonti host for /pfs.php?a=upload requests (low side effects but bypassable if Referer is suppressed). Monitor https://github.com/Cotonti/Cotonti for an upstream commit and apply once tagged.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in composer, 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-based content management framework. The flaw sits in its Personal File Storage (PFS) module, a per-user file area whose entry point modules/pfs/inc/pfs.main.php dispatches actions via the 'a' query parameter. Cotonti centralizes CSRF protection through the cot_check_xg() helper, which validates a per-session 'x' token; the 'delete' action invokes it (line 272) but the 'upload' branch (referenced near line 118) does not, so multipart POSTs ride solely on the victim's session cookie. This is a textbook CWE-352 (Cross-Site Request Forgery) instance - a state-changing handler that trusts ambient browser credentials without verifying request provenance.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Network-reachable forged POST, no attacker auth (PR:N), victim must click/visit (UI:R); high integrity from arbitrary file write to victim PFS, low confidentiality (uploaded content may be retrievable), no availability impact.
Primary rating from Vendor (TuranSec).
CVSS VectorVendor: TuranSec
Lifecycle Timeline
2DescriptionCVE.org
Cotonti 1.0.0 (master branch, commit f43f1fc3) is vulnerable to Cross-Site Request Forgery in the Personal File Storage (PFS) module. In modules/pfs/inc/pfs.main.php, the file upload action ('a=upload') processes uploaded files without calling cot_check_xg() to validate the anti-CSRF token, even though sibling actions such as 'delete' (line 272) do. A remote attacker who lures an authenticated user into visiting a malicious page can force the browser to submit a forged multipart request that uploads arbitrary files into the victim's PFS storage.
Executive ViewAI
Cotonti 1.0.0 contains a Cross-Site Request Forgery vulnerability in its Personal File Storage module that allows attackers to trick authenticated users into uploading arbitrary files to their storage accounts. This exposes organizations to unauthorized data placement, potential malware delivery, and compliance violations if user files contain sensitive information. The vulnerability affects any organization deploying this version without immediate mitigation.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Implement WAF rules to validate CSRF tokens on all file upload operations; (2) Disable the PFS module entirely if not business-critical; (3) Restrict upload permissions to designated administrators only; (4) Monitor upload logs for anomalies; (5) Enforce browser-level SameSite cookie policies (SameSite=Strict) to reduce CSRF attack surface.
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 Request Forgery exploits the automatic credential inclusion behavior of web browsers.
Malicious file upload attacks exploit insufficient validation when web applications accept user-provided files.
SQL injection vulnerability in modules/rss/rss.php in Cotonti before 0.9.14 allows remote attackers to execute arbitrary
Cross-site request forgery in Cotonti 1.0.0 (commit f43f1fc3) lets a remote attacker escalate privileges to administrato
PHP object injection in the Cotonti 1.0.0 Comments plugin allows unauthenticated, network-reachable attackers to instant
A vulnerability has been found in Cotonti Siena v0.9.25. Affected by this vulnerability is the file /admin.php?m=config&
Cotonti Siena 0.9.19 contains a stored cross-site scripting vulnerability in the admin configuration panel's site title
A stored cross-site scripting (XSS) vulnerability in the Edit Page function of Cotonti CMS v0.9.24 allows authenticated
Unauthenticated attackers can reset the password of any Cotonti account, including administrator accounts, because passw
Cotonti Siena 0.9.20 allows admins to conduct stored XSS attacks via a direct message (DM). Rated medium severity (CVSS
Cotonti Siena 0.9.20 allows admins to conduct stored XSS attacks via a forum post. Rated medium severity (CVSS 4.8), thi
Cross-site request forgery in Cotonti 1.0.0 (commit f43f1fc3) administration configuration handler allows a remote attac
PHP object injection in Cotonti 1.0.0 allows authenticated users with comment-write permissions to pass attacker-control
PHP Object Injection in Cotonti CMS's Comments plugin grants any authenticated member a deserialization primitive reacha
EUVD-2026-37855
GHSA-wx35-cv59-9gwr
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB