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 |
|---|---|---|---|---|---|---|---|---|
| #51 | MAS Videos | 20 | 519 | 1,693 | 1k+ | Non-prefixed global variable | ||
| #52 | Microthemer Lite – Visual Editor to Customize CSS | 20 | 1,004 | 1,699 | 10k+ | Non-prefixed global variable | ||
| #53 | Nimble Page Builder | 20 | 1,591 | 1,684 | 30k+ | Missing Arg Domain | ||
| #54 | Shipping for Nova Poshta | 20 | 598 | 923 | 400 | Output is not escaped | ||
| #55 | پلاگین پرداخت دلخواه | 20 | 584 | 446 | 900 | Text Domain Mismatch | ||
| #56 | Pix por Piggly (para Woocommerce) | 20 | 547 | 195 | 4k+ | Exception output is not escaped | ||
| #57 | Powered Cache – Caching and Optimization for WordPress – Easily Improve PageSpeed & Web Vitals Score | 20 | 147 | 231 | 3k+ | Exception output is not escaped | ||
| #58 | Pronamic Pay | 20 | 266 | 1,078 | 2k+ | Non-prefixed global variable | ||
| #59 | Razorpay Payment Button Elementor Plugin | 20 | 479 | 62 | 1k+ | Exception output is not escaped | ||
| #60 | Remove Add to Cart WooCommerce | 20 | 616 | 1,378 | 4k+ | Non-prefixed global variable | ||
| #61 | Robin Image Optimizer – Unlimited Image Optimization, WebP & AVIF | 20 | 556 | 543 | 100k+ | Output is not escaped | ||
| #62 | SpeakOut! Email Petitions | 20 | 850 | 994 | 2k+ | Missing nonce verification | ||
| #63 | Events Manager – OpenStreetMaps | 20 | 559 | 444 | 600 | Output is not escaped | ||
| #64 | Razorpay for WooCommerce | 20 | 975 | 859 | 100k+ | Non-prefixed function | ||
| #65 | WP Minify Fix | 20 | 306 | 380 | 800 | Output is not escaped | ||
| #66 | Premium Packages – Sell Digital Products Securely | 20 | 2,017 | 2,183 | 2k+ | Non-prefixed global variable | ||
| #67 | School Management System – WPSchoolPress | 20 | 245 | 5,285 | 1k+ | Non-prefixed global variable | ||
| #68 | Store Locator WordPress | 21 | 2,494 | 1,628 | 10k+ | Text Domain Mismatch | ||
| #69 | Backup Migration | 21 | 981 | 1,093 | 80k+ | Non-prefixed global variable | ||
| #70 | Forumax – AI Powered Advanced Community Forum Plugin | 21 | 4,936 | 4,353 | 600 | Text Domain Mismatch | ||
| #71 | bbPress | 21 | 929 | 3,672 | 100k+ | Non-prefixed function | ||
| #72 | Kadence Security – Password, Two Factor Authentication, and Brute Force Protection | 21 | 1,060 | 957 | 700k+ | Missing Translators Comment | ||
| #73 | Pinpoint Booking System – Version 2 | 21 | 634 | 328 | 3k+ | Missing direct file access protection | ||
| #74 | Booking Ultra Pro Appointments Booking Calendar Plugin | 21 | 761 | 2,083 | 400 | Request data is not unslashed | ||
| #75 | Better Messages – Chat Rooms, Group Chat, Private Messages & AI Chat Bots | 21 | 1,621 | 2,038 | 10k+ | Direct Query | ||
| #76 | Captcha Them All | 21 | 300 | 323 | 5k+ | Output is not escaped | ||
| #77 | SMS Extension for Contact Form 7 | 21 | 720 | 1,387 | 400 | Non-prefixed global variable | ||
| #78 | Comet Cache | 21 | 857 | 245 | 20k+ | Output is not escaped | ||
| #79 | Cost Calculator Builder | 21 | 322 | 766 | 20k+ | Non-prefixed global variable | ||
| #80 | Daily Prayer Time | 21 | 947 | 1,780 | 1k+ | Non-prefixed global variable | ||
| #81 | DELUCKS SEO | 21 | 362 | 1,171 | 400 | Missing nonce verification | ||
| #82 | Free Downloads WooCommerce | 21 | 430 | 359 | 4k+ | Output is not escaped | ||
| #83 | Duplicator – Backups & Migration Plugin – Cloud Backups, Scheduled Backups, & More | 21 | 2,572 | 1,277 | 1m+ | Output is not escaped | ||
| #84 | Envo Extra | 21 | 878 | 600 | 20k+ | Text Domain Mismatch | ||
| #85 | eRoom – Webinar & Meeting Plugin for Zoom, Google Meet, Microsoft Teams | 21 | 186 | 437 | 9k+ | Non-prefixed global variable | ||
| #86 | Eupago Gateway For Woocommerce | 21 | 576 | 233 | 2k+ | Output is not escaped | ||
| #87 | EventPrime – Events Calendar, Bookings and Tickets | 21 | 873 | 4,308 | 7k+ | Non-prefixed global variable | ||
| #88 | Feeds for YouTube (YouTube video, channel, and gallery plugin) | 21 | 508 | 963 | 100k+ | Output is not escaped | ||
| #89 | FileOrganizer – WordPress File Manager | 21 | 536 | 241 | 200k+ | unlink unlink | ||
| #90 | Filter Everything — WordPress & WooCommerce Filters | 21 | 643 | 933 | 50k+ | Non-prefixed global variable | ||
| #91 | Campaign Monitor for WordPress | 21 | 386 | 461 | 2k+ | Non-prefixed global variable | ||
| #92 | Front End Users | 21 | 719 | 2,759 | 400 | Non-prefixed global variable | ||
| #93 | Frontend Dashboard | 21 | 384 | 945 | 500 | Non-prefixed function | ||
| #94 | Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF | 21 | 428 | 867 | 1m+ | Non-prefixed global variable | ||
| #95 | LA-Studio Element Kit for Elementor | 21 | 8,403 | 1,882 | 10k+ | Text Domain Mismatch | ||
| #96 | Leyka | 21 | 257 | 3,446 | 2k+ | Request data is not unslashed | ||
| #97 | Mapster WP Maps | 21 | 3,440 | 2,894 | 3k+ | Text Domain Mismatch | ||
| #98 | Mergado Pack | 21 | 2,323 | 588 | 700 | Output is not escaped | ||
| #99 | Mooberry Book Manager | 21 | 1,040 | 399 | 1k+ | Text Domain Mismatch | ||
| #100 | MotoPress Hotel Booking | 21 | 3,067 | 1,037 | 10k+ | Text Domain Mismatch |