WordPress.Security.NonceVerification.Missing
Missing nonce verification
A request handler uses request data without verifying that the request was intentionally created by WordPress.
Why It Shows Up
The scan found `$_GET`, `$_POST`, or similar request data in a context where a nonce check is expected but missing.
Why It Matters
Without nonce verification, an attacker may be able to trick a logged-in user into submitting an unwanted state-changing request.
How to Fix
- Add a nonce to the form, link, AJAX request, or REST request.
- Verify it with `check_admin_referer()`, `check_ajax_referer()`, or `wp_verify_nonce()` before changing state.
- Keep capability checks separate; nonces prove intent, not permission.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #3351 | WooCommerce Product Fees | 62 | 6 | 25 | 2k+ | Missing nonce verification | ||
| #3352 | XPoster – Share to Bluesky and Mastodon | 62 | 26 | 36 | 10k+ | Missing nonce verification | ||
| #3353 | Category Sticky Post | 63 | 4 | 24 | 3k+ | Missing nonce verification | ||
| #3354 | cbnet Multi Author Comment Notification | 63 | 18 | 7 | 1k+ | Output is not escaped | ||
| #3355 | Christmasify! | 63 | 18 | 7 | 2k+ | Output is not escaped | ||
| #3356 | Classic Editor and Classic Widgets | 63 | 19 | 41 | 20k+ | Nonce verification recommended | ||
| #3357 | Essential Addons for Elementor – Popular Elementor Templates & Widgets | 63 | 78 | 184 | 2m+ | wp function not compatible with requires wp | ||
| #3358 | Hide Admin Bar From Front End | 63 | 8 | 17 | 1k+ | Input is not validated | ||
| #3359 | Image Sitemap | 63 | 11 | 14 | 400 | Output is not escaped | ||
| #3360 | Include Klaviyo for Elementor pro | 63 | 60 | 10 | 2k+ | Missing Arg Domain | ||
| #3361 | Mailster Google Analytics | 63 | 26 | 9 | 900 | Output is not escaped | ||
| #3362 | Mantenimiento web | 63 | 49 | 15 | 20k+ | Text Domain Mismatch | ||
| #3363 | Missed Scheduled Posts Publisher by WPBeginner | 63 | 16 | 17 | 30k+ | Text Domain Mismatch | ||
| #3364 | One Tap Google Sign in | 63 | 6 | 30 | 900 | Request data is not unslashed | ||
| #3365 | Simple Membership After Login Redirection | 63 | 4 | 24 | 10k+ | Missing nonce verification | ||
| #3366 | Phone Validator for WooCommerce | 63 | 8 | 33 | 1k+ | Missing nonce verification | ||
| #3367 | UniqueID for Contact Form 7 | 64 | 21 | 18 | 2k+ | Text Domain Mismatch | ||
| #3368 | Custom Fields Account Registration For Woocommerce | 64 | 40 | 700 | Missing nonce verification | |||
| #3369 | CV Demo Importer | 64 | 21 | 95 | 400 | Non-prefixed global variable | ||
| #3370 | DataFeedWatch Connector for WooCommerce | 64 | 16 | 112 | 600 | Non-prefixed hook name | ||
| #3371 | DoFollow Case by Case | 64 | 4 | 60 | 1k+ | Direct Query | ||
| #3372 | Dotdigital for WordPress | 64 | 41 | 123 | 400 | Dynamic hook name | ||
| #3373 | Download Theme | 64 | 18 | 20 | 4k+ | wp function not compatible with requires wp | ||
| #3374 | Estonian Shipping Methods for WooCommerce | 64 | 97 | 16 | 1k+ | Text Domain Mismatch | ||
| #3375 | Favicon XT-Manager | 64 | 9 | 12 | 2k+ | Output is not escaped | ||
| #3376 | Online Payments with iK Pay Gateway | 64 | 12 | 28 | 1k+ | Missing nonce verification | ||
| #3377 | Inline Related Posts | 64 | 17 | 39 | 100k+ | Nonce verification recommended | ||
| #3378 | Kama SpamBlock | 64 | 29 | 7 | 5k+ | Short PHP open tag found | ||
| #3379 | Moosend Website Connector | 64 | 15 | 12 | 1k+ | Non Singular String Literal Domain | ||
| #3380 | MultiSafepay plugin for WooCommerce | 64 | 13 | 35 | 2k+ | Missing nonce verification | ||
| #3381 | Page Tag Cloud | 64 | 21 | 3 | 500 | Output is not escaped | ||
| #3382 | Send From | 64 | 5 | 18 | 500 | Input is not sanitized | ||
| #3383 | Stag Custom Sidebars | 64 | 10 | 12 | 2k+ | Text Domain Mismatch | ||
| #3384 | Oceanwp sticky header | 64 | 8 | 13 | 10k+ | Missing nonce verification | ||
| #3385 | 64 | 27 | 23 | 9k+ | Missing Translators Comment | |||
| #3386 | JTL-Connector for WooCommerce | 64 | 7 | 166 | 1k+ | Direct Query | ||
| #3387 | WP Term Order | 64 | 2 | 26 | 6k+ | Nonce verification recommended | ||
| #3388 | Featured Galleries | 65 | 15 | 10 | 3k+ | Output is not escaped | ||
| #3389 | HTACCESS IP Blocker | 65 | 5 | 14 | 2k+ | Missing nonce verification | ||
| #3390 | MW WP Form reCAPTCHA | 65 | 11 | 14 | 2k+ | Input is not sanitized | ||
| #3391 | Websitescanner Custom Schema | 65 | 28 | 19 | 600 | wp function not compatible with requires wp | ||
| #3392 | WP-Farsi | 65 | 26 | 36 | 600 | Non-prefixed function | ||
| #3393 | WP Max Submit Protect | 65 | 19 | 12 | 400 | Output is not escaped | ||
| #3394 | WPAdmin AWS CDN | 66 | 161 | 42 | 400 | Text Domain Mismatch | ||
| #3395 | Calculated fields for ACF | 66 | 5 | 18 | 1k+ | Non-prefixed global variable | ||
| #3396 | Export Categories | 66 | 22 | 13 | 1k+ | Output is not escaped | ||
| #3397 | FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration | 66 | 26 | 30 | 6k+ | Missing direct file access protection | ||
| #3398 | IranDargah Payment Gateway for Woocommerce | 66 | 66 | 26 | 400 | Text Domain Mismatch | ||
| #3399 | Page Title Splitter | 66 | 29 | 8 | 1k+ | wp function not compatible with requires wp | ||
| #3400 | Raw HTML | 66 | 17 | 35 | 10k+ | Non-prefixed function |