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 |
|---|---|---|---|---|---|---|---|---|
| #1201 | Arconix FAQ | 27 | 552 | 201 | 6k+ | Text Domain Mismatch | ||
| #1202 | Lean Player – Video and Audio Player with Playlist for WordPress, Elementor and Gutenberg | 27 | 1,615 | 466 | 2k+ | Text Domain Mismatch | ||
| #1203 | BackUpWordPress | 27 | 245 | 271 | 90k+ | Non-prefixed global variable | ||
| #1204 | Integration for HubSpot and Contact Form 7, WPForms, Elementor, Ninja Forms | 27 | 720 | 367 | 5k+ | Text Domain Mismatch | ||
| #1205 | WP Zoho for Contact Form 7, WPForms, Elementor, Formidable and Ninja Forms – CRM, Bigin | 27 | 692 | 381 | 3k+ | Text Domain Mismatch | ||
| #1206 | Church Content – Sermons, Events and More | 27 | 134 | 410 | 4k+ | Non-prefixed function | ||
| #1207 | Divi Collage | 27 | 516 | 1,183 | 700 | Non-prefixed global variable | ||
| #1208 | Comment Link Remove and Other Comment Tools | 27 | 691 | 132 | 7k+ | Text Domain Mismatch | ||
| #1209 | Contact Form Generator : Creative form builder for WordPress | 27 | 1,076 | 1,510 | 800 | Output is not escaped | ||
| #1210 | Duplicate Post | 27 | 447 | 274 | 300k+ | Unsafe printing function | ||
| #1211 | Polls CP | 27 | 399 | 500 | 400 | Output is not escaped | ||
| #1212 | Custom Scrollbar | 27 | 184 | 191 | 2k+ | Output is not escaped | ||
| #1213 | Cyrlitera – Transliteration of Links and File Names | 27 | 453 | 204 | 40k+ | Output is not escaped | ||
| #1214 | Gallery – Photo Albums Plugin | 27 | 647 | 252 | 2k+ | Output is not escaped | ||
| #1215 | Echo Knowledge Base – Documentation, FAQs, Chat & Smart Search | 27 | 289 | 751 | 10k+ | Output is not escaped | ||
| #1216 | EZ SQL Reports Shortcode Widget and DB Backup | 27 | 165 | 158 | 500 | Output is not escaped | ||
| #1217 | Embedder for Google Reviews | 27 | 531 | 1,333 | 6k+ | Non-prefixed global variable | ||
| #1218 | CM Tooltip Glossary | 27 | 611 | 188 | 7k+ | Output is not escaped | ||
| #1219 | Events Calendar for GeoDirectory | 27 | 1,262 | 462 | 2k+ | Text Domain Mismatch | ||
| #1220 | Everest Backup – WordPress Cloud Backup, Migration, Restore & Cloning Plugin | 27 | 122 | 135 | 3k+ | Non-prefixed global variable | ||
| #1221 | Extra Product Options for WooCommerce | 27 | 548 | 1,342 | 600 | Non-prefixed global variable | ||
| #1222 | FG Joomla to WordPress | 27 | 278 | 101 | 7k+ | Unsafe printing function | ||
| #1223 | Foxtool All-in-One: Contact chat button, Custom login, Media optimize images | 27 | 1,629 | 360 | 7k+ | Unsafe printing function | ||
| #1224 | Frontend Post Submission Manager Lite – Frontend Posting WordPress Plugin | 27 | 212 | 497 | 2k+ | Non-prefixed global variable | ||
| #1225 | StylePress for Elementor | 27 | 767 | 283 | 600 | Text Domain Mismatch | ||
| #1226 | Login for Google Apps | 27 | 139 | 85 | 10k+ | Exception output is not escaped | ||
| #1227 | Gravity Forms Directory | 27 | 202 | 457 | 600 | Non-prefixed global variable | ||
| #1228 | Gravity Forms + Stripe | 27 | 368 | 210 | 600 | Output is not escaped | ||
| #1229 | GSpeech TTS – WordPress Text To Speech Plugin | 27 | 842 | 333 | 3k+ | Output is not escaped | ||
| #1230 | Hester Core | 27 | 253 | 103 | 10k+ | Output is not escaped | ||
| #1231 | HM Multiple Roles | 27 | 537 | 1,287 | 1k+ | Non-prefixed global variable | ||
| #1232 | ImageRecycle pdf & image compression | 27 | 329 | 204 | 1k+ | Text Domain Mismatch | ||
| #1233 | Import Eventbrite Events | 27 | 156 | 575 | 3k+ | Non-prefixed global variable | ||
| #1234 | iQ Block Country | 27 | 164 | 245 | 20k+ | Request data is not unslashed | ||
| #1235 | My Private Site – Make Your Whole Site Private, Force Login & Block Registration Spam | 27 | 713 | 321 | 10k+ | Text Domain Mismatch | ||
| #1236 | Ray Enterprise Translation | 27 | 87 | 606 | 8k+ | Non-prefixed global variable | ||
| #1237 | Liza Widget For Spotify and Elementor | 27 | 609 | 1,287 | 1k+ | Non-prefixed global variable | ||
| #1238 | Loco Translate | 27 | 451 | 225 | 1m+ | Output is not escaped | ||
| #1239 | Login Security Solution | 27 | 216 | 154 | 4k+ | Output is not escaped | ||
| #1240 | LWS Optimize – All-in-One Speed Booster & Cache Tools | 27 | 34 | 518 | 10k+ | Non-prefixed global variable | ||
| #1241 | Magical Shop Builder – WooCommerce Template Builder for Elementor | Shop, Cart, Checkout & Product Page Builder | 27 | 76 | 459 | 3k+ | Non-prefixed namespace | ||
| #1242 | MakeCommerce for WooCommerce | 27 | 826 | 452 | 3k+ | Text Domain Mismatch | ||
| #1243 | Online Booking & Scheduling Calendar for WordPress by vcita | 27 | 473 | 161 | 1k+ | Output is not escaped | ||
| #1244 | Memberful – Membership Plugin | 27 | 351 | 336 | 1k+ | Text Domain Mismatch | ||
| #1245 | MLSImport – Download and synchronize real estate data from various MLS (Multiple Listing Services) | 27 | 154 | 551 | 5k+ | Non-prefixed global variable | ||
| #1246 | Multilanguage by BestWebSoft – WordPress Translation Plugin and Language Switcher | 27 | 465 | 345 | 3k+ | Text Domain Mismatch | ||
| #1247 | MW WP Form | 27 | 334 | 219 | 200k+ | Output is not escaped | ||
| #1248 | Nextend Social Login and Register | 27 | 1,668 | 243 | 200k+ | Output is not escaped | ||
| #1249 | Online Lesson Booking | 27 | 978 | 281 | 500 | Non Singular String Literal Domain | ||
| #1250 | Tussendoor – Open RDW | 27 | 301 | 140 | 600 | Text Domain Mismatch |