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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
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
4DescriptionCVE.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.
AnalysisAI
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.
Technical ContextAI
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.
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.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
Same weakness CWE-352 – Cross-Site Request Forgery (CSRF)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-37855
GHSA-wx35-cv59-9gwr