CVE-2022-47441
Executive Summary
CVE-2022-47441 is an unauthenticated reflected Cross-Site Scripting (XSS) vulnerability affecting the WordPress plugin Charitable Donations & Fundraising Team Donation Forms by Charitable, in versions less than or equal to 1.7.0.10. The vulnerability resides in the plugin's HTML/URL parameter handling, allowing an attacker to inject malicious JavaScript into the HTTP response without requiring prior authentication. Successful exploitation enables session hijacking, arbitrary HTTP requests, and deceptive phishing content, with a CVSS severity score of 7.1 (High). A claimed patch exists in version 1.7.0.11, but this has not been independently confirmed; therefore, immediate mitigation is warranted.
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
Vulnerability Class: Reflected Cross-Site Scripting (XSS) — CWE-79.
Mechanism: Reflected XSS occurs when user-supplied input is echoed back into a web page without adequate sanitization or encoding. In this case, the "Donation Forms by Charitable" plugin fails to validate or escape a specific parameter processed by the plugin's shortcode or form-rendering logic, resulting in an unsanitized reflection. The attack vector is entirely client-side and does not modify server-side data; the injected script executes within the context of the victim's session.
Attack Surface:
- Network vector: Remote, via HTTP/HTTPS requests.
- Authentication requirement: None — the vulnerability is exploitable by unauthenticated attackers.
- Target environment: WordPress installations running the Charitable plugin <= 1.7.0.10.
- User interaction required: Yes — a victim must click a crafted URL, typically delivered via phishing email, chat, or another URL-shortening mechanism.
Code-Level Analysis: Specific parameter names and code paths are not disclosed in the official advisory. The NVD description confirms only that the flaw is a reflected XSS in the plugin's front-end submission/rendering process. Insufficient technical detail is available regarding the exact function responsible for output reflection. Based on the vulnerability class, the flaw likely involves the plugin echoing GET request parameters into generated HTML without escaping, a common oversight in WordPress plugin shortcode handlers.
Attack Surface Detail:
- The plugin is installed on approximately tens of thousands of WordPress sites (plugin page analytics not available in this data).
- The plugin's primary function is as a donation and fundraising form, meaning the affected parameters likely pertain to donation amounts, campaign IDs, or form field pre-filling.
- The attack can be executed against any public-facing page that renders the Charitable shortcode.
Exploitation Scenarios
Note: No public PoC or exploit code is available for this CVE. The attack chain below is inferred strictly from the vulnerability class (reflected XSS) and does not fabricate specific parameter names or endpooints.
Step 1 — Reconnaissance and Target Identification: An attacker identifies WordPress sites running the Charitable plugin with version <= 1.7.0.10. This can be done by fingerprinting the presence of the plugin's asset files (e.g., checking for the plugin directory in HTTP response bodies), using WordPress-specific scanners (e.g., WPScan), or reviewing Shodan/Fofa queries for sites exposing the plugin's JavaScript/CSS files. The attacker may also search for public-facing donation pages by looking for site URLs containing phrases like "donate", "fundraiser", or "campaign".
Step 2 — Triggering the Flaw: The attacker crafts a malicious URL containing a JavaScript payload within a query parameter that the Charitable plugin reflects into the HTML output. For example, a crafted link pointing to a page containing the Charitable shortcode with an injected <script> or event-handler attribute in a GET parameter (e.g., ?search_term=<script>alert(1)</script>). Since the plugin fails to sanitize this input, the browser interprets the payload as HTML/JavaScript. The attacker then sends the crafted link to the victim via email, social engineering, or by embedding it in a third-party site (URL redirect).
Step 3 — Payload Execution: Upon clicking the link, the victim's browser sends the HTTP request to the WordPress server. The server renders the page, reflecting the malicious payload verbatim into the HTML document. The victim's browser executes the malicious JavaScript with the victim's same-origin privileges (the site's domain).
Step 4 — Post-Exploitation Impact: The injected script can:
- Read the victim's session cookies and send them to an attacker-controlled server (session hijacking).
- Perform actions on behalf of the victim, such as modifying donation amounts, exfiltrating donor PII, or creating fraudulent donation records.
- Redirect the victim to a weaponized phishing page mimicking the donation form to capture payment card details, since donation forms frequently handle payment data.
- Deface the rendered page (display deceptive content) — particularly harmful for a charity whose reputation relies on public trust.
Impact Assessment
Business Impact:
- Fundraising Integrity: A successful XSS attack can silently modify donation form behavior, diverting funds or collecting donor financial data. This directly threatens revenue and organizational integrity.
- Data Breach Liability: If donor PII (names, email addresses, donation history) or payment card information is compromised, the organization may face regulatory fines (e.g., GDPR, PCI DSS non-compliance).
- Reputational Damage: A charity's most valuable asset is trust. A visible defacement or phishing page dressed as the donation form erodes that trust and can reduce future donations.
Blast Radius:
- The entire WordPress site is impacted, as the XSS executes in the context of the site's domain. This means any other data accessible via that domain (other logged-in admin sessions, sensitive site keys, etc.) could be within reach if an admin hits the crafted link.
- WordPress admin accounts are the highest-value target for XSS chaining — if a logged-in admin triggers the link, the script could be used to install a backdoor via plugin/theme manipulation.
CVSS Subscore Implications (Score 7.1 overall):
- Attack Vector: Network — Exploitable remotely.
- Attack Complexity: Low — No special conditions beyond HTTP request handling required.
- Privileges Required: None — Unauthenticated exploitation.
- User Interaction: Required — Victim must click a link.
- Scope: Changed — The injected script can affect resources beyond the vulnerable component (e.g., interacting with other site resources or an admin panel).
- Confidentiality/Integrity/Availability Impact: Low — Partial exposure, modification, and disruption possible, but not full system compromise by itself.
Exploitation-in-the-Wild Status: No evidence of in-the-wild exploitation has been reported for this specific CVE. EPSS score is 0.00382 (31.2% percentile), indicating low current exploitation likelihood, but this can change rapidly if a public PoC is released.
Detection Guidance
Sigma Rule
title: WordPress Charitable Plugin Reflected XSS Attempt
id: 5c1b6a4a-94f2-4d3a-9b4d-1e2f3a4b5c6d
status: experimental
description: Detects reflected XSS attempts targeting the Charitable plugin by looking for common JavaScript payload strings in HTTP query parameters.
logsource:
category: webserver
product: apache
definition: Web server access logs for WordPress sites
detection:
selection:
cs-method:
- 'GET'
- 'POST'
c-uri|contains:
- '<script>'
- 'javascript:'
- 'onerror='
- 'onload='
- 'alert('
- 'document.cookie'
- 'fetch('
- 'eval('
# Charitable plugin pages commonly contain 'campaign' or 'donate' path segments
cs-uri-query|contains:
- 'donate'
- 'campaign'
- 'charitable'
condition: selection
falsepositives:
- Admin users testing the site's forms
- URL-shortening services that pass through encoded payloads
level: medium
tags:
- attack.t1059
- cve.2022.47441
YARA Rule
rule Wordpress_Charitable_Reflected_XSS_CVE_2022_47441
{
meta:
author = "Valtersit Threat Intel"
description = "Detects artifacts of reflected XSS payloads targeting WordPress Charitable plugin"
cve = "CVE-2022-47441"
severity = "high"
date = "2023-10-01"
strings:
$a = "charitable" ascii wide nocase
$b = "<script>" ascii wide
$c = "onerror=" ascii wide
$d = "document.cookie" ascii wide
$e = "alert(" ascii wide
$f = "fetch(" ascii wide
condition:
$a and 2 of ($b, $c, $d, $e, $f)
}
Suricata IDS Rule
alert http any any -> any any (msg:"ET WEB_SPECIFIC_APPS WordPress Charitable Plugin Reflected XSS Attempt (CVE-2022-47441)"; flow:established,to_server; content:"GET"; http_method; content:"/"; http_uri; content:"charitable"; http_uri; nocase; content:"<script>"; http_uri; nocase; content:"onerror="; http_uri; nocase; sid:2024744101; rev:1; metadata:attack_target Web_Server, deployment Perimeter, tag CVE-2022-47441, tag XSS, signature_severity Major, created_at 2023_10_01;)
Elastic Detection
// Detect XSS probes in HTTP request URIs targeting Charitable plugin pages
any where
process.name == "httpd" or process.name == "nginx" or
(event.module == "apache" and event.dataset == "apache.access") or
(event.module == "nginx" and event.dataset == "nginx.access")
and http.request.method in ("GET", "POST")
and url.query contains "<script>"
and (
url.path contains "charitable" or
url.query contains "charitable"
)
Splunk SPL Query
index=web sourcetype=access_combined
| WHERE method=GET OR method=POST
| WHERE (uri_path LIKE "%charitable%" OR query LIKE "%charitable%")
| WHERE (
query LIKE "%<script>%" OR
query LIKE "%onerror=%" OR
query LIKE "%document.cookie%" OR
query LIKE "%javascript:%"
)
| eval detection_timestamp = _time
| table _time, clientip, method, uri_path, query, status, useragent
| sort - _time
| stats count by clientip, uri_path, query
| where count > 3
Wazuh OSSEC Rule
<rule id="100247" level="12">
<decoded>apache-accesslog</decoded>
<match>charitable</match>
<regex>(\%3Cscript)|(<script)|(onerror=)|(document\.cookie)</regex>
<description>CVE-2022-47441: Reflected XSS attempt against WordPress Charitable plugin detected</description>
<group>web_application_attack,xss,cve-2022-47441,</group>
<mitre>
<id>T1059</id>
</mitre>
</rule>
Mitigation & Patch Guidance
Patch Confidence Assessment: CLAIMED (2/4) — The patch is claimed by a single source (the CNA), but independent confirmation or a vendor-issued security advisory is not available in the provided data. The vendor fix is to upgrade to version 1.7.0.11 or higher. Given the low complexity of XSS patches, this is likely correct, but enterprise teams should not treat the mitigation as verified.
Immediate Mitigations (If Patch Cannot Be Applied):
- Web Application Firewall (WAF) Rule: Deploy a virtual patch via a WAF (e.g., Cloudflare, AWS WAF, ModSecurity) that blocks or sanitizes query parameters containing
<script>,onerror=,javascript:, and other XSS patterns on pages rendering the Charitable plugin. - Input Validation Proxy: Use a reverse proxy that strips or encodes HTML characters from all query parameters destined for WordPress before backend processing.
- Content Security Policy (CSP): Add a CSP header that blocks the execution of inline scripts (
script-src 'self' 'nonce-...') to prevent the injected payload from running, even if the reflection occurs. - Disable Plugin Temporarily: If the plugin is not actively used on critical donation pages, disable it until patched.
Patch/Upgrade Steps:
- Backup: Create a full backup of the WordPress installation, including the database.
- Update: Navigate to
Dashboard > Pluginsin WordPress admin, locate "Donation Forms by Charitable", and click "Update Now" to upgrade to version 1.7.0.11 or higher. - Verify: Confirm the installed version is ≥ 1.7.0.11.
- Test: Manually test donation form pages with crafted XSS payloads to confirm the reflection is now sanitized.
Long-Term Hardening:
- Update Discipline: Enable automatic updates for all WordPress plugins.
- Least Privilege: Restrict plugin installation/update permissions to a dedicated admin account.
- Security Monitoring: Subscribe to Patchstack or WPScan alerts for future Charitable plugin vulnerabilities.
- Periodic Review: Audit other plugin parameters for similar XSS patterns, as reflected XSS is a recurring issue in donation/form plugins.
References
- NVD Entry for CVE-2022-47441 — https://nvd.nist.gov/vuln/detail/CVE-2022-47441
- Patchstack Advisory (CNA Source) — https://patchstack.com/database/vulnerability/charitable (as referenced via CVE data; URL structure inferred — consult Patchstack for the specific advisory)
- WordPress Plugin Repository — https://wordpress.org/plugins/charitable/
- CWE-79 (Improper Neutralization of Input During Web Page Generation) — https://cwe.mitre.org/data/definitions/79.html
- CISA KEV Catalog — https://www.cisa.gov/known-exploited-vulnerabilities-catalog (CVE-2022-47441 is NOT currently listed)
Threat Actor Activity: No known threat actor campaigns or in-the-wild exploitation evidence have been reported for this CVE. The EPSS score suggests low current exploitation probability; however, the plugin's user base and the ease of XSS exploitation make this a candidate for opportunistic attacks in the near term.
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.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.