Cotonti CMS's Comments plugin deserializes user-supplied data without restricting the classes that may be instantiated. (CVE-2026-71294)
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.
AI Analysis
Technical Summary
The vulnerability in Cotonti CMS's Comments plugin arises from deserializing base64-decoded user input without specifying allowed classes, enabling PHP Object Injection (CWE-502). Specifically, the 'ci' POST parameter in CreateAction.php and the 'cb' parameter in EditAction.php are deserialized unsafely. Attackers with write access to comments can craft serialized objects of any loaded class, demonstrated with the MySQL_cache class to trigger a __destruct()->flush() chain that inserts attacker-controlled data into the cot_cache database table. This confirms a practical POP (Property Oriented Programming) chain exploitation. The DeleteAction.php sink is restricted to admins and thus not exploitable by regular members. The vulnerability has a CVSS 3.1 score of 7.6 (high severity) with network attack vector, low attack complexity, privileges required, no user interaction, and high confidentiality impact.
Potential Impact
Successful exploitation allows attackers with write access to comments to perform PHP Object Injection, leading to arbitrary object instantiation. This can cause attacker-controlled database inserts and potentially remote code execution depending on the presence of other gadget chains in the Cotonti installation. Confidentiality, integrity, and availability impacts are high, with the ability to insert arbitrary data and possibly execute code. The vulnerability does not require user interaction but does require privileges to write comments (default setting).
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, restrict write access to comments to trusted users only and consider disabling the Comments plugin if feasible. Monitor for updates from Cotonti CMS regarding patches or official mitigations. Avoid using unserialize() on untrusted data or apply allowed_classes restrictions to prevent unsafe object instantiation.
Cotonti CMS's Comments plugin deserializes user-supplied data without restricting the classes that may be instantiated. (CVE-2026-71294)
Description
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.
CVSS v3.1
Score 7.6high
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in Cotonti CMS's Comments plugin arises from deserializing base64-decoded user input without specifying allowed classes, enabling PHP Object Injection (CWE-502). Specifically, the 'ci' POST parameter in CreateAction.php and the 'cb' parameter in EditAction.php are deserialized unsafely. Attackers with write access to comments can craft serialized objects of any loaded class, demonstrated with the MySQL_cache class to trigger a __destruct()->flush() chain that inserts attacker-controlled data into the cot_cache database table. This confirms a practical POP (Property Oriented Programming) chain exploitation. The DeleteAction.php sink is restricted to admins and thus not exploitable by regular members. The vulnerability has a CVSS 3.1 score of 7.6 (high severity) with network attack vector, low attack complexity, privileges required, no user interaction, and high confidentiality impact.
Potential Impact
Successful exploitation allows attackers with write access to comments to perform PHP Object Injection, leading to arbitrary object instantiation. This can cause attacker-controlled database inserts and potentially remote code execution depending on the presence of other gadget chains in the Cotonti installation. Confidentiality, integrity, and availability impacts are high, with the ability to insert arbitrary data and possibly execute code. The vulnerability does not require user interaction but does require privileges to write comments (default setting).
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, restrict write access to comments to trusted users only and consider disabling the Comments plugin if feasible. Monitor for updates from Cotonti CMS regarding patches or official mitigations. Avoid using unserialize() on untrusted data or apply allowed_classes restrictions to prevent unsafe object instantiation.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-rm37-v7mc-6795
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-71294"]
- Database Specific Severity
- HIGH
- Cvss Version
- 3.1
Threat ID: 6a738521bf8831d5394efa64
Added to database: 08/05/2026, 18:46:57 UTC
Last enriched: 08/05/2026, 19:11:23 UTC
Last updated: 09/17/2026, 22:01:38 UTC
Views: 44
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.