Skip to main content

Cotonti CMS EUVDEUVD-2026-53379

| CVE-2026-71294 HIGH
Deserialization of Untrusted Data (CWE-502)
2026-08-05 TuranSec GHSA-rm37-v7mc-6795
7.6
CVSS 3.1 · Vendor: TuranSec
Share

Severity by source

Vendor (TuranSec) PRIMARY
7.6 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L
vuln.today AI
7.6 HIGH

Network-reachable via HTTP POST with no special conditions, but PR:L is mandatory as member authentication is required; C:H reflects gadget-chain RCE potential beyond the confirmed SQL write.

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

Primary rating from Vendor (TuranSec).

CVSS VectorVendor: TuranSec

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
Low
Availability
Low

Lifecycle Timeline

3
Analysis Generated
Aug 05, 2026 - 13:50 vuln.today
CVSS changed
Aug 05, 2026 - 13:37 NVD
7.7 (HIGH) 7.6 (HIGH)
CVE Published
Aug 05, 2026 - 12:38 cve.org
HIGH 7.6

DescriptionCVE.org

Cotonti CMS's Comments plugin deserializes user-supplied data without restricting the classes that may be instantiated. In plugins/comments/controllers/actions/CreateAction.php, a ci POST parameter obtained via cot_import('ci', 'P', 'TXT') (trim-only sanitization) is passed to unserialize(base64_decode($ci)) with no allowed_classes restriction, reachable by any member with write access to comments (the default Auth_members => 'RW' setting in plugins/comments/comments.setup.php). In plugins/comments/controllers/actions/EditAction.php, a cb parameter is similarly deserialized via unserialize(base64_decode($this->comeback)) in prepareComeBack(), reachable by any member editing their own comment. Because unserialize() is called without allowed_classes, an attacker can construct a serialized PHP object of any class loaded by Cotonti (a PHP Object Injection primitive). This was demonstrated in practice using Cotonti's own MySQL_cache class: a crafted serialized MySQL_cache object, once deserialized and later garbage-collected, triggers its __destruct()->flush() chain, causing an attacker-controlled INSERT INTO cot_cache with attacker-chosen row values - confirming genuine POP-chain exploitation, with further impact (including potential RCE) contingent on other gadget chains available in a given Cotonti installation's loaded classes. A third sink in DeleteAction.php contains the identical unserialize() pattern but is gated behind an admin-only authorization check and is not reachable by ordinary members.

AnalysisAI

PHP Object Injection in Cotonti CMS's Comments plugin grants any authenticated member a deserialization primitive reachable via two default-accessible sinks, with a working POP chain already demonstrated by the researcher. The ci POST parameter in CreateAction.php and the cb parameter in EditAction.php are both base64-decoded and passed to unserialize() without an allowed_classes restriction, allowing instantiation of any class loaded in the PHP runtime. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Recon
Register standard member account
Delivery
Craft serialized MySQL_cache (or other gadget) PHP object
Exploit
Base64-encode serialized payload
Install
POST payload as ci parameter to CreateAction.php
C2
PHP deserializes object without allowed_classes restriction
Execute
Garbage collection triggers __destruct() POP chain
Impact
Attacker-controlled SQL INSERT executed against cot_cache table

Vulnerability AssessmentAI

Exploitation Exploitation of the CreateAction and EditAction sinks requires a valid authenticated member account with comment write access, which is the default state under the `Auth_members => 'RW'` configuration in plugins/comments/comments.setup.php - any registered user on a default Cotonti installation qualifies without elevated privilege. … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment The CVSS 3.1 vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L and score of 7.6 accurately reflect a network-reachable, low-complexity attack requiring only a standard authenticated member account - the default permission level under `Auth_members => 'RW'`. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario An attacker registers a standard member account on a Cotonti site with default settings, serializes a crafted PHP object targeting the MySQL_cache class (or another loaded gadget), base64-encodes the payload, and submits it as the `ci` POST parameter when posting a new comment. PHP deserializes the object without class restriction; when the resulting instance is garbage-collected, its `__destruct()` method fires and executes the POP chain, causing an attacker-controlled INSERT INTO cot_cache with researcher-chosen row values. …
Remediation No vendor-released patched version has been identified at time of analysis; monitor https://github.com/Cotonti/Cotonti for upstream commits. … Detailed patch versions, workarounds, and compensating controls in full report.

Recommended ActionAI

Within 24 hours: Disable the Cotonti Comments plugin and audit member account activity logs for suspicious base64-encoded POST submissions to the CreateAction.php and EditAction.php endpoints via the 'ci' and 'cb' parameters. …

Sign in for detailed remediation steps and compensating controls.

Threat intelligence, references, and detailed analysis are available after sign-in.

More in PHP

View all
CVE-2012-1823 CRITICAL POC
9.8 May 11

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

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

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

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

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

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

CVE-2024-46506 CRITICAL POC
10.0 May 13

NetAlertX (formerly PiAlert) versions 23.01.14 through 24.x before 24.10.12 allow unauthenticated command injection thro

Share

EUVD-2026-53379 vulnerability details – vuln.today

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