PluginCheck.CodeAnalysis.WriteFile.PluginDirectoryWrite
Plugin Directory Write
The plugin writes files in or near plugin-controlled directories.
Why It Shows Up
Plugin Check found file creation or modification behavior that may affect the plugin directory or executable files.
Why It Matters
Runtime writes to plugin code directories can break updates, create permission issues, or introduce supply-chain risk.
How to Fix
- Store generated data in uploads, cache, or another WordPress-approved writable location.
- Validate paths and file names against strict allowlists.
- Avoid modifying plugin source files at runtime.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #401 | WP Encryption – Lifetime Free SSL Cert & HTTPS, Force SSL / HTTPS Redirect, SSL Security | 25 | 729 | 1,556 | 50k+ | Non-prefixed global variable | ||
| #402 | WP Super Cache | 25 | 800 | 989 | 1m+ | Output is not escaped | ||
| #403 | WP Time Slots Booking Form | 25 | 439 | 1,137 | 1k+ | Non-prefixed global variable | ||
| #404 | WP TripAdvisor Review Slider | 25 | 1,063 | 2,582 | 8k+ | Non-prefixed global variable | ||
| #405 | Team Members Showcase | 25 | 591 | 1,498 | 4k+ | Non-prefixed global variable | ||
| #406 | WPvivid Backup for MainWP | 25 | 852 | 1,798 | 10k+ | Missing nonce verification | ||
| #407 | WPvivid — Backup, Migration & Staging | 25 | 903 | 1,461 | 900k+ | Non-prefixed namespace | ||
| #408 | XT Quick View for WooCommerce | 25 | 1,062 | 1,798 | 400 | Non-prefixed global variable | ||
| #409 | Bangladeshi Payments Mobile – QR Code & Transaction Reports | 26 | 535 | 1,280 | 1k+ | Non-prefixed global variable | ||
| #410 | Charitable – Donation & Fundraising Platform (Donation Forms, Recurring Donations & Fundraising Campaigns) | 26 | 98 | 269 | 10k+ | error log error log | ||
| #411 | Conditional Logic for Woo Product Add-ons | 26 | 575 | 1,352 | 400 | Non-prefixed global variable | ||
| #412 | Easy Age Verify | 26 | 570 | 1,317 | 1k+ | Non-prefixed global variable | ||
| #413 | Easy Post Views Count | 26 | 534 | 1,180 | 2k+ | Non-prefixed global variable | ||
| #414 | ezCache | 26 | 127 | 284 | 10k+ | Direct Query | ||
| #415 | FV Antispam | 26 | 332 | 239 | 900 | Output is not escaped | ||
| #416 | Translate WordPress – Google Language Translator | 26 | 200 | 317 | 100k+ | Non-prefixed global variable | ||
| #417 | GPTranslate – Multilingual AI Translation for WordPress: Translate Websites with AI Agents | 26 | 286 | 216 | 500 | badly named files | ||
| #418 | Hide Admin Bar Based on User Roles – Disable the WordPress Toolbar by Role, Device or Page | 26 | 549 | 1,345 | 20k+ | Non-prefixed global variable | ||
| #419 | MaxGalleria | 26 | 278 | 560 | 2k+ | Non-prefixed global variable | ||
| #420 | Packlink PRO for WooCommerce | 26 | 129 | 162 | 20k+ | Non-prefixed global variable | ||
| #421 | Password Protected — Lock Entire Site, Pages, Posts, Categories, and Partial Content | 26 | 531 | 1,359 | 300k+ | Non-prefixed global variable | ||
| #422 | LoginWP (Formerly Peter's Login Redirect) | 26 | 401 | 278 | 90k+ | Output is not escaped | ||
| #423 | Post List Designer – Category Post, Recent Post, Post List | 26 | 542 | 1,320 | 1k+ | Non-prefixed global variable | ||
| #424 | Premmerce User Roles | 26 | 597 | 1,357 | 600 | Non-prefixed global variable | ||
| #425 | Role Based Pricing for Woo by Meow Crew | 26 | 548 | 1,354 | 2k+ | Non-prefixed global variable | ||
| #426 | Carousel, Recent Post Slider and Banner Slider | 26 | 528 | 1,409 | 8k+ | Non-prefixed global variable | ||
| #427 | URL Image Importer – Import External Images to the Media Library from URL, CSV & XML | 26 | 144 | 239 | 800 | Missing nonce verification | ||
| #428 | Visitors Online by BestWebSoft | 26 | 512 | 269 | 1k+ | Text Domain Mismatch | ||
| #429 | Conditional Fees for WooCommerce Lite | 26 | 566 | 1,303 | 500 | Non-prefixed global variable | ||
| #430 | Premmerce SEO for WooCommerce | 26 | 550 | 1,285 | 1k+ | Non-prefixed global variable | ||
| #431 | Set Price Note (Units, Offers, Editions) for WooCommerce | 26 | 595 | 1,307 | 700 | Non-prefixed global variable | ||
| #432 | Shipping Method Display Style for WooCommerce | 26 | 529 | 1,308 | 2k+ | Non-prefixed global variable | ||
| #433 | Divi Collage | 27 | 516 | 1,183 | 700 | Non-prefixed global variable | ||
| #434 | Contact Form DB Divi | 27 | 529 | 1,306 | 3k+ | Non-prefixed global variable | ||
| #435 | Translate WordPress with ConveyThis – AI Multilingual Plugin | 27 | 159 | 298 | 1k+ | Non-prefixed global variable | ||
| #436 | Extra Product Options for WooCommerce | 27 | 548 | 1,342 | 600 | Non-prefixed global variable | ||
| #437 | Foxtool All-in-One: Contact chat button, Custom login, Media optimize images | 27 | 1,629 | 360 | 7k+ | Unsafe printing function | ||
| #438 | HM Multiple Roles | 27 | 537 | 1,287 | 1k+ | Non-prefixed global variable | ||
| #439 | ImageRecycle pdf & image compression | 27 | 329 | 204 | 1k+ | Text Domain Mismatch | ||
| #440 | Liza Widget For Spotify and Elementor | 27 | 609 | 1,287 | 1k+ | Non-prefixed global variable | ||
| #441 | LWS Optimize – All-in-One Speed Booster & Cache Tools | 27 | 35 | 534 | 10k+ | Non-prefixed global variable | ||
| #442 | Restrict for Elementor | 27 | 530 | 1,224 | 900 | Non-prefixed global variable | ||
| #443 | Robokassa payment gateway for Woocommerce | 27 | 95 | 211 | 3k+ | Non-prefixed global variable | ||
| #444 | SEO Booster | 27 | 264 | 1,082 | 1k+ | Non-prefixed global variable | ||
| #445 | Speed Booster Pack ⚡ PageSpeed Optimization Suite | 27 | 108 | 187 | 9k+ | Missing Translators Comment | ||
| #446 | Tax Exemption for WooCommerce | 27 | 533 | 1,404 | 700 | Non-prefixed global variable | ||
| #447 | Terms & Conditions Per Product | 27 | 533 | 1,336 | 800 | Non-prefixed global variable | ||
| #448 | Tutor LMS – Migration Tool | 27 | 139 | 341 | 1k+ | Direct Query | ||
| #449 | wp-mpdf | 27 | 123 | 382 | 1k+ | Non-prefixed global variable | ||
| #450 | Worthy – VG WORT Integration für WordPress | 27 | 1,343 | 773 | 1k+ | Output is not escaped |