Skip to main content

Photo Engine EUVDEUVD-2026-115670

| CVE-2026-120575 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-11-03 Wordfence GHSA-m49q-p734-466h
6.4
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Register subscriber account
  2. Delivery
    Read leaked wplr_auth_token from admin page
  3. Exploit
    Call /?wplr-sync-api with crafted hierarchy[].name
  4. Execution
    Store unsanitized script payload
  5. Persist
    Admin/user views injected page
  6. Impact
    Script executes in victim browser context

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

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

Exploitation Conditions

The attacker needs an authenticated subscriber-level (or higher) account on the target WordPress site; this is the primary limiting factor, so sites that disable open user registration substantially reduce exposure. The concrete exploitation path is specific to this plugin: the /?wplr-sync-api endpoint authenticates only via the wplr_auth_token usermeta and performs no capability check, and that token is disclosed on every admin page through localized script data because a screen-condition guard was commented out - allowing a subscriber to obtain the token and submit a malicious 'hierarchy[].name' value that is stored without sanitization or output escaping (CWE-79). Payload execution is deferred and requires a user (potentially an administrator) to later view the injected page; the stored script runs in that viewer's browser context. Affected: all versions up to and including 6.5.7; fixed in 6.5.8.

Impact

This is a real but moderate-priority issue, consistent with its 6.4 (Medium) CVSS and the 'this_month' decision label rather than an emergency. The CVSS vector (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N) indicates network-reachable, low-complexity exploitation requiring only low privileges and no victim interaction to inject, with a scope change (code executes in other users' browser context) and limited confidentiality/integrity impact. The notable risk amplifier is the privilege barrier being effectively lower than 'subscriber' implies: per the description, the /?wplr-sync-api endpoint authenticates solely via the wplr_auth_token usermeta with no capability check, and that token is leaked on every admin page through localized script data because a screen-condition guard was commented out - so any subscriber can reach a code path that would otherwise look higher-privilege. No EPSS score was provided in the input, and the vulnerability is not listed in CISA KEV, so there is no signal of active exploitation; exploitation status is 'no public exploit identified at time of analysis' (the supplied references are vendor threat-intel and WordPress plugin source-code links, not working exploit code). SSVC-style signals are not fully provided, but technical impact is partial and exploitation is not automatable in the mass-scan sense because an attacker needs a valid subscriber account on the target site. Overall: a legitimately exploitable stored XSS worth patching on a normal cycle, not a drop-everything emergency, and the risk rises for sites that permit open/self-registration of subscriber accounts.

Exploit ScenarioDerived

An attacker registers or obtains a subscriber-level account on a WordPress site running Photo Engine (WP/LR Sync) ≤ 6.5.7, retrieves the wplr_auth_token exposed in admin-page localized script data, and calls the /?wplr-sync-api endpoint to submit a malicious 'hierarchy[].name' value containing a web script. The script is stored without sanitization and later executes in the browser of any user - including an administrator - who views the affected page, enabling session/credential theft or actions in that user's context. No public working exploit was identified at time of analysis, though the affected source lines are publicly visible in the plugin repository.

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 – Nov 03, 2026

Stored cross-site scripting in the Photo Engine (Media Organizer & Lightroom) WordPress plugin, known in the plugin directory as wplr-sync, affects every version up to and including 6.5.7 and allows an authenticated attacker with only subscriber-level access to plant arbitrary script in the 'hierarchy[].name' field. The subscriber barrier is unusually low here because the plugin's /?wplr-sync-api endpoint authenticates solely on the wplr_auth_token usermeta with no capability check, and that token is exposed in localized script data on every admin page due to a commented-out screen-condition guard, so any registered user can reach the vulnerable write path. The injected script then executes when a victim - potentially an administrator - later views the poisoned page; the issue is rated 6.4 (Medium) on the CVSS 3.1 scale with a scope change, is tracked for remediation this month rather than as an emergency, is fixed in 6.5.8, and no public exploit code has been identified at time of analysis.

RemediationAI

Vendor-released patch: update the Photo Engine (wplr-sync) plugin to version 6.5.8 or later, which is the first tag containing the fix per the Trac changeset comparing 6.5.6 to 6.5.8, and confirm the upgrade through the plugin's Trac browser at https://plugins.trac.wordpress.org/changeset?old_path=/wplr-sync/tags/6.5.6&new_path=/wplr-sync/tags/6.5.8 alongside the Wordfence advisory. Because the exploitation prerequisite is an authenticated subscriber-level account, the most effective exposure reduction available before or alongside patching is to disable open user registration on affected WordPress sites and to remove or review existing low-privilege subscriber accounts, which substantially reduces the attack surface for this specific chain; note that this does not remove the vulnerable code path for legitimate low-privileged users who already hold accounts. No public exploit code has been identified at time of analysis, and the issue is prioritized for remediation this month rather than as an emergency, so scheduling the 6.5.8 upgrade within normal monthly patch cadence is appropriate while registration controls are applied in the interim.

Affected VersionsENISA

Photo Engine (Media Organizer & Lightroom) 0 ≤6.5.7

Affected Packages

euvd photo_engine_media_organizer_lightroom 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 root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically the stored variant: the 'hierarchy[].name' parameter is written to the database without adequate sanitization and later rendered without output escaping, so markup supplied by a low-privileged user is persisted and replayed to other users' browsers. What makes this instance more than a routine self-XSS is the authentication design of the plugin's api.php endpoint, which relies exclusively on the wplr_auth_token usermeta value and performs no capability check, combined with the presence of that same token in localized script data emitted on admin screens because a screen-condition guard in the related code path was commented out. The plugin code paths referenced in the advisory trace this chain across api.php, core.php, explorer.php and admin.php in the 6.5.6 tag. The CVSS vector AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N reflects network reachability, low privileges required, no user interaction needed to inject, and a scope change because the stored payload executes in the security context of whichever user views the injected page rather than in the injector's context; confidentiality, integrity and availability impacts are each bounded to Low.

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 6.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 6.4 MEDIUM

Network-reachable API with a weak token-based auth bypass gives low-privilege access (PR:L), no attacker-side UI needed to inject, stored script crosses into victim browser context (S:C) with partial C/I impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/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 Photo Engine (Media Organizer & Lightroom) plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'hierarchy[].name' parameter in all versions up to, and including, 6.5.7 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with subscriber-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This is exploitable by Subscribers because the /?wplr-sync-api endpoint authenticates solely via wplr_auth_token usermeta with no capability check, and the current user's token is exposed on every admin page via localized script data due to a commented-out screen-condition guard.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Medium
photography-focused WordPress plugin (WP/LR Sync), moderate but non-ubiquitous install base
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.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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

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

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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