WordPress.Security.ValidatedSanitizedInput.MissingUnslash
Request data is not unslashed
Input from a WordPress request superglobal is used before removing WordPress-added slashes.
Why It Shows Up
WordPress adds slashes to request data for historical compatibility. The scan found `$_GET`, `$_POST`, `$_REQUEST`, or similar input used without `wp_unslash()`.
Why It Matters
Sanitizing slashed data can produce incorrect values, failed comparisons, broken validation, or stored data that does not match what the user submitted.
How to Fix
- Read the specific request key, then call `wp_unslash()` on it.
- Sanitize the unslashed value with a function that matches the expected data type.
- Validate the sanitized value before using it in permissions, queries, redirects, or stored settings.
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #3601 | WP Discord Invite | 40 | 73 | 42 | 400 | Unsafe printing function | ||
| #3602 | Easy PayPal & Stripe Buy Now Button | 40 | 388 | 96 | 10k+ | Unsafe printing function | ||
| #3603 | WP Help | 40 | 49 | 54 | 10k+ | Unsafe printing function | ||
| #3604 | WP All Import – Job Listing Import for WP Job Manager | 40 | 35 | 27 | 2k+ | Output is not escaped | ||
| #3605 | WP Keyword Suggest | 40 | 29 | 41 | 500 | Non Singular String Literal Domain | ||
| #3606 | Media Library Categories | 40 | 29 | 49 | 20k+ | Output is not escaped | ||
| #3607 | WP Meteor Website Speed Optimization Addon | 40 | 34 | 19 | 20k+ | Output is not escaped | ||
| #3608 | WP Multisite Content Copier/Updater | 40 | 19 | 144 | 800 | Interpolated SQL is not prepared | ||
| #3609 | WP Paint – WordPress Image Editor | 40 | 30 | 29 | 6k+ | Missing Arg Domain | ||
| #3610 | QR code MeCard/vCard generator | 40 | 322 | 21 | 2k+ | Unsafe printing function | ||
| #3611 | WP Reroute Email | 40 | 141 | 106 | 1k+ | Output is not escaped | ||
| #3612 | Sentry for WordPress | 40 | 80 | 40 | 10k+ | Text Domain Mismatch | ||
| #3613 | Social Share Buttons & Analytics Plugin – GetSocial.io | 40 | 97 | 25 | 2k+ | Output is not escaped | ||
| #3614 | WP Tab Widget | 40 | 128 | 32 | 10k+ | Output is not escaped | ||
| #3615 | WP Theme Test | 40 | 21 | 39 | 7k+ | Input is not sanitized | ||
| #3616 | WPC Force Sells for WooCommerce | 40 | 38 | 97 | 600 | Output is not escaped | ||
| #3617 | WPC Smart Price Filter for WooCommerce | 40 | 23 | 62 | 600 | Nonce verification recommended | ||
| #3618 | WPFront Notification Bar | 40 | 222 | 44 | 50k+ | Output is not escaped | ||
| #3619 | XLTab – Accordions and Tabs for Elementor Page Builder | 40 | 317 | 65 | 1k+ | Text Domain Mismatch | ||
| #3620 | Yektanet Ecommerce | 40 | 45 | 103 | 1k+ | Request data is not unslashed | ||
| #3621 | My YouTube Channel | 40 | 54 | 38 | 5k+ | Output is not escaped | ||
| #3622 | Zippy | 40 | 43 | 31 | 9k+ | Output is not escaped | ||
| #3623 | AMP for WP – Accelerated Mobile Pages | 41 | 656 | 2,401 | 80k+ | Non-prefixed global variable | ||
| #3624 | Ad Auto Insert H | 41 | 496 | 15 | 1k+ | Non Singular String Literal Domain | ||
| #3625 | Add-on Contact Form 7 – MailPoet 3 | 41 | 88 | 12 | 3k+ | Output is not escaped | ||
| #3626 | Advance Bank Payment Transfer Gateway | 41 | 105 | 62 | 1k+ | Text Domain Mismatch | ||
| #3627 | Advanced Excerpt | 41 | 69 | 43 | 70k+ | Unsafe printing function | ||
| #3628 | AffiliateWP – Affiliate Product Rates | 41 | 84 | 24 | 2k+ | Output is not escaped | ||
| #3629 | Age Verify | 41 | 29 | 31 | 1k+ | Output is not escaped | ||
| #3630 | AH Display Widgets | 41 | 52 | 16 | 8k+ | Text Domain Mismatch | ||
| #3631 | Schema – All In One Schema Rich Snippets | 41 | 598 | 180 | 30k+ | Text Domain Mismatch | ||
| #3632 | Alma – Pay in installments or later for WooCommerce | 41 | 116 | 68 | 1k+ | Exception output is not escaped | ||
| #3633 | Amazon Link Engine | 41 | 38 | 17 | 2k+ | Output is not escaped | ||
| #3634 | Amazon Web Services | 41 | 53 | 21 | 5k+ | Missing Translators Comment | ||
| #3635 | Announcer – Sticky Message Banner & Notification Bar | 41 | 110 | 27 | 10k+ | Output is not escaped | ||
| #3636 | Antispam | 41 | 11 | 41 | 400 | Missing nonce verification | ||
| #3637 | Authenticator | 41 | 59 | 44 | 1k+ | Output is not escaped | ||
| #3638 | Auto Image Attributes From Filename With Bulk Updater (Add Alt Text, Image Title For Image SEO) | 41 | 175 | 26 | 100k+ | Unsafe printing function | ||
| #3639 | Autocomplete Google Address | 41 | 22 | 67 | 2k+ | Nonce verification recommended | ||
| #3640 | Avatar Manager | 41 | 29 | 41 | 5k+ | Unsafe printing function | ||
| #3641 | Beam me up Scotty – Back to Top Button | 41 | 71 | 38 | 1k+ | Output is not escaped | ||
| #3642 | Beautiful Cookie Consent Banner | 41 | 33 | 76 | 40k+ | Non-prefixed global variable | ||
| #3643 | Book Now | 41 | 75 | 14 | 1k+ | Output is not escaped | ||
| #3644 | Bop Search Box Item Type For Nav Menus | 41 | 52 | 14 | 1k+ | Output is not escaped | ||
| #3645 | BuddyPress Xprofile Custom Field Types | 41 | 39 | 189 | 4k+ | Missing nonce verification | ||
| #3646 | BuddyPress Edit Activity | 41 | 28 | 26 | 800 | Output is not escaped | ||
| #3647 | Bulk Delete Comments | 41 | 15 | 61 | 5k+ | Direct Query | ||
| #3648 | Bulk Auto Image Title Attribute (Image Title tag) optimizer (Image SEO) | 41 | 16 | 37 | 1k+ | Missing nonce verification | ||
| #3649 | Bulk Images to Posts | 41 | 55 | 5 | 1k+ | Unsafe printing function | ||
| #3650 | Cache control by Cacholong | 41 | 87 | 30 | 500 | Non Singular String Literal Domain |