CVE-2026-110002: Snazzy Social Media Feed <= 2.5 - Unauthenticated Arbitrary File Upload via 'pluginURL' Parameter
The Snazzy Social Media Feed plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 2.5 via the (file scope) function. This is due to missing WordPress bootstrap, authentication, capability, and nonce checks in the standalone save-to-cache.php script, combined with insufficient sanitization of the pluginURL parameter before it is written to a web-executable PHP file. This makes it possible for authenticated attackers, with subscriber-level access and above, to upload files that may be executable, which makes remote code execution possible. The save-to-cache.php script is directly reachable without loading WordPress; FILTERSANITIZEURL — the only filter applied to the pluginURL value — preserves the characters required to craft a valid PHP payload, which is then written verbatim into cached-content/cached-feed.php and immediately executable via a single GET request.
Affected Software
Event History
Frequently Asked Questions
Which component handles the attacker-controlled value, and where is it written?
The standalone save-to-cache.php script processes the pluginURL parameter. Its value is written verbatim into cached-content/cached-feed.php, a web-executable PHP file.
What protections are missing from the affected request path?
The save-to-cache.php script does not load the WordPress bootstrap and lacks authentication, capability, and nonce checks. The only stated input filtering is FILTER_SANITIZE_URL, which preserves characters needed for a valid PHP payload.
What interaction is needed after a payload is written?
The cached PHP file can be executed with a single GET request after the payload is written. This can result in remote code execution.
Does exploitation require a WordPress account?
The description identifies subscriber-level access and above as sufficient, while also stating that save-to-cache.php is directly reachable without loading WordPress and has no authentication checks. The provided information does not reconcile those two points further.