WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
Input is not sanitized
Request data is used without being cleaned for the expected type or format.
Why It Shows Up
The scan found superglobal input flowing into code without a sanitizer such as `sanitize_text_field()`, `absint()`, `sanitize_key()`, `esc_url_raw()`, or a custom allowlist.
Why It Matters
Unsanitized input can pollute stored settings, alter logic, break queries, or become part of a later security issue.
How to Fix
- Unslash request data with `wp_unslash()` first.
- Choose the sanitizer for the expected value, such as `absint()` for IDs or `sanitize_key()` for keys.
- Use allowlists for actions, sort fields, file names, option names, and other constrained values.
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #4601 | Easy SSL Plugin for SAKURA Rental Server | 62 | 23 | 17 | 50k+ | Input is not sanitized | ||
| #4602 | SEO Image Toolbox | 62 | 19 | 14 | 1k+ | Output is not escaped | ||
| #4603 | Single Post Template | 62 | 14 | 8 | 4k+ | Text Domain Mismatch | ||
| #4604 | Sitewide Notice WP | 62 | 6 | 13 | 3k+ | Output is not escaped | ||
| #4605 | Spam Comments Cleaner | 62 | 14 | 29 | 1k+ | Non-prefixed function | ||
| #4606 | Topic SEO Content Optimization Tool | 62 | 35 | 15 | 1k+ | curl curl close | ||
| #4607 | WiserNotify – Social Proof & FOMO Notifications, WooCommerce Sales Popups, Reviews & Announcement Bar | 62 | 13 | 32 | 1k+ | Request data is not unslashed | ||
| #4608 | Satispay for WooCommerce | 62 | 19 | 12 | 7k+ | Exception output is not escaped | ||
| #4609 | WooCommerce Product Fees | 62 | 6 | 25 | 2k+ | Missing nonce verification | ||
| #4610 | WP Category Sort | 62 | 15 | 22 | 500 | Text Domain Mismatch | ||
| #4611 | WP Charts and Graphs – WordPress Chart Plugin | 62 | 8 | 29 | 1k+ | Input is not sanitized | ||
| #4612 | WP Downloader | 62 | 11 | 15 | 2k+ | Output is not escaped | ||
| #4613 | Wp Theme plugin Download | 62 | 11 | 16 | 2k+ | Output is not escaped | ||
| #4614 | XPoster – Share to Bluesky and Mastodon | 62 | 26 | 36 | 10k+ | Missing nonce verification | ||
| #4615 | Migrate to WordPress.com | 62 | 15 | 28 | 2k+ | Output is not escaped | ||
| #4616 | Zen Menu Logic | 62 | 19 | 3 | 1k+ | Output is not escaped | ||
| #4617 | Automatic Featured Images from Videos | 63 | 13 | 13 | 7k+ | Missing direct file access protection | ||
| #4618 | Categories Images | 63 | 10 | 21 | 50k+ | wp function not compatible with requires wp | ||
| #4619 | Category Sticky Post | 63 | 4 | 24 | 3k+ | Missing nonce verification | ||
| #4620 | Classic Editor and Classic Widgets | 63 | 19 | 41 | 20k+ | Nonce verification recommended | ||
| #4621 | Creative Clans Embed Script | 63 | 10 | 9 | 600 | Input is not sanitized | ||
| #4622 | Custom post types, Custom Fields & more | 63 | 101 | 22 | 3k+ | Missing Translators Comment | ||
| #4623 | Email Post Changes | 63 | 43 | 8 | 500 | Missing Arg Domain | ||
| #4624 | Essential Addons for Elementor – Popular Elementor Templates & Widgets | 63 | 78 | 184 | 2m+ | wp function not compatible with requires wp | ||
| #4625 | Happierleads – Identify your B2B website visitors even if they work remotely | 63 | 32 | 7 | 600 | wp function not compatible with requires wp | ||
| #4626 | Hide Admin Bar From Front End | 63 | 8 | 17 | 1k+ | Input is not validated | ||
| #4627 | Image Sitemap | 63 | 11 | 14 | 400 | Output is not escaped | ||
| #4628 | Include Klaviyo for Elementor pro | 63 | 60 | 10 | 2k+ | Missing Arg Domain | ||
| #4629 | Integrate GA4 Google Analytics | 63 | 33 | 3 | 500 | Text Domain Mismatch | ||
| #4630 | Mailster Google Analytics | 63 | 26 | 9 | 900 | Output is not escaped | ||
| #4631 | Mantenimiento web | 63 | 49 | 15 | 20k+ | Text Domain Mismatch | ||
| #4632 | Missed Scheduled Posts Publisher by WPBeginner | 63 | 16 | 17 | 30k+ | Text Domain Mismatch | ||
| #4633 | One Tap Google Sign in | 63 | 6 | 30 | 900 | Request data is not unslashed | ||
| #4634 | Simple Membership After Login Redirection | 63 | 4 | 24 | 10k+ | Missing nonce verification | ||
| #4635 | Slightly troublesome permalink | 63 | 24 | 10 | 1k+ | Non Singular String Literal Domain | ||
| #4636 | Review & testimonial widgets | 63 | 62 | 9 | 1k+ | Text Domain Mismatch | ||
| #4637 | User Switching | 63 | 2 | 47 | 200k+ | Nonce verification recommended | ||
| #4638 | PayPing Gateway For Woocommerce | 63 | 11 | 40 | 1k+ | Non-prefixed hook name | ||
| #4639 | Phone Validator for WooCommerce | 63 | 8 | 33 | 1k+ | Missing nonce verification | ||
| #4640 | Admin filter posts by year | 64 | 8 | 32 | 400 | Non-prefixed function | ||
| #4641 | Advanced Marquee Effect for Elementor | 64 | 13 | 10 | 2k+ | Output is not escaped | ||
| #4642 | UniqueID for Contact Form 7 | 64 | 21 | 18 | 2k+ | Text Domain Mismatch | ||
| #4643 | Custom Fields Account Registration For Woocommerce | 64 | 40 | 700 | Missing nonce verification | |||
| #4644 | CV Demo Importer | 64 | 21 | 95 | 400 | Non-prefixed global variable | ||
| #4645 | Delete Unscaled Images | 64 | 24 | 4 | 800 | Text Domain Mismatch | ||
| #4646 | Disabler | 64 | 212 | 38 | 900 | Text Domain Mismatch | ||
| #4647 | Dotdigital for WordPress | 64 | 41 | 123 | 400 | Dynamic hook name | ||
| #4648 | Download Theme | 64 | 18 | 20 | 4k+ | wp function not compatible with requires wp | ||
| #4649 | Estonian Shipping Methods for WooCommerce | 64 | 97 | 16 | 1k+ | Text Domain Mismatch | ||
| #4650 | Evermore | 64 | 8 | 12 | 1k+ | Input is not validated |