Skip to main content

WooCommerce Photo Reviews EUVDEUVD-2026-114611

| CVE-2026-110251 MEDIUM
Path Traversal (CWE-22)
2026-10-31 Wordfence GHSA-qm3q-4mg3-2277
5.4
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Load product page, read public wcpr_image_upload nonce
  2. Delivery
    Submit guest review with target attachment IDs in wcpr_image_upload_id
  3. Exploit
    IDs stored in comment meta without ownership check
  4. Execution
    Moderator deletes review or wp_scheduled_delete cron purges it
  5. Persist
    delete_reviews_image() calls wp_delete_attachment() on attacker IDs
  6. Impact
    Arbitrary media and on-disk files permanently deleted

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

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

Exploitation Conditions

The affected product is VillaTheme's Revopic / Photo Reviews for WooCommerce plugin (versions ≤ 1.2.31) with guest/front-end review submission reachable, so an unauthenticated attacker can POST the wcpr_image_upload_id parameter; the required wcpr_image_upload nonce is a shared public value rendered on every product page and does not act as an authentication barrier. Exploitation does not execute immediately: the deletion fires via the delete_comment hook only when a moderator removes the planted review or when WordPress core's wp_scheduled_delete cron purges the trashed comment after EMPTY_TRASH_DAYS - this deferred, interaction-dependent trigger (reflected as UI:R) is the main practical limiter, along with the attacker needing valid target attachment IDs, which are typically sequential and enumerable.

Impact

Signals point to a real but non-emergency medium-severity issue. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L, base 5.4) shows a network-reachable, low-complexity, unauthenticated flaw whose impact is limited to integrity and availability (arbitrary media deletion) with no confidentiality loss, and which requires a user-interaction trigger - a moderator removing the malicious review, or WordPress core's wp_scheduled_delete cron purging it after EMPTY_TRASH_DAYS. The vuln.today Decision label is this_month rather than act_now/emergency, consistent with that indirect, time-delayed trigger. No EPSS score, no KEV listing, and no verified public exploit code are present in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation; this is a credible destructive-data flaw found by Wordfence rather than a mass-exploited one. One classification caveat: the record carries CWE-22 and a 'Path Traversal' tag, but the described mechanism is a missing ownership/capability check on attacker-supplied attachment IDs (an insecure direct object reference), not directory traversal - verify against the Wordfence advisory. Net: worth patching this cycle because exploitation is trivial and the impact (permanent, irreversible deletion of any media library attachment and its on-disk files) is serious, but the moderator-dependent trigger and lack of exploitation signals keep it below drop-everything urgency.

Exploit ScenarioDerived

An unauthenticated attacker submits a product review on an affected store, embedding chosen WordPress attachment IDs in the wcpr_image_upload_id POST parameter using the public wcpr_image_upload nonce printed on every product page. When a moderator later deletes that review (or core's wp_scheduled_delete cron purges it after EMPTY_TRASH_DAYS), the delete_comment hook fires delete_reviews_image() and permanently deletes those attachments and their files on disk. No public exploit code is identified at time of analysis; exploitation relies on the deferred moderation/cron trigger reflected in UI:R.

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

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

Alert me

AnalysisAIv1 – Oct 31, 2026

Unauthenticated attackers can permanently delete arbitrary WordPress Media Library attachments - including the files on disk - on any site running VillaTheme's Revopic / Photo Reviews for WooCommerce plugin through version 1.2.31. The plugin accepts attacker-chosen attachment IDs through the wcpr_image_upload_id POST parameter and stores them in review comment meta; the only validation confirms the ID is an attachment post type, never that the submitter owns or uploaded it, and the required wcpr_image_upload nonce is a shared public value printed on every product page. Deletion is deferred rather than immediate: it fires through the delete_comment hook when a moderator removes the planted review or when WordPress core's wp_scheduled_delete cron purges the trashed comment after EMPTY_TRASH_DAYS, and exploitation additionally requires enumerable target attachment IDs; no public exploit code or confirmed active exploitation was identified at time of analysis, and the assigned priority is this_month.

RemediationAI

No vendor-released patch or fixed version is identified in the supplied data; confirm current status with the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/b9a4d8f9-7b25-4c31-8457-2cb45bd17150?source=cve) and the plugin page (https://wordpress.org/plugins/woo-photo-reviews/) before assuming a release exists, and if an updated version is published, upgrade to it. Because the destructive action is gated on the delete_comment hook, limiting who can submit reviews reduces but does not eliminate exposure - the shared wcpr_image_upload nonce is public on every product page, so guest review submission should be disabled in the plugin/WooCommerce settings if it is not required, with the trade-off that legitimate customer photo reviews are lost. Restricting or disabling the plugin entirely removes the vulnerable delete path. Shortening or reviewing EMPTY_TRASH_DAYS and being cautious about bulk-deleting or emptying trashed reviews only changes when the wp_scheduled_delete purge fires - it does not prevent the deletion - and moderators should avoid removing suspicious reviews until the plugin is patched or disabled, since removal itself triggers the destructive call.

Affected VersionsENISA

Revopic – Photo Reviews for WooCommerce 0 ≤1.2.31

Affected Packages

euvd revopic_photo_reviews_for_woocommerce 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

The flaw sits in the review-image handling pipeline of the woo-photo-reviews plugin. Front-end review submission code (frontend/frontend.php around lines 1232 and 1267) passes submitted wcpr_image_upload_id values through viwcpr_filter_review_image_ids() in includes/functions.php (around line 84), which validates only that each ID resolves to the 'attachment' post type. Those IDs are persisted into comment meta, and admin-side code (admin/admin.php around line 2403) hooks delete_reviews_image() to the delete_comment action, calling wp_delete_attachment() with whatever IDs were stored - with no ownership or capability check. The result is a classic identifier-trust problem: any party able to submit a review comment controls which attachment is destroyed. The submission nonce wcpr_image_upload is rendered on every product page for guest commenters, so it offers no authentication value. The CVE is classified under CWE-22 (path traversal) because the attacker-supplied resource identifier ultimately drives deletion of files on disk, though the practical root cause is the missing authorization check on the delete_comment path rather than directory traversal itself. The impact is time-shifted: the destructive call only executes on moderator removal of the review or on the wp_scheduled_delete cron purge of the trashed comment, which is reflected as UI:R in the assessed vector; the trigger does not run at submission time.

Know when Wordpress Plugin 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 MEDIUM
NVD 5.4 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L
vuln.today AI 5.4 MEDIUM

Unauthenticated HTTP POST (AV:N/AC:L/PR:N); deletion only triggers on moderator/cron handling of the review (UI:R); no data disclosure (C:N) but arbitrary attachment deletion yields I:L/A:L.

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

Primary rating from Vendor (Wordfence).

CVSS VectorNVD

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

DescriptionNVD

The Photo Reviews for WooCommerce plugin for WordPress is vulnerable to unauthorized Media Library File Deletion in all versions up to, and including, 1.2.31. This is due to the delete_reviews_image() function's delete_comment hook trusting attachment IDs supplied via the wcpr_image_upload_id POST parameter that were stored in comment meta without any ownership or capability check - viwcpr_filter_review_image_ids() verifies only that each submitted ID refers to an attachment post type, not that the submitter uploaded or owns it. This makes it possible for unauthenticated attackers to permanently delete any WordPress media library attachment - including its files on disk as recorded by wp_delete_attachment() - by embedding attacker-chosen attachment IDs into a review comment, then waiting for a moderator to remove the review or for WordPress core's wp_scheduled_delete cron to purge it after EMPTY_TRASH_DAYS. The nonce required to submit the parameter (wcpr_image_upload) is a shared public value printed on every product page for guest commenters and does not function as an authentication barrier, making this trivially exploitable without any account.

Threat Intelligence Overview

EPSS Score
0.3%
Top 75% exploitable
Prevalence
Medium
VillaTheme WooCommerce review plugin, moderate but not universal WordPress install base
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

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.3%
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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

CVE-2024-5084 CRITICAL POC
9.8 May 23

The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil

CVE-2024-44000 CRITICAL POC
9.8 Oct 20

Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote

CVE-2020-36847 CRITICAL POC
9.8 Jul 12

The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner

CVE-2025-11749 CRITICAL POC
9.8 Nov 05

The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint

CVE-2025-27007 CRITICAL POC
9.8 May 01

The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut

CVE-2016-1209 CRITICAL POC
9.8 May 14

The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via

CVE-2024-4443 CRITICAL POC
9.8 May 22

The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based

CVE-2024-1698 CRITICAL POC
9.8 Feb 27

SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a

CVE-2023-6875 CRITICAL POC
9.8 Jan 11

The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i

CVE-2024-1512 CRITICAL POC
9.8 Feb 17

The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base

CVE-2024-4295 CRITICAL POC
9.8 Jun 05

The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in

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