A Contact Form That Accepts Malware
CVE-2026-0740 is a critical vulnerability in the Ninja Forms – File Uploads plugin for WordPress. It allows unauthenticated remote attackers to upload arbitrary files — including PHP webshells — to the server. No WordPress account needed. The attacker sends a crafted request to the file upload endpoint, uploads a malicious PHP file, and achieves remote code execution with the web server's permissions.
Ninja Forms is one of the most widely installed WordPress form plugins, powering contact forms, registration forms, and survey forms across hundreds of thousands of sites. The File Uploads extension adds file attachment capability to these forms — and with CVE-2026-0740, it also adds an unauthenticated backdoor.
The Plugin Paradox, Again
This is the third critical WordPress plugin vulnerability WebPulse has documented in June 2026 alone. UpdraftPlus (3 million sites, unauthenticated admin RCE). Burst Statistics (1 million sites, CVSS 9.8). Now Ninja Forms. The pattern is structural: WordPress plugins are independent codebases written by independent developers, installed by site owners who trust the WordPress.org directory, and running with the full permissions of the WordPress installation.
A contact form plugin needs file upload capability to accept attachments. That file upload capability, when implemented without proper validation, becomes an arbitrary code execution vector. The plugin's feature is the vulnerability. The more features a WordPress plugin provides, the more attack surface it exposes.
The Cost of 'Just Add a Plugin'
The WordPress value proposition is simplicity: need a contact form? Install a plugin. Need file uploads? Install an extension. Need backups? Install UpdraftPlus. Need SEO? Install Yoast. Each plugin solves a problem. Each plugin also adds an independent codebase with its own security posture, its own update cadence, and its own vulnerability history.
The average WordPress site runs 27 plugins. Each plugin is a bet that its developer will find and fix vulnerabilities before attackers exploit them. CVE-2026-0740 is what happens when that bet loses. The site owner installed a contact form. They got an unauthenticated file upload endpoint that accepts PHP webshells.
The Alternative Architecture
A contact form on an Astro site uses a serverless function — a single-purpose endpoint that accepts form data, validates input, and sends an email. No file system access. No PHP execution. No plugin marketplace. The form handler is part of the application code, reviewed in the same PR as the rest of the site, deployed through the same CI/CD pipeline.
The cost difference is not in the contact form itself. It is in what the contact form brings with it. On WordPress, it brings a plugin ecosystem with 18,005 CVEs. On a modern static framework, it brings a function with a defined input schema and no server-side execution beyond its explicit scope.