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 |
|---|---|---|---|---|---|---|---|---|
| #4501 | Mango Buttons | 59 | 14 | 21 | 3k+ | Output is not escaped | ||
| #4502 | Multiple Packages for WooCommerce | 59 | 34 | 4 | 600 | Text Domain Mismatch | ||
| #4503 | Pattern Wrangler – Manage Block Patterns and Pattern Categories | 59 | 14 | 73 | 400 | Non-prefixed global variable | ||
| #4504 | pensopay Payments v2 | 59 | 413 | 32 | 1k+ | Non Singular String Literal Domain | ||
| #4505 | SureFeedback Client Site | 59 | 47 | 24 | 5k+ | Text Domain Mismatch | ||
| #4506 | Remove Add to Cart Button for WooCommerce | 59 | 115 | 18 | 500 | Text Domain Mismatch | ||
| #4507 | Resize Image After Upload | 59 | 15 | 11 | 80k+ | Output is not escaped | ||
| #4508 | Scrollbar | 59 | 7 | 22 | 400 | Missing nonce verification | ||
| #4509 | Subscribers – Free Web Push Notifications | 59 | 15 | 11 | 1k+ | Output is not escaped | ||
| #4510 | Super Progressive Web Apps | 59 | 62 | 22 | 40k+ | wp function not compatible with requires wp | ||
| #4511 | Typebot | 59 | 17 | 9 | 3k+ | Output is not escaped | ||
| #4512 | UltraPress – AI Assistant, Chatbot & SEO | 59 | 12 | 38 | 800 | Non-prefixed global variable | ||
| #4513 | Unlimited Addons For Gutenberg Blocks | 59 | 16 | 68 | 900 | slow db query meta key | ||
| #4514 | Konnect Payment Gateway for WooCommerce | 59 | 39 | 16 | 400 | Text Domain Mismatch | ||
| #4515 | WC Korkmaz Contract – Contracts for WooCommerce | 59 | 7 | 38 | 500 | Non-prefixed global variable | ||
| #4516 | Payment Gateway for LiqPay for Woocommerce | 59 | 84 | 31 | 1k+ | Text Domain Mismatch | ||
| #4517 | GST Invoice for WooCommerce | 59 | 10 | 42 | 1k+ | Missing nonce verification | ||
| #4518 | Variation Swatches for WooCommerce | 59 | 11 | 64 | 300k+ | Non-prefixed global variable | ||
| #4519 | RevivePress – Keep your Old Content Evergreen | 59 | 27 | 46 | 5k+ | date date | ||
| #4520 | WPML Widgets | 59 | 9 | 9 | 9k+ | Unsafe printing function | ||
| #4521 | Contact Form 7 – Phone mask field | 60 | 21 | 7 | 20k+ | Unsafe printing function | ||
| #4522 | Disable Emails | 60 | 25 | 16 | 30k+ | Short PHP open tag found | ||
| #4523 | Freshchat | 60 | 16 | 10 | 1k+ | Output is not escaped | ||
| #4524 | HelloAsso | 60 | 132 | 89 | 4k+ | Short PHP open tag found | ||
| #4525 | iubenda | All-in-one Compliance for GDPR / CCPA Cookie Consent + more | 60 | 405 | 271 | 200k+ | Text Domain Mismatch | ||
| #4526 | Mailster AmazonSES Integration | 60 | 52 | 25 | 1k+ | Missing Arg Domain | ||
| #4527 | Order Export & Order Import for WooCommerce | 60 | 247 | 698 | 60k+ | Non-prefixed global variable | ||
| #4528 | Post Duplicator | 60 | 33 | 24 | 200k+ | Missing direct file access protection | ||
| #4529 | Real Accessability | 60 | 21 | 9 | 1k+ | Output is not escaped | ||
| #4530 | RealHomes PayPal Payments | 60 | 55 | 23 | 400 | Non Singular String Literal Domain | ||
| #4531 | Sales Countdown Timer | 60 | 107 | 150 | 6k+ | Missing Arg Domain | ||
| #4532 | Simple Owl Carousel | 60 | 23 | 13 | 500 | Missing Translators Comment | ||
| #4533 | Stratum Widgets for Elementor | 60 | 66 | 366 | 20k+ | Non-prefixed global variable | ||
| #4534 | Surge | 60 | 46 | 47 | 4k+ | Non-prefixed global variable | ||
| #4535 | Team – Team Members Showcase Plugin | 60 | 12 | 781 | 10k+ | Non-prefixed global variable | ||
| #4536 | MultiStep Checkout for WooCommerce | 60 | 46 | 57 | 4k+ | Non Singular String Literal Text | ||
| #4537 | WoowGallery | 60 | 15 | 178 | 1k+ | Non-prefixed global variable | ||
| #4538 | WP Blog Post Layouts | 60 | 36 | 249 | 10k+ | Non-prefixed global variable | ||
| #4539 | WP-SWFObject | 60 | 14 | 24 | 1k+ | Deprecated parameter: add_option parameter 3 | ||
| #4540 | WPSSO Schema Product Metadata for WooCommerce | 60 | 33 | 23 | 500 | Missing Translators Comment | ||
| #4541 | Academy LMS | 61 | 18 | 521 | 2k+ | Non-prefixed global variable | ||
| #4542 | Add Quantity Field on Shop Page for WooCommerce | 61 | 33 | 7 | 700 | Output is not escaped | ||
| #4543 | Ads.txt Manager | 61 | 33 | 16 | 4k+ | Text Domain Mismatch | ||
| #4544 | CommerceBird – AI Command Center, ERP Integrations & B2B for WooCommerce (Zoho, Exact Online). | 61 | 2 | 162 | 400 | Direct Query | ||
| #4545 | Compact WP Audio Player | 61 | 12 | 21 | 20k+ | Non-prefixed function | ||
| #4546 | Documents for WooCommerce | 61 | 16 | 13 | 500 | Output is not escaped | ||
| #4547 | GetPaid Stripe Payments | 61 | 206 | 44 | 2k+ | Text Domain Mismatch | ||
| #4548 | GutenKit – Page Builder Blocks, Patterns, and Templates for Gutenberg Block Editor | 61 | 9 | 119 | 80k+ | Non-prefixed global variable | ||
| #4549 | Marker.io – Visual Website Feedback | 61 | 6 | 31 | 4k+ | Request data is not unslashed | ||
| #4550 | Media Library Helper — Bulk edit image ALT, caption & description | 61 | 16 | 70 | 10k+ | Non-prefixed global variable |