CVE-2026-2499
Stored XSS in WordPress Custom Logo Plugin Allows Admin Script Injection
Publication date: 2026-02-26
Last updated on: 2026-02-26
Assigner: Wordfence
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| wordfence | custom_logo | to 2.2 (inc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-79 | The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
The Custom Logo plugin for WordPress, up to and including version 2.2, is vulnerable to Stored Cross-Site Scripting (XSS) attacks. This vulnerability arises because the plugin does not properly sanitize or escape input in its admin settings. As a result, an authenticated attacker with administrator-level permissions or higher can inject malicious web scripts into pages. These scripts will execute whenever a user accesses the affected page.
This vulnerability specifically affects multi-site WordPress installations or installations where the unfiltered_html capability has been disabled.
How can this vulnerability impact me? :
This vulnerability allows an attacker with administrator-level access to inject arbitrary scripts into the WordPress site. These scripts can execute in the context of users visiting the injected pages, potentially leading to unauthorized actions such as stealing session cookies, performing actions on behalf of users, or defacing the site.
Because the attack requires administrator-level permissions, it is limited to scenarios where an attacker has already gained elevated access or where multiple administrators exist and one is compromised.
The vulnerability only affects multi-site installations or those with unfiltered_html disabled, which may limit the scope but still poses a significant risk in those environments.
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
I don't know
How can this vulnerability be detected on my network or system? Can you suggest some commands?
[{'type': 'paragraph', 'content': "This vulnerability involves stored Cross-Site Scripting (XSS) in the Custom Logo WordPress plugin versions up to 2.2, affecting multi-site installations or those with unfiltered_html disabled. Detection involves checking if the vulnerable plugin version is installed and if administrator-level users have injected malicious scripts via the plugin's admin settings."}, {'type': 'paragraph', 'content': "To detect exploitation attempts or presence of malicious scripts, you can inspect the WordPress database for suspicious entries in the plugin's settings, particularly the 'wpcl_custom_logo_path' option which stores the custom logo path and may contain injected scripts."}, {'type': 'paragraph', 'content': 'Suggested commands to detect potential exploitation include:'}, {'type': 'list_item', 'content': 'Use WP-CLI to check the plugin version: `wp plugin get custom-logo --field=version`'}, {'type': 'list_item', 'content': 'Query the WordPress options table for the custom logo path: `wp db query "SELECT option_value FROM wp_options WHERE option_name = \'wpcl_custom_logo_path\';"`'}, {'type': 'list_item', 'content': 'Search for suspicious script tags or JavaScript code in the option value that could indicate XSS payloads.'}, {'type': 'paragraph', 'content': 'Additionally, monitoring HTTP requests to login or registration pages for unusual script injections or unexpected JavaScript execution may help detect exploitation.'}] [1, 2]
What immediate steps should I take to mitigate this vulnerability?
Immediate mitigation steps for this vulnerability include:
- Update the Custom Logo plugin to a version later than 2.2 where the vulnerability is fixed or remove the plugin if no update is available.
- Restrict administrator-level access to trusted users only, since exploitation requires administrator permissions.
- If updating is not immediately possible, review and sanitize the 'wpcl_custom_logo_path' setting in the WordPress database to remove any injected scripts.
- Enable and enforce proper input sanitization and output escaping in the plugin settings or custom code to prevent script injection.
- Consider enabling unfiltered_html capability for trusted users or adjusting multi-site configurations to reduce exposure.
Monitoring and logging access to the affected pages (login and registration) for suspicious activity is also recommended.