SEOPress <= 10.3 — Authenticated (Subscriber+) Stored Cross-Site Scripting via 'seopress_google_analytics_affiliate_tracking' and 'seopress_google_analytics_download_tracking' Parameters
CVE-2026-120515Published · Updated Action summary
Affected: ≤10.3Update to 10.4 or newer
All remediation steps- Severity
- Medium6.4
- CVSS
- 6.4CVSS 3.1 · CNA (Wordfence)
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:NWhat does this vector mean?
AV:NAttack vector- Network
AC:LAttack complexity- Low
PR:LPrivileges required- Low
UI:NUser interaction- None
S:CScope- Changed
C:LConfidentiality- Low
I:LIntegrity- Low
A:NAvailability- None
- Weakness
- CWE-79 Cross-Site Scripting
- Required access
- Unknown
- Exploit prediction (EPSS)
- No score
- CISA KEV
- Not listed
On this page8
Am I affected?
SEOPress – AI SEO Plugin & On-site SEO wp-seopress
- Affected≤ 10.3
- Patched in10.4
Update to 10.4 or newer.
You are affected if you run ≤ 10.3. Version 10.4 and later are not affected by this issue.
- Check your version: in wp-admin go to Plugins → Installed Plugins and read the version under SEOPress – AI SEO Plugin & On-site SEO.
- No admin access? Run a passive check of your site. It reads public files only.
What to do
- Update to version 10.4, or a newer patched version
- Rotate administrator passwords and application secrets if the site ran a vulnerable version while publicly reachable.
- Watch SEOPress – AI SEO Plugin & On-site SEO to get an email when the next vulnerability is published.
Advisory
Source description from Wordfence Intelligence, credited to satoshigpt2021-sketch.
The SEOPress – AI SEO Plugin & On-site SEO plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'seopress_google_analytics_affiliate_tracking' and 'seopress_google_analytics_download_tracking' settings in versions up to, and including, 10.3. This is due to insufficient input sanitization and output escaping on these settings as they are interpolated into the inline Google Analytics tracking snippet by seopress_google_analytics_js(): the affiliate value receives no sanitization at all (it is omitted from inc/admin/sanitize/Sanitize.php) and lands inside a <script> block, while the download value is only passed through sanitize_text_field() and lands inside a JavaScript regular-expression literal that preserves parentheses, semicolons and slashes. This makes it possible for authenticated attackers, with Subscriber-level access and above (where an administrator has delegated the SEOPress 'analytics' capability under Settings > Advanced > Security — the precondition Wordfence accepted for CVE-2026-101357), to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
Exploits & references
Proof-of-concept & detection
No public proof-of-concept or detection template is known for this vulnerability.
Advisories & patches
- Advisorywordfence.com
Related CVEs
More in SEOPress – AI SEO Plugin & On-site SEO
All 20| Severity | Vulnerability | CVE | Published |
|---|---|---|---|
| Medium6.4 | Authenticated (Custom Role+) Stored Cross-Site Scripting <10.4Update to 10.4 | CVE-2026-108041 | |
| Medium6.4 | Authenticated (Subscriber+) Stored Cross-Site Scripting via 'display_name' Profile Field via %%archive_title%% Template Tag ≤10.3Update to 10.4 | CVE-2026-116535 | |
| Medium4.9 | Authenticated (Subscriber+) Stored Cross-Site Scripting via 'seopress_google_analytics_matomo_id' Parameter ≤10.2Update to 10.3 | CVE-2026-101357 | |
| High7.2 | Unauthenticated Stored Cross-Site Scripting via Author Display Name ≤10.2Update to 10.3 | CVE-2026-96564 | |
| Medium6.4 | Authenticated (Contributor+) Server-Side Request Forgery ≤10.1Update to 10.2 | CVE-2026-85305 |
- Medium6.4Authenticated (Custom Role+) Stored Cross-Site Scripting
<10.4Update to 10.4
- Medium6.4Authenticated (Subscriber+) Stored Cross-Site Scripting via 'display_name' Profile Field via %%archive_title%% Template Tag
≤10.3Update to 10.4
- Medium4.9Authenticated (Subscriber+) Stored Cross-Site Scripting via 'seopress_google_analytics_matomo_id' Parameter
≤10.2Update to 10.3
- High7.2Unauthenticated Stored Cross-Site Scripting via Author Display Name
≤10.2Update to 10.3
- Medium6.4Authenticated (Contributor+) Server-Side Request Forgery
≤10.1Update to 10.2
Same weakness (Cross-Site Scripting)
All Cross-Site Scripting| Severity | Vulnerability | CVE | Published |
|---|---|---|---|
| High7.2 | Unauthenticated Stored Cross-Site Scripting via Comment User-Agent Header | CVE-2026-120688 | |
| Critical9.8 | Unauthenticated Arbitrary File Upload via File Upload via Public Form Submission | CVE-2026-125055 | |
| Critical9.8 | Unauthenticated PHP Object Injection to Remote Code Execution via 'form' Parameter | CVE-2026-119077 | |
| Medium5.3 | Unauthenticated Sensitive Information Exposure in 'search' Parameter | CVE-2026-121518 |
- High7.2Unauthenticated Stored Cross-Site Scripting via Comment User-Agent Header
EZ SQL Reports Shortcode Widget and DB Backup
≤5.25.25Update to 5.26.45
- Critical9.8Unauthenticated Arbitrary File Upload via File Upload via Public Form Submission
Chatterbug Forms – Fast, Flexible WordPress Form Builder
≤1.0.2Update to 1.1
- Critical9.8Unauthenticated PHP Object Injection to Remote Code Execution via 'form' Parameter
ELEX WordPress HelpDesk & Customer Ticketing System
≤3.3.9Update to 3.4.0
- Medium5.3Unauthenticated Sensitive Information Exposure in 'search' Parameter
Customer Reviews for WooCommerce
≤5.127.0Update to 5.128.0
Timeline
CVE published
Severity medium, CVSS 6.4
Record last updated
Sources & licenses
Wordfence record- Vulnerability data
- Wordfence Intelligence. [object Object] Licensed under the CC BY-SA 4.0.
- CVE® identifiers
- [object Object]. Used under the CVE Program. CVE® is a registered trademark of The MITRE Corporation.
- CVSS / CWE
- National Vulnerability Database (NVD), shown unmodified. This product uses the NVD API but is not endorsed or certified by the NVD.
- VulnCrest content
- Summary, remediation guidance and page layout © VulnCrest. Not sourced from NVD.
