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 |
|---|---|---|---|---|---|---|---|---|
| #5551 | Change Administrator Email Address | 71 | 12 | 9 | 700 | Output is not escaped | ||
| #5552 | Bootstrap Shortcodes | 71 | 21 | 11 | 5k+ | Missing direct file access protection | ||
| #5553 | BuddyPress Default Data | 71 | 8 | 21 | 400 | Interpolated SQL is not prepared | ||
| #5554 | Social Chat Widget (⚡ by Callbell) | 71 | 11 | 6 | 600 | Output is not escaped | ||
| #5555 | Comfortable Reading | 71 | 16 | 8 | 1k+ | Output is not escaped | ||
| #5556 | Contact Form 7 Confirm Email Field | 71 | 35 | 11 | 2k+ | Text Domain Mismatch | ||
| #5557 | Cresta Social Messenger | 71 | 9 | 10 | 1k+ | Non-prefixed function | ||
| #5558 | Easy Sticky Buttons | 71 | 21 | 16 | 600 | Short PHP open tag found | ||
| #5559 | Event SEO: Event Schema / Structured Data: Google Rich Snippet Schema for Event | 71 | 24 | 49 | 700 | Non-prefixed global variable | ||
| #5560 | GPX Viewer | 71 | 10 | 26 | 900 | Missing Version | ||
| #5561 | Link Checker Pro | 71 | 6 | 25 | 4k+ | Non-prefixed function | ||
| #5562 | Meks Time Ago | 71 | 22 | 1 | 10k+ | Output is not escaped | ||
| #5563 | Multiple Roles | 71 | 7 | 20 | 5k+ | Non-prefixed global variable | ||
| #5564 | Print Bangla News | 71 | 29 | 17 | 2k+ | Output is not escaped | ||
| #5565 | Quick and Easy FAQs | 71 | 92 | 9 | 10k+ | Non Singular String Literal Domain | ||
| #5566 | Really Simple Click To Call Bar | 71 | 23 | 3 | 8k+ | Output is not escaped | ||
| #5567 | Social Fabric Analytics From Collective Bias | 71 | 17 | 0 | 1k+ | Output is not escaped | ||
| #5568 | Visual Bible Verse of the Day Widget | 71 | 27 | 1 | 900 | Output is not escaped | ||
| #5569 | Woorise – Landing Pages, Forms & Surveys | 71 | 8 | 14 | 1k+ | Input is not sanitized | ||
| #5570 | WP 4 Me Title Remover | 71 | 17 | 13 | 1k+ | Missing direct file access protection | ||
| #5571 | WP IE Buster | 71 | 13 | 3 | 800 | Output is not escaped | ||
| #5572 | WP Widget in Navigation | 71 | 37 | 15 | 3k+ | Non Singular String Literal Domain | ||
| #5573 | WPS Notice Center | 71 | 12 | 7 | 3k+ | Unsafe printing function | ||
| #5574 | Advanced WordPress Backgrounds | 72 | 21 | 7 | 30k+ | Output is not escaped | ||
| #5575 | Amazing Affiliates – Toolkit for Amazon Associates with Amazon Product Blocks and Amazon PAAPI5 / Creators API integration | 72 | 3 | 650 | 600 | Non-prefixed global variable | ||
| #5576 | Archiiv | 72 | 6 | 30 | 400 | Non-prefixed global variable | ||
| #5577 | Block Archive.org via WordPress robots.txt | 72 | 9 | 8 | 400 | Output is not escaped | ||
| #5578 | Bulk Term Editor | 72 | 19 | 9 | 400 | Output is not escaped | ||
| #5579 | Chap Secure Password Login | 72 | 13 | 7 | 600 | Input is not validated | ||
| #5580 | Click to top | 72 | 22 | 8 | 2k+ | Output is not escaped | ||
| #5581 | Dashboard Wordcount | 72 | 30 | 7 | 500 | Output is not escaped | ||
| #5582 | Disclaimify – Affiliate Disclosure / Disclaimer for WordPress | 72 | 2 | 19 | 1k+ | Missing nonce verification | ||
| #5583 | Display your Checkatrade | 72 | 19 | 3 | 400 | Output is not escaped | ||
| #5584 | PowerBI Embed Reports | 72 | 3 | 20 | 500 | Nonce verification recommended | ||
| #5585 | Getsitecontrol — Email Marketing Plugin | Popup Maker, Automations & Newsletters | 72 | 17 | 11 | 1k+ | wp function not compatible with requires wp | ||
| #5586 | Gift Wrapping for WooCommerce | 72 | 2 | 16 | 1k+ | Missing nonce verification | ||
| #5587 | Gravity Forms CSS Ready Class Selector | 72 | 18 | 4 | 4k+ | Non Singular String Literal Domain | ||
| #5588 | Calendar.online / Kalender.digital – Plugin | 72 | 33 | 7 | 2k+ | Output is not escaped | ||
| #5589 | Keyword Research Tool | 72 | 9 | 11 | 700 | Input is not validated | ||
| #5590 | Featured Image in RSS Feed by MailerLite | 72 | 12 | 7 | 1k+ | Output is not escaped | ||
| #5591 | Media File Sizes | 72 | 14 | 5 | 1k+ | Output is not escaped | ||
| #5592 | Meks Smart Author Widget | 72 | 24 | 0 | 10k+ | Output is not escaped | ||
| #5593 | MemcacheD Is Your Friend | 72 | 23 | 33 | 1k+ | Non-prefixed function | ||
| #5594 | My-Plugins | 72 | 24 | 6 | 30k+ | Missing Arg Domain | ||
| #5595 | Non-Purchasable WooCommerce Products | 72 | 14 | 13 | 1k+ | Input is not validated | ||
| #5596 | Post Types Unlimited | 72 | 45 | 7 | 10k+ | Missing Translators Comment | ||
| #5597 | Property Hive Stamp Duty Calculator | 72 | 39 | 2 | 800 | Text Domain Mismatch | ||
| #5598 | Responsive Blocks – Page Builder for Blocks & Patterns | 72 | 47 | 43 | 3k+ | badly named files | ||
| #5599 | Responsive Owl Carousel for Elementor | 72 | 40 | 89 | 7k+ | Non-prefixed global variable | ||
| #5600 | Advanced Datepicker – Restricts Date for Contact Form 7 | 72 | 228 | 11 | 400 | wp function not compatible with requires wp |