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 |
|---|---|---|---|---|---|---|---|---|
| #3551 | Animated Text Block – Add Typing and Looping Text Effects | 78 | 5 | 25 | 4k+ | Non-prefixed class | ||
| #3552 | Biteship Shipping | 78 | 25 | 16 | 500 | wp function not compatible with requires wp | ||
| #3553 | Date Picker For Contact Form 7 | 78 | 3 | 8 | 4k+ | Missing nonce verification | ||
| #3554 | Player for SoundCloud – Embed and Play Audio Tracks | 78 | 17 | 24 | 1k+ | Text Domain Mismatch | ||
| #3555 | Honeypot Anti-Spam | 78 | 5 | 7 | 10k+ | Missing nonce verification | ||
| #3556 | More Mails for CF7 | 78 | 13 | 6 | 500 | Text Domain Mismatch | ||
| #3557 | Nav Menu Images | 78 | 5 | 8 | 6k+ | Missing nonce verification | ||
| #3558 | Coming Soon & Maintenance Mode Page & Under Construction | 78 | 35 | 67 | 10k+ | Non-prefixed global variable | ||
| #3559 | PiWeb Min/Max Quantity & Minimum Order Limits for WooCommerce | 78 | 41 | 700 | Nonce verification recommended | |||
| #3560 | Post Order By Category | 78 | 1 | 12 | 900 | Missing nonce verification | ||
| #3561 | Typing Text – Add Animated Typing Effects to Headings or Text | 78 | 4 | 25 | 3k+ | Non-prefixed class | ||
| #3562 | JSON API Auth | 79 | 5 | 11 | 700 | Non-prefixed function | ||
| #3563 | Manage Privacy Options Page | 79 | 3 | 11 | 1k+ | Input is not validated | ||
| #3564 | Sellbrite | 79 | 18 | 4 | 500 | Short PHP open tag found | ||
| #3565 | SSH SFTP Updater Support | 79 | 6 | 31 | 10k+ | Non-prefixed global variable | ||
| #3566 | Customizer for WooCommerce | 79 | 4 | 6 | 20k+ | Missing nonce verification | ||
| #3567 | WPC Additional Variation Images for WooCommerce | 79 | 4 | 26 | 800 | Non-prefixed class | ||
| #3568 | Custom Icons for Elementor | 80 | 6 | 25 | 10k+ | Non-prefixed global variable | ||
| #3569 | Eli's PHP Compatibility Scanner | 80 | 1 | 22 | 400 | Missing nonce verification | ||
| #3570 | Ailo – AI Slug Translator | 80 | 8 | 14 | 1k+ | wp function not compatible with requires wp | ||
| #3571 | Image Captcha For Gravity Forms | 80 | 20 | 10 | 400 | Text Domain Mismatch | ||
| #3572 | Nudgify Social Proof | 80 | 3 | 12 | 500 | Discouraged PHP function | ||
| #3573 | Publish View | 80 | 12 | 6 | 500 | Missing nonce verification | ||
| #3574 | WP Video Popup – WordPress Video Lightbox for YouTube, Rumble & Vimeo | 80 | 5 | 14 | 9k+ | wp function not compatible with requires wp | ||
| #3575 | Mini Cart Drawer For WooCommerce | 80 | 4 | 25 | 500 | Non-prefixed hook name | ||
| #3576 | Blocksy Companion | 81 | 1,069 | 300k+ | Non-prefixed global variable | |||
| #3577 | ElasticPress | 81 | 13 | 655 | 8k+ | Non-prefixed hook name | ||
| #3578 | External Thumbnail | 81 | 6 | 5 | 20k+ | Missing nonce verification | ||
| #3579 | Open in New Window Plugin | 81 | 6 | 8 | 2k+ | Offloaded Content | ||
| #3580 | Payfast Gateway for WooCommerce | 81 | 2 | 18 | 2k+ | Missing nonce verification | ||
| #3581 | Select and Multi-Select Field for Contact Form 7 | 81 | 25 | 12 | 2k+ | Text Domain Mismatch | ||
| #3582 | Orphans | 81 | 1 | 43 | 50k+ | Dynamic hook name | ||
| #3583 | WP Subtitle | 81 | 7 | 33 | 10k+ | Non-prefixed hook name | ||
| #3584 | Bookero.pl – system rezerwacji online | 82 | 12 | 7 | 1k+ | curl curl setopt | ||
| #3585 | Confirm Plus Contact Form 7 | 82 | 10 | 15 | 7k+ | Non Singular String Literal Domain | ||
| #3586 | Iknow Extra | 82 | 6 | 5 | 400 | Missing direct file access protection | ||
| #3587 | Independent Analytics for MainWP | 82 | 7 | 13 | 700 | Nonce verification recommended | ||
| #3588 | OpenPix for WooCommerce | 82 | 69 | 28 | 500 | wp function not compatible with requires wp | ||
| #3589 | PixTypes | 82 | 178 | 9k+ | Non-prefixed global variable | |||
| #3590 | Sucuri Security – Auditing, Malware Scanner and Security Hardening | 82 | 51 | 11 | 600k+ | Missing direct file access protection | ||
| #3591 | Unyson WooComerce Shortcodes | 82 | 117 | 11 | 1k+ | Text Domain Mismatch | ||
| #3592 | Extra Price Fields for Woocommerce- Display extra price info on Woocommerce products | 82 | 6 | 10 | 2k+ | Missing nonce verification | ||
| #3593 | WP Copy Content Protection | 82 | 7 | 6 | 600 | Output is not escaped | ||
| #3594 | Max upload filesize | 83 | 3 | 8 | 9k+ | Input is not validated | ||
| #3595 | morkva UA Shipping | 83 | 1,261 | 10 | 1k+ | Text Domain Mismatch | ||
| #3596 | Preserve Editor Scroll Position | 83 | 2 | 6 | 4k+ | Missing nonce verification | ||
| #3597 | Campo RUT para CF7 | 84 | 6 | 7 | 600 | Missing nonce verification | ||
| #3598 | Add Descendants As Submenu Items | 84 | 3 | 8 | 2k+ | Missing nonce verification | ||
| #3599 | Bulk Post Importer | 84 | 1 | 38 | 900 | Missing nonce verification | ||
| #3600 | Change Admin Email | 84 | 4 | 4 | 50k+ | Missing nonce verification |