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 |
|---|---|---|---|---|---|---|---|---|
| #2801 | PublishPress Statuses – Custom Post Status and Workflow | 37 | 231 | 78 | 1k+ | Missing Arg Domain | ||
| #2802 | Quantities and Units for WooCommerce | 37 | 133 | 118 | 1k+ | Output is not escaped | ||
| #2803 | Quentn WP | 37 | 4 | 251 | 500 | Nonce verification recommended | ||
| #2804 | Quick Restaurant Menu | 37 | 136 | 40 | 1k+ | Text Domain Mismatch | ||
| #2805 | Rich Table of Contents | 37 | 262 | 57 | 20k+ | Output is not escaped | ||
| #2806 | RSS for Yandex Zen | 37 | 240 | 100 | 4k+ | Unsafe printing function | ||
| #2807 | RSS Image Feed | 37 | 147 | 16 | 2k+ | Output is not escaped | ||
| #2808 | Ryviu – Review Importer & Product Reviews | 37 | 72 | 95 | 1k+ | Output is not escaped | ||
| #2809 | SB RSS feed plus | 37 | 172 | 24 | 1k+ | Output is not escaped | ||
| #2810 | Send PDF for Contact Form 7 | 37 | 22 | 308 | 9k+ | Non-prefixed global variable | ||
| #2811 | SendWP | 37 | 47 | 42 | 10k+ | Output is not escaped | ||
| #2812 | Sezzle Woocommerce Payment | 37 | 108 | 105 | 1k+ | Text Domain Mismatch | ||
| #2813 | Snippet Shortcodes | 37 | 359 | 133 | 4k+ | Non Singular String Literal Domain | ||
| #2814 | Shortcoder — Create Shortcodes for Anything | 37 | 25 | 70 | 100k+ | Non-prefixed global variable | ||
| #2815 | Weaver Show Sliders | 37 | 177 | 132 | 900 | Text Domain Mismatch | ||
| #2816 | Simple Countdown Timer | 37 | 110 | 113 | 1k+ | Missing Arg Domain | ||
| #2817 | Simple Image XML Sitemap | 37 | 119 | 16 | 1k+ | Output is not escaped | ||
| #2818 | Lightbox slider – Responsive Lightbox Gallery | 37 | 36 | 173 | 3k+ | Non-prefixed global variable | ||
| #2819 | Site Offline Or Coming Soon Or Maintenance Mode | 37 | 127 | 138 | 30k+ | Unsafe printing function | ||
| #2820 | Skimlinks Affiliate Marketing Tool | 37 | 84 | 19 | 800 | wp function not compatible with requires wp | ||
| #2821 | Slider Pro | 37 | 78 | 260 | 1k+ | Non-prefixed global variable | ||
| #2822 | Smart Send Logistics | 37 | 92 | 81 | 400 | Output is not escaped | ||
| #2823 | Social Comments | 37 | 59 | 32 | 400 | Output is not escaped | ||
| #2824 | Spam Destroyer | 37 | 63 | 43 | 6k+ | rand rand | ||
| #2825 | StagTools | 37 | 476 | 53 | 1k+ | Text Domain Mismatch | ||
| #2826 | Website Pop-up Builder by BDOW! (formerly Sumo): Pop-ups + forms for email opt-ins and lead generation | 37 | 42 | 33 | 10k+ | Output is not escaped | ||
| #2827 | SuperCPT | 37 | 172 | 27 | 600 | Output is not escaped | ||
| #2828 | Super Simple Site Offline | 37 | 115 | 59 | 6k+ | Text Domain Mismatch | ||
| #2829 | Swifty Bar, sticky bar by WPGens | 37 | 112 | 81 | 400 | Output is not escaped | ||
| #2830 | Tilopay | 37 | 35 | 130 | 1k+ | Nonce verification recommended | ||
| #2831 | Time Clock – A WordPress Employee & Volunteer Time Clock Plugin | 37 | 166 | 107 | 500 | Output is not escaped | ||
| #2832 | Tracking Code Manager | 37 | 55 | 42 | 90k+ | Output is not escaped | ||
| #2833 | Tracking Script Manager | 37 | 82 | 57 | 2k+ | Non Singular String Literal Domain | ||
| #2834 | Ultimate WordPress Auction Plugin | 37 | 623 | 146 | 1k+ | Text Domain Mismatch | ||
| #2835 | Landing Page Builder – Free Landing Page Templates | 37 | 329 | 111 | 600 | Output is not escaped | ||
| #2836 | Ultimate Tag Cloud Widget | 37 | 715 | 16 | 4k+ | Output is not escaped | ||
| #2837 | User Meta Display | 37 | 78 | 74 | 500 | Output is not escaped | ||
| #2838 | UsersWP – Social Login | 37 | 299 | 91 | 2k+ | Text Domain Mismatch | ||
| #2839 | ValidateCertify Free | 37 | 123 | 97 | 1k+ | Text Domain Mismatch | ||
| #2840 | Varnish/Nginx Proxy Caching | 37 | 287 | 36 | 600 | Output is not escaped | ||
| #2841 | ViaBill – WooCommerce | 37 | 437 | 86 | 500 | Text Domain Mismatch | ||
| #2842 | Virtual Classroom – Video Conferencing & Online Meeting with BigBlueButton | 37 | 45 | 140 | 400 | Nonce verification recommended | ||
| #2843 | Featured Video for WordPress – VideographyWP | 37 | 287 | 93 | 1k+ | Unsafe printing function | ||
| #2844 | Views for WPForms – Display & Edit WPForms Entries on your site frontend | 37 | 80 | 64 | 1k+ | Output is not escaped | ||
| #2845 | Innovs WPBakery Visual Composer WHMCS Elements | 37 | 154 | 24 | 2k+ | Text Domain Mismatch | ||
| #2846 | Weather Atlas Widget | 37 | 630 | 111 | 8k+ | Output is not escaped | ||
| #2847 | Widget Box Lite | 37 | 318 | 17 | 900 | Output is not escaped | ||
| #2848 | Orders Tracking for WooCommerce | 37 | 7 | 312 | 10k+ | Request data is not unslashed | ||
| #2849 | Módulo PagSeguro | 37 | 90 | 46 | 1k+ | Unsafe printing function | ||
| #2850 | Piraeus Bank WooCommerce Payment Gateway | 37 | 146 | 104 | 3k+ | Non Singular String Literal Domain |