Skip to main content

Webmention Plugin EUVDEUVD-2026-114592

| CVE-2026-111109 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-31 Wordfence GHSA-98q7-93hh-5593
6.1
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Host page with malicious og:title meta tag
  2. Delivery
    Send webmention to target post URL
  3. Exploit
    Plugin stores og:title name raw as pending comment
  4. Execution
    Administrator approves pending webmention comment
  5. Impact
    Script executes in site visitors' browsers

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

Requires the Webmention plugin (author pfefferle) installed and active on WordPress at version 5.10.1 or earlier, with webmention receiving enabled. The attacker places the payload in the Open Graph og:title meta tag of a source URL and submits a webmention to a target post. Exploitation is strictly gated on an administrator manually approving the resulting pending webmention comment - per the description the attacker cannot trigger execution on their own (this is the UI:R factor). The script then runs when any user views the injected page. The limiting factors are therefore: mandatory administrator moderation/approval of the pending comment, and the specific affected version range; no authentication is required of the attacker (PR:N) and the submission path is remote and network-reachable.

Impact

This is a genuine but moderate-priority issue, not an inflated high-CVSS alarm. The CVSS 3.1 vector (6.1, AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N) tells a consistent story with the description: a network-reachable, unauthenticated attacker (PR:N) can submit the payload, but exploitation cannot complete without an administrator action (reflected in UI:R) - the description states explicitly that an admin must approve the resulting pending webmention comment before the stored script executes, and the attacker cannot trigger it alone. This human-in-the-loop requirement is the single biggest risk-reducer. No EPSS score was provided in the input, the vulnerability is not listed in CISA KEV, and no proof-of-concept exploit is present, so there is no public exploit identified at time of analysis; these signals point away from widespread opportunistic exploitation. Counterbalancing that, the vendor PR #698 and WordPress trac diff are public and clearly reveal the mechanism (og:title → Item::name stored raw, kses hooks removed in Receiver::process before wp_new_comment), which lowers the research barrier for anyone building an exploit. The vuln.today decision label is 'this_month' (not act_now or emergency), which aligns with the medium severity and absence of active-exploitation signals: patch within a normal monthly cycle rather than as an emergency. Real-world risk is further bounded by the plugin's niche deployment footprint.

Exploit ScenarioDerived

An attacker publishes a web page whose Open Graph og:title meta tag contains a script payload (e.g. an img tag with an onerror handler) and sends a webmention pointing that source URL at a target post on the victim WordPress site. The plugin fetches the source, maps og:title to Item::name and stores it unsanitized as a pending comment; when a site administrator later approves that pending webmention comment, the script executes in the browser of anyone viewing the affected page. No public exploit was identified at time of analysis, though the vendor patch diff publicly discloses the exact mechanism.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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 31, 2026

Stored cross-site scripting in the Webmention plugin for WordPress (versions up to and including 5.10.1) lets an unauthenticated attacker place script inside the og:title meta tag of a source URL and submit it as a webmention, which is then persisted verbatim into the target post's comment content. Execution is gated on an administrator approving the resulting pending comment, after which the script runs for any user who views the injected page; no public exploit code was identified at time of analysis, and the vendor has released 5.10.2 as the fix.

RemediationAI

Vendor-released patch: Webmention 5.10.2, which adds the sanitizing Item::set_name() method and the output-escaping fixes from pull request 698 (https://github.com/pfefferle/wordpress-webmention/pull/698); upgrade from 5.10.1 or earlier to 5.10.2 or later via the WordPress plugin updater or the plugin's Trac release at https://plugins.trac.wordpress.org/browser/webmention/tags/5.10.2/includes/class-receiver.php. Because exploitation depends on an administrator approving the pending webmention comment that carries the payload, a temporary compensating control is to hold and manually inspect pending webmention comments before approval - particularly rows whose derived content originates from a source page's og:title - with the trade-off of increased moderation workload and delayed legitimate webmentions; disabling webmention receiving entirely on the affected version removes the attack path at the cost of losing the feature. Reviewing the advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/0b283d17-b89f-467d-8a79-cdf7b9bfdb65?source=cve alongside the patch confirms the affected entry points (Meta, Item, Receiver) that should be verified as updated.

Affected VersionsENISA

Webmention 0 ≤5.10.1

Affected Packages

euvd webmention 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 flaw is a classic CWE-79 input-sanitization gap spread across three code paths in the plugin. Meta::add_properties() maps the Open Graph og:title value of a fetched source page onto the Item::name property, but Item defines no concrete set_name() method, so the magic Item::__call() handler writes the value raw - unlike the sibling set_content() and set_summary() setters, which pass their input through webmention_sanitize_html(). Item::get_content() later falls back to that raw name whenever content and summary are empty, and Receiver::process() explicitly removes the core wp_filter_kses and wp_filter_post_kses hooks from pre_comment_content before calling wp_new_comment(), so the markup reaches comment_content unfiltered. The assessed vector CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N reflects a network-reachable, unauthenticated submission (PR:N) that nevertheless needs a victim interaction (UI:R) - specifically an administrator approving the pending webmention comment - with scope change because the injected script runs in the context of pages rendered by the WordPress site. The upstream fix in pull request 698 adds a set_name() method that sanitizes via webmention_sanitize_html() and hardens output escaping in class-comment-walker.php (esc_attr on the title attribute, esc_url on the author URL, esc_html on the host, and a corrected %1$s/%2$s printf format).

Know when Webmention 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 MEDIUM
NVD 6.1 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 6.1 MEDIUM

Unauthenticated remote submission (AV:N/PR:N/AC:L), but completion depends on an administrator approving the comment (UI:R); script runs in victim browsers (S:C) with limited confidentiality/integrity impact and no availability impact.

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

Primary rating from Vendor (Wordfence).

CVSS VectorNVD

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

DescriptionNVD

The Webmention plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the Open Graph og:title meta tag of a webmention source URL in versions up to, and including, 5.10.1. This is due to insufficient input sanitization: Meta::add_properties() maps og:title to the Item::name property, but Item has no concrete set_name() method, so Item::__call() stores the value raw while sibling set_content()/set_summary() paths route through webmention_sanitize_html(); Item::get_content() then falls back to the raw name when content and summary are empty, and Receiver::process() explicitly removes the core wp_filter_kses / wp_filter_post_kses hooks on pre_comment_content before calling wp_new_comment(), so the payload is persisted to comment_content as-is. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page, after an administrator approves the resulting pending webmention comment. Successful exploitation additionally requires an action by an administrator - the attacker cannot trigger the vulnerability on their own.

Threat Intelligence Overview

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Low
niche IndieWeb WordPress plugin with a modest 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
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.

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