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 |
|---|---|---|---|---|---|---|---|---|
| #2851 | avalex – Automatisch sichere Rechtstexte | 37 | 25 | 85 | 1k+ | Direct Query | ||
| #2852 | Avatar Privacy | 37 | 82 | 36 | 1k+ | Missing direct file access protection | ||
| #2853 | Random Posts and Pages Widget | 37 | 322 | 15 | 1k+ | Output is not escaped | ||
| #2854 | AZAN Plugin | 37 | 44 | 30 | 500 | Output is not escaped | ||
| #2855 | Banhammer – Monitor Site Traffic, Block Bad Users and Bots | 37 | 104 | 174 | 1k+ | Output is not escaped | ||
| #2856 | Custom Thank You Page Customize For WooCommerce by Binary Carpenter | 37 | 45 | 80 | 2k+ | error log error log | ||
| #2857 | Bellows Accordion Menu | 37 | 160 | 28 | 10k+ | Text Domain Mismatch | ||
| #2858 | Better Click To Share – Shareable Quote Boxes for X (Twitter) | 37 | 170 | 59 | 6k+ | Unsafe printing function | ||
| #2859 | Blimply | 37 | 172 | 43 | 800 | Text Domain Mismatch | ||
| #2860 | Blog News Addons For Elementor (News, Magazine and Blog Addons) | 37 | 23 | 296 | 400 | Non-prefixed global variable | ||
| #2861 | Customize WordPress Emails and Alerts – Better Notifications for WP | 37 | 64 | 47 | 30k+ | Missing Arg Domain | ||
| #2862 | Booster Extension | 37 | 28 | 289 | 7k+ | Non-prefixed global variable | ||
| #2863 | BuddyPress Members Only | 37 | 184 | 80 | 1k+ | Text Domain Mismatch | ||
| #2864 | bunny.net – WordPress CDN Plugin | 37 | 165 | 159 | 10k+ | Output is not escaped | ||
| #2865 | Contact Zalo Report SW | 37 | 44 | 39 | 900 | Missing Arg Domain | ||
| #2866 | Delivery Date Time & Pickup for WooCommerce | 37 | 148 | 216 | 400 | Output is not escaped | ||
| #2867 | Carousel Upsells and Related Product for Woocommerce | 37 | 173 | 35 | 1k+ | Output is not escaped | ||
| #2868 | Catalog Booster & Product Catalog Mode for WooCommerce | 37 | 106 | 168 | 1k+ | Non-prefixed function | ||
| #2869 | Checkout for PayPal | 37 | 134 | 67 | 600 | Unsafe printing function | ||
| #2870 | Clearpay Gateway for WooCommerce | 37 | 185 | 63 | 1k+ | Text Domain Mismatch | ||
| #2871 | ClickCease Click Fraud Protection | 37 | 30 | 58 | 10k+ | Non-prefixed class | ||
| #2872 | ClickRank – Ai SEO Automation | 37 | 10 | 226 | 1k+ | Direct Query | ||
| #2873 | CodePeople Post Map for Google Maps | 37 | 257 | 31 | 3k+ | Unsafe printing function | ||
| #2874 | Coming Soon & Maintenance Mode by Colorlib | 37 | 100 | 136 | 6k+ | Non-prefixed global variable | ||
| #2875 | Lightweight Subscribe To Comments | 37 | 105 | 70 | 1k+ | Unsafe printing function | ||
| #2876 | Constant Contact Forms by MailMunch | 37 | 147 | 53 | 2k+ | wp function not compatible with requires wp | ||
| #2877 | CookieAdmin – Cookie Consent Banner | 37 | 43 | 86 | 400k+ | Nonce verification recommended | ||
| #2878 | CorvusPay WooCommerce Payment Gateway | 37 | 29 | 141 | 1k+ | Missing nonce verification | ||
| #2879 | Crafty Social Buttons | 37 | 279 | 27 | 900 | Non Singular String Literal Domain | ||
| #2880 | Ultimate Custom Add To Cart Button (Ajax) For WooCommerce by Binary Carpenter | 37 | 151 | 61 | 600 | Output is not escaped | ||
| #2881 | Simple Custom CSS and JS | 37 | 168 | 69 | 600k+ | Output is not escaped | ||
| #2882 | Custom CSS Manager | 37 | 55 | 20 | 1k+ | Output is not escaped | ||
| #2883 | Custom Post Template | 37 | 48 | 30 | 10k+ | Output is not escaped | ||
| #2884 | Debug Log Viewer | 37 | 26 | 83 | 1k+ | Missing nonce verification | ||
| #2885 | Disclaimer Popup | 37 | 313 | 53 | 1k+ | Text Domain Mismatch | ||
| #2886 | Donation Block For PayPal | 37 | 23 | 106 | 600 | Input is not validated | ||
| #2887 | DSGVO/GDPR Cookies, DSE, Impressum & Google Fonts Proxy | 37 | 391 | 25 | 700 | Text Domain Mismatch | ||
| #2888 | Duo Two-Factor Authentication | 37 | 44 | 61 | 3k+ | Missing nonce verification | ||
| #2889 | Easy Photo Album | 37 | 360 | 43 | 1k+ | Text Domain Mismatch | ||
| #2890 | Pricing Table WordPress Plugin – Easy Pricing Tables | 37 | 332 | 161 | 10k+ | Output is not escaped | ||
| #2891 | Easy Profile Widget | 37 | 157 | 20 | 400 | Output is not escaped | ||
| #2892 | EasyMe Connect | 37 | 130 | 45 | 500 | Text Domain Mismatch | ||
| #2893 | Eazy CF Captcha | 37 | 93 | 54 | 500 | Text Domain Mismatch | ||
| #2894 | WP eBay Product Feeds | 37 | 136 | 31 | 700 | Output is not escaped | ||
| #2895 | Encyclopedia / Glossary / Wiki | 37 | 263 | 48 | 1k+ | Output is not escaped | ||
| #2896 | Excerpt Editor | 37 | 170 | 142 | 500 | Unsafe printing function | ||
| #2897 | Exploit Scanner | 37 | 25 | 130 | 8k+ | Non-prefixed global variable | ||
| #2898 | Facturare WooCommerce | 37 | 158 | 106 | 3k+ | Text Domain Mismatch | ||
| #2899 | Furgonetka.pl: Przesyłki & Narzędzia e-commerce | 37 | 66 | 48 | 7k+ | Exception output is not escaped | ||
| #2900 | Get Custom Field Values | 37 | 40 | 44 | 1k+ | Output is not escaped |