CVE-2026-109901
Executive Summary
CVE-2026-109901 is a SQL Injection vulnerability (CWE-89) in the WordPress plugin "CP Multi View Event Calendar," maintained by Codepeople, affecting all versions up to and including 1.4.41. An authenticated attacker with low privileges can inject arbitrary SQL into queries executed by the plugin, leading to unauthorized database read access and potential data exposure. The vulnerability carries a CVSS v3.1 base score of 8.5 (High), with scope change and high confidentiality impact, though no public exploit or proof-of-concept is currently available.
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.
No signup required
Technical Analysis
The vulnerability is classified under CWE-89: Improper Neutralization of Special Elements used in an SQL Command. This class of flaw occurs when user-supplied input is concatenated into an SQL statement without proper parameterization or escaping, allowing an attacker to alter the query's logic.
The affected component is the WordPress plugin CP Multi View Event Calendar, which provides event calendar views for WordPress sites. The NVD description does not specify the exact file, function, or parameter responsible for the injection. No CVE Record Title (CNA Title) was provided, and the vendor/product fields in the source data are marked Unknown, though the description clearly names Codepeople and the plugin slug "cp-multi-view-calendar."
Key characteristics from the CVSS vector:
- AV:N (Network) — exploitable remotely over HTTP/HTTPS.
- AC:L (Low) — no special conditions beyond normal access.
- PR:L (Low) — the attacker must be authenticated with at least low-privilege access (e.g., a subscriber or contributor account in WordPress terms).
- UI:N (None) — no user interaction required.
- S:C (Changed) — successful exploitation can affect resources beyond the plugin's immediate security scope, potentially granting access to broader database contents.
- C:H (High) — significant confidentiality impact; the attacker can read sensitive data.
- I:N (None) — no integrity impact per the vector.
- A:L (Low) — some availability impact is possible.
The injection point is likely a parameter processed through the plugin's AJAX handlers or shortcode rendering path, but this cannot be confirmed from the available data. The lack of a CNA title and vendor confirmation means the specific vulnerable code path remains unidentified in open sources.
Because there is no patch and no public proof-of-concept, defenders must assume the injection point is reachable by any authenticated user interacting with the calendar's front-end or administrative views. The plugin is distributed via the WordPress plugin ecosystem, so any site running CP Multi View Event Calendar version 1.4.41 or earlier is potentially exposed.
Exploitation Scenarios
No public PoC or exploit code is available for CVE-2026-109901. The following attack chain is inferred strictly from the vulnerability class (SQL Injection) and the CVSS vector (PR:L, AV:N).
Reconnaissance / Target Identification An attacker identifies WordPress sites running the CP Multi View Event Calendar plugin. This can be done by fingerprinting publicly accessible calendar pages, plugin asset paths, or version-specific HTML markers. Shodan and similar services can be queried for the plugin slug or calendar-related page titles.
Authentication Because the CVSS vector specifies PR:L (Low privileges required), the attacker must first obtain a valid low-privilege account on the target WordPress site. This could be achieved through self-registration if enabled, credential stuffing, or social engineering. Unauthenticated exploitation is not indicated by the vector.
Triggering the SQL Injection The attacker sends a crafted HTTP request to an endpoint that passes user-controlled input into an SQL query within the plugin. The exact endpoint and parameter are unknown from the available data. At the vulnerability-class level, the attacker supplies SQL metacharacters (e.g., single quotes, UNION SELECT, boolean conditions) to manipulate the query logic. Since the flaw is CWE-89, the injection likely occurs in a query used for retrieving event data, filtering calendar views, or processing administrative actions.
Payload Execution / Data Exfiltration A successful injection allows the attacker to read arbitrary data from the WordPress database. Given the C:H rating, the attacker can potentially extract user credentials (password hashes), email addresses, private event details, and other sensitive records. The S:C rating suggests the impact may extend beyond the plugin's own tables to the broader WordPress database.
Post-Exploitation Impact With read access to the database, the attacker could escalate privileges by cracking password hashes, moving laterally to other WordPress sites sharing the same database credentials, or staging further attacks. The A:L rating indicates a limited availability impact, possibly through resource-intensive queries or error-based injection.
No exploit code, Nuclei template, or Metasploit module was observed for this CVE.
Impact Assessment
The business impact of CVE-2026-109901 is significant for organizations relying on WordPress with the CP Multi View Event Calendar plugin. The CVSS v3.1 base score of 8.5 reflects a high-severity issue:
- Confidentiality (High): Attackers can read sensitive database contents, including user credentials, private event data, and potentially other WordPress tables.
- Integrity (None per vector): The CVSS vector indicates no integrity impact, though in practice SQL injection can sometimes be leveraged for data modification; defenders should not assume read-only access is guaranteed.
- Availability (Low): Some disruption is possible, likely through heavy queries or error-based injection techniques.
- Scope (Changed): The vulnerability can affect resources beyond the plugin's own security context, meaning the impact may extend to the entire WordPress installation or shared database environment.
The affected systems are any WordPress installations running CP Multi View Event Calendar version 1.4.41 or earlier. The blast radius depends on the site's user base and the sensitivity of data stored in the WordPress database. Because the plugin is publicly distributed, the potential victim pool is broad, though exploitation requires authentication (PR:L).
No evidence of active exploitation, CISA KEV listing, or threat actor campaigns was found.
Detection Guidance
Sigma Rule
title: Potential SQL Injection Attempt Against CP Multi View Event Calendar
id: 8f3a2b1c-4d5e-6f7a-8b9c-0d1e2f3a4b5c
status: experimental
description: Detects SQL injection patterns in HTTP requests targeting WordPress sites running CP Multi View Event Calendar (CVE-2026-109901)
author: Threat Intelligence
date: 2026-01-01
logsource:
category: webserver
product: apache
service: access_combined
detection:
selection_url:
cs-uri-query|contains:
- 'cp-multi-view-calendar'
- 'cp_multi_view_calendar'
- 'cpmvc'
selection_sqli:
cs-uri-query|contains:
- 'UNION SELECT'
- 'union select'
- 'SELECT * FROM'
- 'information_schema'
- 'CONCAT('
- 'SLEEP('
- 'BENCHMARK('
- "' OR '"
- "' AND '"
- '1=1'
- '1=2'
condition: selection_url and selection_sqli
falsepositives:
- Legitimate administrative activity
- Security scanners
level: high
YARA Rule
rule CVE_2026_109901_SQLI_CP_MULTI_VIEW
{
meta:
description = "Detects SQL injection indicators in HTTP requests targeting CP Multi View Event Calendar"
author = "Threat Intelligence"
date = "2026-01-01"
cve = "CVE-2026-109901"
severity = "high"
strings:
$plugin = "cp-multi-view-calendar" ascii nocase
$sqli1 = "UNION SELECT" ascii nocase
$sqli2 = "information_schema" ascii nocase
$sqli3 = "' OR '" ascii nocase
$sqli4 = "SLEEP(" ascii nocase
condition:
$plugin and any of ($sqli*)
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2026-109901 SQL Injection Attempt Against CP Multi View Event Calendar"; flow:established,to_server; http.uri; content:"cp-multi-view-calendar"; http.uri; content:"UNION"; nocase; http.uri; content:"SELECT"; nocase; distance:0; sid:2026109901; rev:1; metadata:created_at 2026_01_01, cve CVE_2026_109901, confidence High; classtype:web-application-attack;)
Elastic Detection
sequence by source.ip with maxspan=5s
[network where network.protocol == "http" and url.query : "*cp-multi-view-calendar*" and url.query : ("*UNION SELECT*" or "*information_schema*" or "*SLEEP(*" or "*' OR '*")]
[network where network.protocol == "http" and url.query : "*cp-multi-view-calendar*" and url.query : ("*UNION SELECT*" or "*information_schema*" or "*SLEEP(*" or "*' OR '*")]
Splunk SPL Query
index=web sourcetype=access_combined
(uri_path="*cp-multi-view-calendar*" OR uri_query="*cp-multi-view-calendar*" OR uri_query="*cpmvc*")
(uri_query="*UNION*SELECT*" OR uri_query="*information_schema*" OR uri_query="*SLEEP(*" OR uri_query="*BENCHMARK(*" OR uri_query="*' OR '*" OR uri_query="*' AND '*")
| stats count by src_ip, uri_path, uri_query, status
| where count > 0
| sort - count
Wazuh OSSEC Rule
<group name="web,app,">
<rule id="2026109" level="12">
<decoded_as>web-accesslog</decoded_as>
<url>cp-multi-view-calendar</url>
<regex>UNION.*SELECT|information_schema|SLEEP\(|BENCHMARK\(|'\s+OR\s+'|'\s+AND\s+'</regex>
<description>CVE-2026-109901: SQL Injection attempt against CP Multi View Event Calendar plugin</description>
<mitre>
<id>T1190</id>
</mitre>
<group>sqli,web_attack,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source).
Immediate Mitigations
- Disable or remove the CP Multi View Event Calendar plugin if it is not essential. This eliminates the attack surface entirely.
- If the plugin must remain active, restrict access to calendar-related endpoints using a web application firewall (WAF) with virtual patching rules targeting SQL injection patterns.
- Enforce least privilege: audit all user accounts and remove or downgrade unnecessary accounts. Since the vulnerability requires low-privilege authentication (PR:L), reducing the number of authenticated users limits exposure.
- Implement strict input validation and escaping at the reverse proxy or WAF level for all parameters passed to the plugin.
Patch/Upgrade Steps
- No vendor patch or fixed version is currently available (affected versions: all through 1.4.41). Monitor the Codepeople plugin page and the WordPress plugin repository for an update.
- Subscribe to the NVD entry for CVE-2026-109901 and vendor communication channels for patch announcements.
- Once a patched version is released, test it in a staging environment and deploy immediately.
Long-Term Hardening
- Adopt a Web Application Firewall (WAF) with up-to-date SQL injection signatures.
- Enforce the principle of least privilege for WordPress roles; avoid granting elevated permissions to untrusted users.
- Regularly audit installed plugins and remove abandoned or unmaintained components.
- Implement database activity monitoring to detect anomalous SQL queries originating from the web application.
- Use parameterized queries and prepared statements in any custom code, and verify third-party plugins follow the same practice.
References
- NVD Entry — CVE-2026-109901: https://nvd.nist.gov/vuln/detail/CVE-2026-109901
- CWE-89: Improper Neutralization of Special Elements used in an SQL Command: https://cwe.mitre.org/data/definitions/89.html
- WordPress Plugin Repository — CP Multi View Event Calendar: https://wordpress.org/plugins/cp-multi-view-calendar/
- CISA Known Exploited Vulnerabilities Catalog (not listed): https://www.cisa.gov/known-exploited-vulnerabilities-catalog
- OWASP SQL Injection Prevention Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html
No known threat actor campaigns or exploit-in-the-wild evidence are associated with CVE-2026-109901 at this time.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.