☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Cotonti logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 4.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N 🐛 CWE-352
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-93873

CVE-2026-93873 Cross-Site Request Forgery in Cotonti
📅 PUBLISHED: 2026-09-18 00:00 UTC 🔄 UPDATED: 2026-09-22 09:09 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🥷 MITRE: T1566
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Global License: Open Source
VULNERABLE: through 1.0.0 (all versions up to and including 1.0.0; no patched release identified)
CVSS VECTOR BREAKDOWN 4.3
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: U Scope Unchanged
C: N Confidentiality None
I: L Integrity Low
A: N Availability None
4.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-93873 is a Cross-Site Request Forgery (CSRF) vulnerability (CWE-352) in the Cotonti content management framework, affecting all versions through 1.0.0. The contact plugin submission handler fails to validate anti-CSRF tokens, allowing an attacker to auto-submit the contact form from an attacker-controlled page and send forged messages that are attributed to an authenticated victim and delivered to the administrator inbox. The impact is scoped to integrity of the contact-message channel (CVSS 4.3, I:L) rather than confidentiality or availability, and no public exploit, PoC, or Nuclei template currently exists.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The vulnerability class is Cross-Site Request Forgery. In a correctly implemented web application, any state-changing endpoint must require a per-session, unpredictable anti-CSRF token that is validated server-side before the request is processed. CVE-2026-93873 describes a failure of exactly this control in Cotonti's contact plugin submission handler: the handler processes submitted contact-form data without validating an anti-CSRF token.

Per the NVD description, the flaw is specifically located in the "contact plugin submission handler" of Cotonti through version 1.0.0. Because no anti-CSRF token is validated, a request that originates from a third-party (attacker-controlled) origin is indistinguishable from a legitimate in-application submission, provided the victim's browser carries a valid authentication session cookie to the target site. This is the classic CSRF trust-confusion condition: the browser automatically attaches ambient credentials (cookies) to cross-site requests, and the server, lacking token validation, accepts the forged request as authentic.

The attack surface is the contact plugin's message-submission endpoint. An adversary does not need prior access to the target application; they only need to know (or discover) a URL belonging to a Cotonti site running the contact plugin and craft an HTML page or scripted request that submits to it. The victim must be authenticated to the target Cotonti installation (so their session is used to authorize the forged message) and must load the attacker's page while that session is active. The resulting message is, per the description, "attributed to authenticated victims" and delivered "to the administrator inbox."

Two important limitations must be stated honestly. First, the NVD description does not disclose the exact endpoint path, parameter names, function names, or class names involved beyond "contact plugin submission handler"; those specifics are therefore not reproduced here and must not be assumed. Second, the interaction requirement (UI:R in the CVSS vector) is intrinsic to CSRF — exploitation is not remote-unauthenticated in isolation but depends on inducing a logged-in victim to load attacker content. No public proof-of-concept, exploit code, or detection template currently exists for this CVE, so the precise request format is inferred from the vulnerability class rather than observed.

Exploitation Scenarios

The attack chain for a CSRF flaw of this type proceeds as follows. No public PoC is available; the chain below is inferred from the vulnerability class and the NVD description, and does not rely on fabricated endpoints or parameter names.

  1. Reconnaissance / target identification. The attacker identifies a Cotonti installation (through 1.0.0) that exposes the contact plugin. Candidate targets can be enumerated with web-content fingerprinting (see Shodan dorks). The attacker confirms the contact submission behavior and determines whether the victim set (authenticated users) can be induced to visit an external page.

  2. Triggering the flaw class. The attacker hosts a page that issues a request to the target's contact plugin submission handler. Because the handler does not validate an anti-CSRF token, the origin of the request is not checked and no token comparison is performed. When an authenticated victim loads the attacker's page, their browser sends the request with the victim's session cookie attached automatically.

  3. Payload / execution method (class level). The forged request carries attacker-chosen message content. Because the description states the handler "fail[s] to validate anti-CSRF tokens," the forged submission is accepted server-side and processed as if it were a genuine contact-form submission. At the vulnerability-class level, the "payload" is a cross-site request, typically delivered via an auto-submitting HTML form or scripted submission embedded in the attacker page — the specific encoding/form fields are not disclosed in the source data.

  4. Post-exploitation impact. The submitted content is delivered to the administrator inbox and attributed to an authenticated victim. This yields message forgery/spoofing: the attacker can impersonate a legitimate user when communicating with site administration, including social-engineering, phishing, or reputation-damaging content.

