Skip to main content

Auto Upload Images EUVDEUVD-2026-82730

| CVE-2026-12106 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-09-18 Wordfence GHSA-7v2c-5xw3-f2hc
6.4
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain contributor-level WordPress account
  2. Delivery
    Embed <img> tag pointing at internal/metadata IP
  3. Exploit
    Submit post triggering downloadImage
  4. Execution
    Plugin issues server-side wp_remote_get()
  5. Persist
    Reach loopback/private/link-local host
  6. Impact
    Disclose internal service or cloud metadata

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated WordPress account with contributor-level capability or higher (PR:L) on a site running Auto Upload Images <= 3.3.2; no additional user interaction is needed (UI:N). Exploitation is triggered by embedding an <img> tag whose src points at an internal target in post content and submitting it so the plugin's downloadImage function processes it. The vulnerability is inherent to default behavior because the plugin uses wp_remote_get() (not wp_safe_remote_get()) and its validate() method only rejects the site's own hostname - no non-default configuration is required. The primary limiting factors are the contributor authentication gate and the 'Limited' nature of the SSRF (a GET-based image fetch with only low confidentiality impact); the highest-value outcome (cloud metadata credential theft via 169.254.169.254) is contingent on the site being hosted on a cloud provider that exposes an unprotected IMDS endpoint.

Impact

This is a genuine but bounded SSRF issue that sits in the medium-severity band, and the multi-source signals are internally consistent. The vendor CVSS 3.1 score of 6.4 (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N) reflects a network-reachable flaw with low attack complexity but a real authentication gate: PR:L means a contributor-level account is required, which meaningfully limits the attacker population to users who already have publishing/authoring rights on the WordPress site. There is no EPSS score, no CISA KEV listing, and no public exploit code referenced - only the Wordfence advisory and the trac source lines documenting the vulnerable code. So exploitation status is 'no public exploit identified at time of analysis.' The most important signal beyond the raw score is the impact ceiling: the vendor itself labels this 'Limited' SSRF (the plugin issues a GET via wp_remote_get() to fetch an image), and the CVSS confidentiality impact is only C:L, so this is not a full read-anything SSRF. The realistic priority driver is cloud-metadata exposure (169.254.169.254) - a contributor account on an AWS/GCP-hosted WordPress site could pivot to IMDS and potentially harvest instance credentials, which elevates practical risk on cloud deployments beyond what C:L suggests. On a self-hosted bare-metal site the impact is closer to internal port-scanning/host-discovery. Net: a real, patch-worthy issue but not an emergency - no evidence of active or automated exploitation, and the contributor prerequisite plus limited data exfiltration keep it out of the critical tier.

Exploit ScenarioDerived

An attacker who holds (or has phished/registered into) a contributor-level WordPress account authors a post containing a crafted <img src="http://169.254.169.254/latest/meta-data/..."> tag and submits it for processing. The Auto Upload Images plugin's downloadImage function fetches that URL server-side with wp_remote_get(), and because validate() only blocks the site's own hostname, the request reaches the internal/loopback/link-local target. No public POC is referenced, but the technique is straightforward and the attack complexity is low (AC:L).

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 18, 2026

Limited server-side request forgery in the Auto Upload Images WordPress plugin (all versions up to and including 3.3.2) lets an authenticated user with contributor-level access or higher make the affected site issue outbound web requests to arbitrary destinations. The plugin's downloadImage routine uses wp_remote_get() instead of wp_safe_remote_get(), and its validate() method only rejects URLs whose host matches the site's own hostname, so requests to loopback, private, and link-local targets such as 127.0.0.1, 10.0.0.0/8, or 169.254.169.254 are not blocked. Exploitation is triggered simply by embedding a crafted <img> tag in post content and submitting it for processing; no KEV entry, public exploit code, or other active-exploitation signal was identified at time of analysis, and the practical impact is bounded because the SSRF is a GET-based image fetch with low confidentiality impact and a contributor authentication prerequisite.

RemediationAI

No tagged, vendor-released patched version was independently confirmed from the available data - version 3.3.2 is the last affected release and the only upstream remediation signal is a plugin repository changeset (https://plugins.trac.wordpress.org/changeset?reponame=&old=3693206%40auto-upload-images&new=3693206%40auto-upload-images), so treat this as 'upstream fix available (changeset/commit); released patched version not independently confirmed' and either apply that changeset or discontinue/remove the plugin until a fixed release ships. Where removal is not possible, the most effective compensating control is egress filtering on the WordPress host: deny outbound HTTP(S) from the web/application process to 127.0.0.0/8, RFC1918 ranges, and 169.254.0.0/16 (the trade-off is that legitimate internal integrations, health checks, or intranet-hosted assets will break and must be allow-listed individually). On cloud hosts, enforce IMDSv2 with token requirement and a hop limit of 1 (or disable the metadata endpoint entirely) so that GET-only fetches cannot retrieve instance credentials - this is a deployment-side change with no application impact. Tighten role hygiene by removing contributor-level access from untrusted users and auditing post content for <img> tags pointing at internal addresses, since the vulnerability requires an authenticated contributor or higher. Additionally, disabling the plugin's automatic remote-image download behavior (the WpAutoUpload integration) neutralizes the sink but sacrifices the plugin's core auto-upload feature; WAF or content filters that reject <img src> values resolving to private/loopback IPs are of limited value because they are easily bypassed by encodings and redirects, so they should not be relied upon as the primary control.

Affected VersionsENISA

Auto Upload Images 0 ≤3.3.2

Affected Packages

euvd auto_upload_images no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

At the root is CWE-918 (Server-Side Request Forgery). The plugin (vendor namespace 'airani', CPE cpe:2.3:a:airani:auto_upload_images:*:*:*:*:*:*:*:*) hooks into WordPress post save/processing to detect remote images and download them for local storage as attachments. The vulnerable path is the downloadImage function in src/ImageUploader.php (roughly lines 48 and 192 per the referenced Trac source), invoked from the plugin's WpAutoUpload class (lines 45, 64 and 96). Two design defects combine: the fetch is performed with WordPress's general-purpose wp_remote_get() rather than wp_safe_remote_get(), and wp_safe_remote_get() is precisely the wrapper that applies WordPress's own SSRF protections (blocking loopback, private, and link-local ranges via wp_http_validate_url). The plugin's own validate() method attempts a similar check but compares only against the current site's hostname, so any host other than the site itself - including 127.0.0.1, RFC1918 space, and the cloud instance metadata address 169.254.169.254 - passes validation. Because the fetch is authenticated as the WordPress server, any HTTP service reachable from the web host is queried, but the primitive is read-only-ish: the attacker sees the effect of the request (via the resulting attachment/error) and gains only low-confidentiality insight, which is why the assessed vector is C:L with S:C (the vulnerable component and the affected downstream resource live in different security scopes).

Know when Auto Upload Images gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Wordfence) PRIMARY 6.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 5.0 MEDIUM

Contributor account gives PR:L, network-reachable AC:L; SSRF crossing into internal systems justifies S:C; a GET image fetch yields limited disclosure (C:L) with no integrity or availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionCVE.org

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.

Threat Intelligence Overview

EPSS Score
0.2%
Top 83% exploitable
Prevalence
Medium
moderately popular WordPress image-import plugin, not universally deployed
Data Quality
3 sources
Confidence: Low

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy