WordPress.Security.EscapeOutput.OutputNotEscaped
Output is not escaped
Dynamic data is printed to the page without an escaping function for the output context.
Why It Shows Up
WordPress Coding Standards detected a variable, option, request value, or function result reaching HTML output without a nearby escaping call.
Why It Matters
Unescaped output can become cross-site scripting when attackers control any part of the value being printed.
How to Fix
- Use `esc_html()` for plain text, `esc_attr()` for attributes, and `esc_url()` for URLs.
- Use `wp_kses()` or `wp_kses_post()` when limited HTML is intentionally allowed.
- Escape as late as possible, right before output, so the selected escaping function matches the final context.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #401 | Iks Menu – WordPress Category Accordion Menu & FAQs | 23 | 615 | 1,293 | 10k+ | Non-prefixed global variable | ||
| #402 | Image Carousel For Divi | 23 | 569 | 1,309 | 1k+ | Non-prefixed global variable | ||
| #403 | Import from YML | 23 | 97 | 308 | 400 | Non-prefixed global variable | ||
| #404 | RealHomes Memberships | 23 | 516 | 264 | 1k+ | Non Singular String Literal Domain | ||
| #405 | Payment forms, Buy now buttons, and Invoicing System | GetPaid | 23 | 389 | 1,266 | 5k+ | Non-prefixed global variable | ||
| #406 | IP Geo Block | 23 | 399 | 589 | 8k+ | Output is not escaped | ||
| #407 | Jeg Kit for Elementor – Powerful Addons for Elementor, Widgets & Templates for WordPress | 23 | 91 | 694 | 300k+ | Non-prefixed namespace | ||
| #408 | Joli FAQ SEO – WordPress FAQ Plugin | 23 | 1,083 | 1,526 | 700 | Non-prefixed global variable | ||
| #409 | Justified Gallery | 23 | 589 | 1,417 | 8k+ | Non-prefixed global variable | ||
| #410 | Kadence Blocks — Page Builder Toolkit for Gutenberg Editor | 23 | 55 | 2,127 | 600k+ | Non-prefixed global variable | ||
| #411 | Kenta Companion | 23 | 657 | 1,419 | 2k+ | Non-prefixed global variable | ||
| #412 | King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder | 23 | 1,834 | 3,877 | 10k+ | Non-prefixed global variable | ||
| #413 | Masteriyo LMS – LMS Course Builder, Quizzes & Certificates | 23 | 190 | 2,122 | 5k+ | Non-prefixed global variable | ||
| #414 | License Manager for WooCommerce | 23 | 129 | 797 | 6k+ | Nonce verification recommended | ||
| #415 | Like Button Rating ♥ LikeBtn | 23 | 1,231 | 617 | 4k+ | Unsafe printing function | ||
| #416 | Link Whisper Free | 23 | 3,882 | 5,303 | 30k+ | Text Domain Mismatch | ||
| #417 | Listdom: AI-powered Business Directory with Classifieds Ads Listings | 23 | 4,673 | 3,336 | 1k+ | Output is not escaped | ||
| #418 | LLMagnet – AI Visibility & AI SEO for Claude, ChatGPT & More | 23 | 627 | 1,798 | 400 | Non-prefixed global variable | ||
| #419 | Locatoraid Store Locator | 23 | 318 | 645 | 1k+ | Non-prefixed global variable | ||
| #420 | Custom Login Page Customizer | 23 | 687 | 1,408 | 90k+ | Non-prefixed global variable | ||
| #421 | Login With Ajax – Fast Logins, 2FA, Redirects | 23 | 623 | 520 | 10k+ | Output is not escaped | ||
| #422 | Master Addons For Elementor – Widgets, Extensions, Theme Builder, Popup Builder & Template Kits | 23 | 525 | 1,541 | 30k+ | Non-prefixed global variable | ||
| #423 | Master Slider – Responsive Touch Slider | 23 | 800 | 408 | 60k+ | Output is not escaped | ||
| #424 | MasterStudy LMS WordPress Plugin – for Online Courses and Education | 23 | 1,419 | 4,875 | 10k+ | Non-prefixed global variable | ||
| #425 | Media Library File Download | 23 | 615 | 1,286 | 1k+ | Non-prefixed global variable | ||
| #426 | Media Library Assistant | 23 | 1,131 | 3,759 | 70k+ | Nonce verification recommended | ||
| #427 | MediaPress | 23 | 904 | 583 | 4k+ | Output is not escaped | ||
| #428 | Menu Image, Icons made easy | 23 | 591 | 1,406 | 100k+ | Non-prefixed global variable | ||
| #429 | Order Bump for WooCommerce | 23 | 1,720 | 1,562 | 600 | Output is not escaped | ||
| #430 | Moloni | 23 | 901 | 356 | 2k+ | Missing Arg Domain | ||
| #431 | MotoPress Appointment Booking | 23 | 2,362 | 857 | 2k+ | Text Domain Mismatch | ||
| #432 | Restaurant Menu and Food Ordering | 23 | 385 | 853 | 2k+ | Non-prefixed global variable | ||
| #433 | MP3 Audio Player – Music Player, Podcast Player & Radio by Sonaar | 23 | 4,065 | 488 | 20k+ | Text Domain Mismatch | ||
| #434 | MStore API – Create Native Android & iOS Apps On The Cloud | 23 | 618 | 764 | 3k+ | SQL query is not prepared | ||
| #435 | MultiParcels Shipping For WooCommerce | 23 | 196 | 362 | 4k+ | Mixed line endings | ||
| #436 | MPG – Multiple Page Generator, Bulk Landing Pages & Programmatic SEO | 23 | 485 | 580 | 2k+ | Missing nonce verification | ||
| #437 | News Kit Addons For Elementor | 23 | 69 | 419 | 4k+ | Post Not In exclude | ||
| #438 | Simple Newsletter Plugin – Noptin | 23 | 71 | 593 | 10k+ | Non-prefixed global variable | ||
| #439 | Next Active Directory Integration | 23 | 683 | 284 | 2k+ | Exception output is not escaped | ||
| #440 | Photo Gallery, Sliders, Proofing and Themes – NextGEN Gallery | 23 | 2,129 | 993 | 400k+ | Text Domain Mismatch | ||
| #441 | NicheTable – Responsive Comparison Table Block | 23 | 683 | 1,307 | 700 | Non-prefixed global variable | ||
| #442 | Nirweb support | 23 | 254 | 617 | 800 | Request data is not unslashed | ||
| #443 | NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization | 23 | 316 | 639 | 90k+ | Output is not escaped | ||
| #444 | Ocean Extra | 23 | 1,494 | 2,107 | 500k+ | Non-prefixed global variable | ||
| #445 | Issues and Series for Newspapers, Magazines, Publishers, Writers | 23 | 346 | 710 | 2k+ | Nonce verification recommended | ||
| #446 | Patchstack – WordPress & Plugins Security | 23 | 107 | 489 | 50k+ | Missing nonce verification | ||
| #447 | PayPal Brasil para WooCommerce | 23 | 554 | 328 | 1k+ | Unsafe printing function | ||
| #448 | Photo Gallery by 10Web – Mobile-Friendly Image Gallery | 23 | 4,159 | 1,553 | 100k+ | Output is not escaped | ||
| #449 | Gallery PhotoBlocks | 23 | 904 | 1,345 | 3k+ | Non-prefixed global variable | ||
| #450 | ExpressTechSoftwares Discord Add-on for Paid Memberships Pro | 23 | 454 | 449 | 700 | Text Domain Mismatch |