CVE-2026-12106 in Auto Upload Images Plugin
Summary
by MITRE • 09/18/2026
The Auto Upload Images plugin for WordPress is vulnerable to Limited Server-Side Request Forgery in all versions up to, and including, 3.3.2 via the downloadImage function. This makes it possible for authenticated attackers, with contributor-level access and above, to make web requests to arbitrary locations originating from the web application. The plugin uses wp_remote_get() rather than wp_safe_remote_get(), and the validate() method only rejects URLs whose host matches the site's own hostname, failing to block requests to private, loopback, or link-local addresses (e.g., 127.0.0.1, 10.0.0.0/8, 169.254.169.254). Attackers can trigger this by embedding a crafted <img> tag with a src attribute pointing to internal network hosts in post content and submitting it for processing.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
Analysis
by VulDB Data Team • 09/18/2026
The Auto Upload Images plugin for WordPress, specifically versions up through 3.3.2, contains a critical server-side request forgery vulnerability that allows authenticated attackers to initiate HTTP requests from the web application to arbitrary destinations. This flaw resides within the downloadImage function and is exacerbated by an insufficient validation mechanism in the validate method. While the developer attempted to mitigate risks by rejecting URLs where the host matches the site's own hostname, this check is fundamentally flawed because it fails to account for private IP ranges, loopback addresses, or link-local addresses. Consequently, attackers with contributor-level access or higher can bypass these restrictions and force the server to communicate with internal network resources that are not intended to be accessible from the public internet.
From a technical perspective, the root cause of this vulnerability is the use of wp_remote_get() instead of its safer counterpart, wp_safe_remote_get(). The standard function does not enforce strict URL validation against private address spaces, whereas the safe variant includes logic to block requests to internal networks. By relying on the less restrictive function and implementing a naive hostname comparison that ignores IP-based restrictions, the plugin leaves itself open to exploitation. An attacker can craft malicious post content containing an img tag with a src attribute pointing to sensitive internal endpoints, such as 127.0.0.1 for local services or 169.254.169.254 which is commonly used by cloud providers for metadata access. When the plugin processes this content, it triggers an outbound request from the server itself, effectively acting as a proxy for the attacker to probe internal infrastructure.
The operational impact of this vulnerability extends beyond simple data exfiltration and includes significant risks related to internal network reconnaissance and potential further exploitation of backend services. Because the requests originate from the web application's IP address, they may bypass firewalls or access controls that restrict direct external access to internal systems. This capability allows attackers to discover running services on private networks, interact with cloud instance metadata APIs to steal credentials or configuration data, and potentially pivot into more sensitive parts of the network architecture. The requirement for contributor-level access means that any user account with minimal publishing privileges can be leveraged to execute these attacks, lowering the barrier for entry significantly compared to vulnerabilities requiring administrative rights.
This vulnerability aligns closely with CWE-918 Server-Side Request Forgery and specifically falls under the ATT&CK technique of T1560 which involves data staging or collection via cloud infrastructure APIs if targeting metadata endpoints. It also relates to CWE-20 Improper Input Validation due to the inadequate filtering of user-supplied URLs. To mitigate this risk, site administrators should immediately update the Auto Upload Images plugin to a version that addresses these flaws by implementing robust URL validation logic. This includes using wp_safe_remote_get() or manually validating against private IP ranges such as 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16 before processing any image URLs. Additionally, implementing strict input sanitization for all user-supplied content that triggers server-side requests is essential to prevent similar exploitation vectors in other plugins or custom code within the WordPress environment.