WordPress.Security.EscapeOutput.UnsafePrintingFunction
Unsafe printing function
A printing function is outputting dynamic content without proving that the content is escaped.
Why It Shows Up
The scan saw output through functions such as `printf`, `print`, or similar constructs where the printed values were not escaped for their context.
Why It Matters
Formatted output is still browser output. If any argument contains attacker-controlled content, the page can become vulnerable to cross-site scripting.
How to Fix
- Escape every dynamic argument with `esc_html()`, `esc_attr()`, `esc_url()`, or `wp_kses()` as appropriate.
- Keep translation wrappers and escaping wrappers in the correct order, such as `esc_html__( 'Text', 'text-domain' )` for translated text.
- Avoid marking values as safe unless they are hard-coded or already strictly constrained.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #401 | Infinite Uploads – Offload Media and Video to Cloud Storage | 24 | 586 | 722 | 800 | Direct Query | ||
| #402 | Keap Official Opt-in Forms | 24 | 829 | 1,046 | 1k+ | Non-prefixed global variable | ||
| #403 | Social Slider Feed – Social Media Feed & Gallery Widgets | 24 | 929 | 707 | 20k+ | Non-prefixed global variable | ||
| #404 | Dynamics 365 Integration | 24 | 383 | 166 | 600 | Output is not escaped | ||
| #405 | Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress | 24 | 1,855 | 953 | 100k+ | Output is not escaped | ||
| #406 | LearnPress – Backup & Migration Tool | 24 | 385 | 469 | 5k+ | Output is not escaped | ||
| #407 | Load More Products for WooCommerce | 24 | 731 | 459 | 20k+ | Text Domain Mismatch | ||
| #408 | Event Booking Manager for WooCommerce – Registration, RSVP, Calendar & Tickets | 24 | 969 | 2,140 | 7k+ | Non-prefixed global variable | ||
| #409 | Generate Images (AI) – Magic Post Thumbnail | 24 | 1,940 | 1,761 | 6k+ | Non-prefixed global variable | ||
| #410 | Mailchimp for WooCommerce | 24 | 523 | 663 | 200k+ | Non-prefixed global variable | ||
| #411 | MailerPress – Newsletter, email marketing & AI automation | 24 | 805 | 3,931 | 1k+ | Direct Query | ||
| #412 | Mailjet Email Marketing | 24 | 435 | 206 | 10k+ | Unsafe printing function | ||
| #413 | Mang Board WP | 24 | 1,213 | 4,720 | 9k+ | Non-prefixed global variable | ||
| #414 | Marketing Automation | 24 | 440 | 677 | 600 | Non-prefixed global variable | ||
| #415 | Min and Max Quantity for WooCommerce | 24 | 603 | 459 | 20k+ | Text Domain Mismatch | ||
| #416 | Timetable and Event Schedule by MotoPress | 24 | 456 | 232 | 30k+ | Output is not escaped | ||
| #417 | MxChat – AI Chatbot & Content Generation for WordPress | 24 | 3,230 | 1,405 | 2k+ | Text Domain Mismatch | ||
| #418 | My WP Customize Admin/Frontend | 24 | 1,249 | 292 | 8k+ | Unsafe printing function | ||
| #419 | My Agile Privacy® – CMP, Cookie Consent & Privacy Tools | 24 | 1,170 | 674 | 7k+ | Text Domain Mismatch | ||
| #420 | Newsletter – Send awesome emails from WordPress | 24 | 898 | 2,219 | 200k+ | Non-prefixed global variable | ||
| #421 | Omnipress | 24 | 169 | 245 | 800 | Non-prefixed global variable | ||
| #422 | Pagar.me para WooCommerce | 24 | 549 | 116 | 5k+ | Text Domain Mismatch | ||
| #423 | Page Builder: Pagelayer – Drag and Drop website builder | 24 | 769 | 556 | 400k+ | Output is not escaped | ||
| #424 | Pagination Styler for WooCommerce | 24 | 799 | 448 | 1k+ | Output is not escaped | ||
| #425 | Participants Database | 24 | 950 | 894 | 7k+ | SQL query is not prepared | ||
| #426 | PayPal Brasil para WooCommerce | 24 | 554 | 329 | 1k+ | Unsafe printing function | ||
| #427 | PixelYourSite – Your smart PIXEL (TAG) & API Manager | 24 | 1,176 | 2,416 | 500k+ | Non-prefixed namespace | ||
| #428 | Product Catalog Simple | 24 | 1,555 | 1,982 | 1k+ | Output is not escaped | ||
| #429 | Premmerce Brands for WooCommerce | 24 | 700 | 1,344 | 2k+ | Non-prefixed global variable | ||
| #430 | Product Tabs Manager for WooCommerce | 24 | 634 | 482 | 2k+ | Text Domain Mismatch | ||
| #431 | Product Watermark for WooCommerce | 24 | 685 | 459 | 2k+ | Text Domain Mismatch | ||
| #432 | Products Compare for WooCommerce | 24 | 1,022 | 695 | 1k+ | Output is not escaped | ||
| #433 | Co-Authors, Multiple Authors and Guest Authors in an Author Box with PublishPress Authors | 24 | 369 | 820 | 20k+ | Nonce verification recommended | ||
| #434 | reGenerate Thumbnails Advanced | 24 | 220 | 122 | 70k+ | Unsafe printing function | ||
| #435 | Registrations for the Events Calendar – Event Registration Plugin | 24 | 404 | 944 | 7k+ | Non-prefixed global variable | ||
| #436 | Related Posts Thumbnails Plugin for WordPress | 24 | 314 | 413 | 20k+ | Non-prefixed function | ||
| #437 | PublishPress Revisions: Duplicate Posts, Submit, Approve and Schedule Content Changes | 24 | 421 | 583 | 10k+ | Missing Translators Comment | ||
| #438 | RS WP Book Showcase – A Complete Book Catalogue & Library System | 24 | 910 | 343 | 1k+ | Text Domain Mismatch | ||
| #439 | RSFirewall! | 24 | 563 | 521 | 4k+ | Output is not escaped | ||
| #440 | Sales Report for WooCommerce | 24 | 659 | 451 | 1k+ | Output is not escaped | ||
| #441 | Screen Reader Accessibility – WCAG, Text-to-Speech & AI Accessibility Fixes | 24 | 235 | 330 | 600 | Non-prefixed global variable | ||
| #442 | Security Plugin, Firewall & Malware Scanner with Auto Removal | 24 | 1,188 | 770 | 30k+ | Output is not escaped | ||
| #443 | SEOKEY – Powerful SEO plugin with Expert Insights and SEO Audit | 24 | 605 | 928 | 1k+ | Non-prefixed global variable | ||
| #444 | SEO Ultimate | 24 | 437 | 269 | 10k+ | Output is not escaped | ||
| #445 | Sequential Order Numbers for WooCommerce | 24 | 698 | 472 | 1k+ | Text Domain Mismatch | ||
| #446 | Servebolt Optimizer | 24 | 1,958 | 681 | 1k+ | Text Domain Mismatch | ||
| #447 | Share This Image | 24 | 744 | 1,582 | 1k+ | Non-prefixed global variable | ||
| #448 | Shortcodes Ultimate – Content Elements | 24 | 656 | 1,552 | 400k+ | Non-prefixed global variable | ||
| #449 | ShortPixel Adaptive Images – WebP, AVIF, CDN, Image Optimization | 24 | 926 | 322 | 10k+ | Output is not escaped | ||
| #450 | Simple Membership | 24 | 2,297 | 1,734 | 40k+ | Unsafe printing function |