Impact Assessment

The CVSS:3.1 base score is 4.3 (Medium) with the vector CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N. Interpretation, strictly per the vector:

  • AV:N (Network): the contact endpoint is reachable over the network.
  • AC:L (Low): no special conditions are required beyond the normal prerequisites of a CSRF against a logged-in victim.
  • PR:N (None): the attacker needs no prior privileges or credentials on the target.
  • UI:R (Required): a victim user must be induced to load the attacker's page while authenticated — this is the primary constraint.
  • S:U (Unchanged): the compromise does not cross a security authority boundary.
  • C:N, I:L, A:N: no confidentiality or availability impact; limited integrity impact. The integrity impact is limited because only the contact-message channel is affected (forged messages delivered to the admin inbox), not site content, accounts, or stored data.

Business impact: exposure is concentrated on trust and communication. Forged messages reaching the administrator inbox can be used for social engineering against administrators, misattribution of statements to legitimate users, and — at scale — reputational or operational disruption. The blast radius is limited to sites running the affected Cotonti contact plugin with authenticated users and no independent CSRF protection in place. There is no evidence of data exfiltration, code execution, or availability impact, and no CISA KEV listing or known in-the-wild exploitation.

Detection Guidance

Note: because no public PoC exists and the exact request parameters are not disclosed, the rules below are built to detect the general CSRF-to-contact-plugin pattern using commonly observable signals (cross-origin POSTs to contact endpoints, referer anomalies, and Cotonti-specific content). They should be tuned to the specific deployment.

Sigma Rule

title: Potential CSRF Exploitation of Cotonti Contact Plugin
id: 8f2c1b7a-3d64-4e0a-9c11-20260938773a
status: experimental
description: Detects web requests that POST to a Cotonti contact-plugin submission handler without a valid same-origin referer, consistent with CSRF (CWE-352) exploitation of CVE-2026-93873.
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2026-93873
author: valtersit.com
date: 2026-01-01
logsource:
  category: webserver
detection:
  selection_uri:
    cs-uri-stem|contains:
      - '/contact.php'
      - '/contact'
  selection_method:
    cs-method: 'POST'
  selection_referer_absent:
    cs-referer:
      - '-'
      - ''
  filter_same_origin:
    cs-referer|contains: 'cotonti'
  condition: selection_uri and selection_method and selection_referer_absent and not filter_same_origin
fields:
  - c-ip
  - cs-uri-stem
  - cs-referer
  - cs(User-Agent)
falsepositives:
  - Legitimate submissions from privacy-stripping proxies that omit Referer
  - Direct API or CLI submissions to the contact handler
level: medium
tags:
  - attack.t1566
  - cwe.352

YARA Rule

rule CVE_2026_93873_Cotonti_CSRF_Contact_Form
{
    meta:
        description = "Detects HTML artifacts consistent with a CSRF auto-submission page targeting the Cotonti contact plugin (CVE-2026-93873)"
        author = "valtersit.com"
        date = "2026-01-01"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-93873"
        cwe = "CWE-352"

    strings:
        $contact1 = "contact.php" ascii nocase
        $contact2 = "contact" ascii nocase
        $cotonti = "cotonti" ascii nocase
        $form1 = "<form" ascii nocase
        $form2 = "action=" ascii nocase
        $submit = "submit()" ascii nocase
        $autosubmit = "onload=" ascii nocase

    condition:
        (uint16(0) == 0x3C21 or uint16(0) == 0x3C68 or $form1) and
        ($cotonti and $contact1 and $form2) or
        ($contact1 and $form2 and ($submit or $autosubmit))
}

Suricata IDS Rule

alert http any any -> any any (msg:"CVE-2026-93873 Cotonti Contact Plugin CSRF Submission Attempt"; flow:to_server,established; http.method; content:"POST"; http.uri; content:"contact"; nocase; http.header; content:"Referer"; negate; content:"Referer"; sid:202693873; rev:1; metadata:cve CVE-2026-93873, cwe CWE-352; classtype:attempted-user; reference:url,nvd.nist.gov/vuln/detail/CVE-2026-93873;)

Elastic Detection

sequence by source.ip with maxspan=5s
  [network where network.protocol == "http" and http.request.method == "POST"
     and http.request.uri : "*contact*"]
  [network where network.protocol == "http" and http.request.method == "POST"
     and http.request.uri : "*contact*" and not http.request.referrer : "*cotonti*"]

Splunk SPL Query

index=web sourcetype=access_combined
| eval uri=lower(uri), referer=lower(referer)
| where like(uri, "%contact%") AND method="POST"
| eval same_origin=if(like(referer, "%cotonti%") OR like(referer, "%".host."%"), 1, 0)
| where same_origin=0
| stats count min(_time) as first_seen max(_time) as last_seen values(referer) as referers by src_ip, uri, host
| where count >= 1
| sort -count

Wazuh OSSEC Rule

<group name="web,cve-2026-93873,csrf,">
  <rule id="2026938" level="8">
    <if_sid>31100</if_sid>
    <id>^202693873$</id>
    <description>CVE-2026-93873: Potential CSRF exploitation of Cotonti contact plugin (POST to contact handler without same-origin referer).</description>
    <mitre>
      <id>T1566</id>
    </mitre>
    <group>cwe_352,</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source). No vendor fix, workaround, or affected-version advisory has been published. The guidance below is defense-in-depth and does not rely on a vendor-supplied patch.

  1. Immediate mitigations
  • Enforce anti-CSRF token validation at the contact plugin submission handler. Require a per-session, unpredictable token that is validated server-side on every state-changing request. This is the direct fix for CWE-352 and is the missing control the CVE describes.
  • If code modification is not immediately possible, place the contact plugin endpoint behind a reverse proxy / WAF rule that rejects cross-origin POSTs (e.g., require a same-origin Referer or a custom header), acknowledging this is a compensating control and is imperfect.
  • Restrict or temporarily disable the contact plugin submission form if forgery risk is unacceptable until a fix is applied.
  • Ensure session cookies are set with SameSite=Lax or SameSite=Strict and the Secure attribute, which materially reduces the cross-site request risk.
  1. Patch / upgrade steps
  • Monitor the Cotonti project and its security advisories for a release that adds CSRF token validation to the contact plugin. No patched version is currently identified.
  • When a fix ships, upgrade the Cotonti core and the contact plugin together, then verify that token validation is enforced.
  • Track the CVE record (NVD URL below) for updates to affected-version and fix information.
  1. Long-term hardening
  • Adopt a framework-wide CSRF defense: token validation on all state-changing endpoints, same-site cookies, and origin/Referer checks where tokens are impractical.
  • Add regression tests that assert the contact handler rejects requests lacking a valid token.
  • Deploy the detection rules above for monitoring, and review administrator-inbox content for evidence of forged or spoofed messages.

References

Threat actor / in-the-wild note: There is no evidence of exploit-in-the-wild activity, threat-actor attribution, public PoC, or Nuclei template for CVE-2026-93873 at the time of writing. The vulnerability is not in the CISA KEV catalog.

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-93873/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.