CVE Catalog

CVE-2026-87869

MediumCVSS 6.1
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.22%

12th percentile - higher than 12% of all known CVEs

Summary

The Filter Everything — WordPress & WooCommerce Filters plugin for WordPress is vulnerable to Reflected Cross-Site Scripting in versions up to and including 1.9.6 due to insufficient input sanitization and output escaping in the flrt_elementor_load_more_anchor() function. The function reads query parameters from $_SERVER['REQUEST_URI'] via getFormActionOrFullPageUrl(true), which URL-decodes them through parse_str() and re-assembles them using build_query() — a WordPress core function that does NOT re-encode values ($urlencode=false). The resulting URL, containing unescaped special characters, is injected into a data-next-page HTML attribute via preg_replace() without esc_attr() or esc_url(). This allows unauthenticated attackers to inject arbitrary web scripts that execute if they can trick a user into clicking a specially crafted link.

Risk Assessment

The risk includes the possibility of executing malicious scripts in the victim's browser after clicking a crafted link, which could lead to data theft, session hijacking, or malware distribution. The attack can affect any user who clicks on the malicious link.

Recommendation

Update the Filter Everything plugin to the latest patched version. Also educate users not to click on suspicious links and consider adding Content Security Policy (CSP) headers to mitigate XSS impacts.

Related vulnerabilities

Original NVD description (English source)

The Filter Everything — WordPress & WooCommerce Filters plugin for WordPress is vulnerable to Reflected Cross-Site Scripting in versions up to, and including, 1.9.6. This is due to insufficient input sanitization and output escaping in the flrt_elementor_load_more_anchor() function. The function reads query parameters from $_SERVER['REQUEST_URI'] via getFormActionOrFullPageUrl(true), which URL-decodes them through parse_str() and re-assembles them using build_query() — a WordPress core function that does NOT re-encode values ($urlencode=false). The resulting URL, containing unescaped special characters, is injected into a data-next-page HTML attribute via preg_replace() without esc_attr() or esc_url(). This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a specially crafted link.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS