Skip to main content

Ultra Addons for Contact Form 7 EUVDEUVD-2026-102660

| CVE-2026-103999 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-16 Wordfence GHSA-3658-jvcq-xc7g
7.2
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Access plugin's CF7 upload form
  2. Delivery
    Upload .txt/.csv file starting with HTML payload
  3. Exploit
    Bypass extension blocklist as text/plain
  4. Execution
    Payload stored and rendered in page
  5. Impact
    Script executes in visitor/admin browser

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the target WordPress site to run this plugin's file-upload/database add-on feature on a Contact Form 7 form, since that upload handler is the injection point. The specific bypass condition: the attacker must upload a file bearing an allowed text extension (.txt, .csv, .vtt, .srt, .asc) whose byte content begins with an HTML payload (e.g., '<BODY onload=…>'), exploiting that the blocklist gatekeeper classifies such files as text/plain by extension without inspecting content. Per CVSS PR:N, no authentication is required. The practical limiting factor is that the stored payload only executes when a user subsequently loads the injected page, and only sites that both run the plugin and expose its upload feature are affected - so the flaw does not apply to default WordPress or to deployments not using this add-on's upload function.

Impact

This is a credible, moderate-priority web vulnerability rather than an emergency. The source (Wordfence) is a reputable WordPress vulnerability authority, and the CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C, score 7.2) describes a network-reachable, low-complexity flaw requiring no privileges and no user interaction to inject, with a scope change reflecting that the payload executes in the browser context of other users. Exploitation status is 'no public exploit identified at time of analysis' - the input contains no CISA KEV listing, no POC flag, and no EPSS probability, so there is no evidence of active or automated exploitation; the absence of EPSS means widespread-exploitation likelihood cannot be quantified from this data. Impact is bounded: confidentiality and integrity are rated Low and availability None, consistent with stored XSS (session/cookie theft, admin-action forgery, content defacement in the victim's browser) rather than direct server compromise. The real-world risk is tempered by the fact that the flaw only matters on sites actually using this specific add-on's file-upload/database feature, and the stored payload still requires a victim to load the injected page before it fires. Net: a genuine unauthenticated stored XSS worth patching promptly on affected sites, but not a drop-everything issue absent evidence of exploitation.

Exploit ScenarioDerived

An unauthenticated attacker submits a Contact Form 7 form handled by this plugin and attaches a file with a permitted text extension (e.g., payload.txt) whose contents begin with an HTML payload such as '<BODY onload=alert(document.cookie)>'. Because the gatekeeper classifies the upload as text/plain by extension without inspecting byte content, the file is stored and later rendered on a plugin-generated page, and the script executes in the browser of any user - including a logged-in administrator - who views that page. No public exploit code is identified at time of analysis, but the technique is fully described in the advisory.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 16, 2026

Stored cross-site scripting in the Ultra Addons for Contact Form 7 WordPress plugin (all versions up to and including 3.5.54) lets unauthenticated attackers upload a text-type file whose contents begin with HTML markup, which is then persisted and executed in the browser of any user who later views the injected page - a classic CWE-79 stored XSS. Per the assessed vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N (7.2), no authentication or user interaction is needed to deliver the payload, though execution depends on a victim subsequently loading the affected page. Exploitation is only reachable on sites that run the plugin and expose its file-upload/database add-on on a Contact Form 7 form; there is no public exploit identified at time of analysis and the issue is not in CISA KEV, so this is a credible moderate-priority web flaw rather than an emergency.

RemediationAI

Vendor-released patch version beyond 3.5.54 is not independently confirmed in the supplied data; what is available is an upstream fix commit/changeset to the upload handler at https://plugins.trac.wordpress.org/changeset/3738548/ultimate-addons-for-contact-form-7/trunk/addons/database/database.php - treat this as 'Upstream fix available (PR/commit); released patched version not independently confirmed', and check the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/29b9d978-f8b0-48f9-a10e-7e61a4f4a828?source=cve) and the plugin's WordPress.org page for the first tagged release newer than 3.5.54 before rolling out; do not install arbitrary trunk builds on production. Until a patched release is validated, the most effective compensating control is to disable the plugin's file-upload/database add-on or remove the CF7 file-upload field from any publicly reachable form - this fully closes the injection point but removes legitimate file-upload functionality. If uploads must stay enabled, restrict accepted extensions server-side to non-text types (dropping .txt, .csv, .vtt, .srt and .asc), enforce a server-side content-type/magic-byte check rather than an extension blocklist, and store uploads outside the web root or serve them with Content-Disposition: attachment plus a restrictive Content-Security-Policy and X-Content-Type-Options: nosniff so stored HTML is never parsed as markup; each of these trades off usability or requires web-server configuration. A WAF rule blocking uploads whose leading bytes contain HTML tags (e.g. '<body', 'onload=') can reduce exposure but is bypassable by encoding and should not be the sole control. Also audit and purge previously stored uploads for injected markup.

Affected VersionsENISA

Ultra Addons for Contact Form 7 0 ≤3.5.54

Affected Packages

euvd ultra_addons_for_contact_form_7 no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The target is a WordPress plugin that extends Contact Form 7 (CF7) by registering a file-upload/database add-on; CP7 submissions are handled by the plugin's own upload handler in addons/database/database.php, with helper logic in inc/functions.php. Root cause is an insufficient input-sanitization and output-escaping flaw (CWE-79): the plugin's extension blocklist acts as a gatekeeper that classifies an uploaded file as text/plain purely from its allowed extension (.txt, .csv, .vtt, .srt, .asc) without inspecting the file's byte content. Because the gatekeeper only looks at the extension rather than sniffing the payload, a file whose first bytes are HTML such as '<BODY onload=...>' passes validation, is stored, and is later rendered into a page without adequate escaping, so the browser parses the stored bytes as markup. The CVSS vector's changed scope (S:C) reflects that the injected script executes in the context of the vulnerable site's origin rather than the attacker's, which is what makes stored XSS in a CMS plugin meaningful. CPE data maps the affected component to cpe:2.3:a:themefic:ultra_addons_for_contact_form_7:*:*:*:*:*:*:*:* (vendor Themefic), with the wildcard confirming that the version range rather than a single build is affected; the referenced code lines (database.php L869, L895, L901 and functions.php L1703 in tag 3.5.52) point at the upload/validation path where the extension-only check and the unsanitized storage occur.

Know when Ultra Addons For Contact Form 7 gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Wordfence) PRIMARY 7.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 7.2 HIGH

