WordPress.WP.AlternativeFunctions.file_system_operations_readfile
file system operations readfile
The plugin performs filesystem work with raw PHP functions where WordPress expects safer filesystem handling.
Why It Shows Up
Plugin Check found functions such as `fopen`, `fwrite`, `chmod`, `mkdir`, `readfile`, or related operations.
Why It Matters
WordPress sites can use different filesystem permissions and transports. Raw filesystem calls can fail on common hosts or write to unsafe locations.
How to Fix
- Use WordPress filesystem helpers when writing, reading, or changing files in plugin-managed paths.
- Validate paths and keep writes inside directories owned by the plugin or WordPress uploads.
- Never write PHP code from user input or remote responses.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #51 | Seraphinite Accelerator | 22 | 595 | 255 | 50k+ | Output is not escaped | ||
| #52 | Swift Performance Lite | 22 | 2,346 | 1,325 | 6k+ | Text Domain Mismatch | ||
| #53 | 10Web Booster – Website speed optimization, Cache & Page Speed optimizer | 22 | 502 | 599 | 70k+ | Non-prefixed global variable | ||
| #54 | Theme Editor | 22 | 798 | 685 | 50k+ | Output is not escaped | ||
| #55 | Unlimited Elements Blocks Library | 22 | 708 | 1,822 | 400 | Non-prefixed global variable | ||
| #56 | RapidLoad AI – Optimize Web Vitals Automatically | 22 | 81 | 840 | 700 | Nonce verification recommended | ||
| #57 | UpStream: a Project Management Plugin for WordPress | 22 | 683 | 703 | 600 | Non-prefixed global variable | ||
| #58 | Paysera Payment Gateway for WooCommerce | 22 | 1,870 | 198 | 7k+ | Exception output is not escaped | ||
| #59 | File Manager | 22 | 740 | 520 | 1m+ | Unsafe printing function | ||
| #60 | WP Super Minify • Minify, Compress and Cache HTML, CSS & JavaScript | 22 | 164 | 257 | 8k+ | Non-prefixed constant | ||
| #61 | WP-WebAuthn | 22 | 957 | 396 | 2k+ | Exception output is not escaped | ||
| #62 | Frontend Admin by DynamiApps | 23 | 5,946 | 3,231 | 9k+ | Text Domain Mismatch | ||
| #63 | Ad Inserter – Ad Manager & AdSense Ads | 23 | 4,267 | 812 | 300k+ | Output is not escaped | ||
| #64 | AR for WordPress | 23 | 151 | 499 | 400 | Non-prefixed global variable | ||
| #65 | CLUEVO LMS, E-Learning Platform | 23 | 1,843 | 1,176 | 400 | Text Domain Mismatch | ||
| #66 | Contest Gallery – Upload & Vote Photos, Media, Sell with PayPal & Stripe | 23 | 9,396 | 26,680 | 1k+ | Non-prefixed global variable | ||
| #67 | EazyDocs – AI Powered Knowledge Base, Wiki, Documentation & FAQ Builder | 23 | 356 | 1,548 | 2k+ | Non-prefixed global variable | ||
| #68 | Front End PM | 23 | 978 | 2,264 | 4k+ | Non-prefixed global variable | ||
| #69 | Tracking and Consent Manager – WP Full Picture | 23 | 1,280 | 3,223 | 3k+ | Non-prefixed global variable | ||
| #70 | Groundhogg — CRM, Newsletters, and Marketing Automation | 23 | 143 | 919 | 2k+ | Non-prefixed global variable | ||
| #71 | Logo Slider – Logo Showcase, Logo Carousel, Logo Gallery and Client Logo Presentation | 23 | 992 | 400 | 30k+ | Text Domain Mismatch | ||
| #72 | Team Members – A WordPress Team Plugin with Gallery, Grid, Carousel, Slider, Table, List, and More | 23 | 1,840 | 2,310 | 2k+ | Non-prefixed global variable | ||
| #73 | Gutenberg | 23 | 643 | 348 | 300k+ | Missing direct file access protection | ||
| #74 | Houzez Property Feed | 23 | 1,416 | 1,585 | 1k+ | Text Domain Mismatch | ||
| #75 | InfiniteWP Client | 23 | 2,280 | 1,811 | 200k+ | Exception output is not escaped | ||
| #76 | Import WP – Export and Import CSV and XML files to WordPress | 23 | 579 | 324 | 4k+ | Exception output is not escaped | ||
| #77 | Kadence Blocks — Page Builder Toolkit for Gutenberg Editor | 23 | 55 | 2,127 | 600k+ | Non-prefixed global variable | ||
| #78 | Masteriyo LMS – LMS Course Builder, Quizzes & Certificates | 23 | 188 | 2,123 | 5k+ | Non-prefixed global variable | ||
| #79 | Locatoraid Store Locator | 23 | 318 | 645 | 1k+ | Non-prefixed global variable | ||
| #80 | MailPoet – Newsletters, Email Marketing, and Automation | 23 | 956 | 721 | 500k+ | Exception output is not escaped | ||
| #81 | Media Library File Download | 23 | 615 | 1,286 | 1k+ | Non-prefixed global variable | ||
| #82 | Media Library Assistant | 23 | 1,130 | 3,813 | 70k+ | Nonce verification recommended | ||
| #83 | Photo Gallery, Sliders, Proofing and Themes – NextGEN Gallery | 23 | 2,154 | 1,027 | 300k+ | Text Domain Mismatch | ||
| #84 | Photo Gallery by 10Web – Mobile-Friendly Image Gallery | 23 | 4,157 | 1,553 | 100k+ | Output is not escaped | ||
| #85 | Seraphinite Post .DOCX Source | 23 | 1,156 | 110 | 900 | Output is not escaped | ||
| #86 | Local Google Analytics for WordPress – caches external requests | 23 | 551 | 199 | 3k+ | Output is not escaped | ||
| #87 | Slider by 10Web – Responsive Image Slider | 23 | 5,814 | 976 | 10k+ | Output is not escaped | ||
| #88 | Strong Testimonials | 23 | 199 | 402 | 90k+ | Nonce verification recommended | ||
| #89 | Unlimited Elements For Elementor | 23 | 711 | 2,101 | 300k+ | Non-prefixed global variable | ||
| #90 | WP BackItUp Community Edition | 23 | 257 | 989 | 6k+ | Non-prefixed global variable | ||
| #91 | WP Editor | 23 | 502 | 335 | 20k+ | Unsafe printing function | ||
| #92 | WP Free SSL | 23 | 735 | 1,345 | 1k+ | Non-prefixed global variable | ||
| #93 | WP-Lister Lite for Amazon | 23 | 3,061 | 4,177 | 800 | Output is not escaped | ||
| #94 | FunnelKit Automations – Email Marketing Automation and CRM for WordPress & WooCommerce | 23 | 798 | 2,193 | 20k+ | SQL query is not prepared | ||
| #95 | WP Mega Menu | 23 | 992 | 792 | 8k+ | Non-prefixed global variable | ||
| #96 | WP Migrate Lite – Migration Made Easy | 23 | 371 | 257 | 200k+ | Exception output is not escaped | ||
| #97 | WP STAGING – WordPress Backups, Restore, Migration & Clone | 23 | 1,523 | 1,670 | 100k+ | Non-prefixed global variable | ||
| #98 | Yatra – Travel Booking & Tour Operator Software | 23 | 2,242 | 4,047 | 600 | Non-prefixed global variable | ||
| #99 | A2 Optimized WP – Turbocharge and secure your WordPress site | 24 | 271 | 231 | 60k+ | Missing Arg Domain | ||
| #100 | Advanced Contact form 7 DB | 24 | 765 | 1,961 | 70k+ | Non-prefixed global variable |