Unauthenticated network upload (AV:N/PR:N/AC:L); stored payload executes in other users' browser context giving scope change (S:C) with low confidentiality/integrity impact and no availability loss.

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

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionCVE.org

The Ultra Addons for Contact Form 7 plugin for WordPress is vulnerable to Stored Cross-Site Scripting via File Upload in all versions up to, and including, 3.5.54 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The extension blocklist gatekeeper is bypassed by uploading text-type files (.txt, .csv, .vtt, .srt, .asc) whose contents begin with an HTML payload such as '<BODY onload=…>', as the check classifies these files as text/plain without inspecting their byte content.

Executive ViewAI

Why It Matters

A stored cross-site scripting flaw in the Ultra Addons for Contact Form 7 WordPress plugin, affecting all versions up to and including 3.5.54, lets an unauthenticated attacker plant malicious content that executes in the browser of anyone who later views the injected page. Because the payload persists on the site, every subsequent visitor - including administrators - is exposed, creating risk of session theft, credential compromise, and reputational damage to public-facing web properties. Leadership should care because the issue is remotely reachable without credentials and remediation currently depends on manual mitigation rather than a vendor fix.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: deactivate Ultra Addons for Contact Form 7 (versions up to and including 3.5.54) or disable its file-upload/database add-on on all Contact Form 7 forms; restrict uploads to an allowlist of non-executable content types and reject any file whose contents begin with HTML markup; sanitize and output-encode stored form-entry data before rendering; deploy a web application firewall rule or Content Security Policy that blocks inline and untrusted script execution; and limit which accounts can view or administer submitted form entries.

Threat Intelligence Overview

EPSS Score
0.3%
Top 84% exploitable
Prevalence
Low
Contact Form 7 add-on plugin with limited install base
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

Malicious file upload attacks exploit insufficient validation when web applications accept user-provided files.

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