Skip to main content

Photo Engine CVE-2026-107770

| EUVDEUVD-2026-102787 MEDIUM
Missing Authorization (CWE-862)
2026-10-16 Wordfence GHSA-567q-wwf7-9p59
6.8
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Register low-privilege Subscriber account
  2. Exploit
    Read leaked wplr_auth_token from profile.php source
  3. Execution
    Send cookie-less request to /?wplr-sync-api
  4. Impact
    Delete or upload arbitrary media attachments

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

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

Exploitation Conditions

Requires an attacker to obtain a valid wplr_auth_token. The documented path requires a Subscriber-level account (practical only where open user registration is enabled), who reads the token directly from the profile.php page source; the token leaks because the admin-screen guard in Meow_WPLR_Sync_Admin::__construct() is commented out, causing wp_localize_script to emit it on every admin page view. The token is then replayed in a cookie-less HTTP session against the /?wplr-sync-api endpoint to invoke wp_delete_attachment and upload actions. Limiting factors: all versions up to and including 6.5.6 are affected; impact is scoped to media attachments (destruction and unauthorized upload) rather than full site takeover; exploitation realistically depends on either self-registration being open or an existing low-trust account, which constrains fully anonymous exploitation despite the PR:N label.

Impact

Signals are mixed and point to a moderate, situational risk rather than a top-tier emergency. The vendor (Wordfence) CVSS 3.1 base score is 6.8 (Medium) with vector AV:N/AC:H/PR:N/UI:R, i.e. network-reachable, no privileges, but high attack complexity and required user interaction. No EPSS score, no CISA KEV listing, and no public POC were provided, so by the precision rules this is 'no public exploit identified at time of analysis' - there is no evidence of active or widespread exploitation. SSVC inputs (exploitation status, automatable, technical impact) were not supplied and cannot be asserted. A key internal conflict must be flagged: the vendor marks this PR:N/UI:R/AC:H, yet the only concrete exploitation path in the description is a Subscriber-level (authenticated, low-privilege) user reading their own wplr_auth_token from profile.php and then invoking destructive actions from a cookie-less session with no user interaction - that path reads more like PR:L/UI:N/AC:L. In other words, the headline 'unauthenticated attackers' claim is accurate for the final API call (the token works without a session cookie), but acquiring the token as documented requires at least a Subscriber account on a site with open registration. Technical impact is genuinely high for integrity and availability (permanent deletion of arbitrary media attachments and unauthorized uploads, I:H/A:H) with no confidentiality impact. Net: a real but not critical priority - prioritize on WordPress sites that allow self-registration or host low-trust users; deprioritize on locked-down single-admin installs.

Exploit ScenarioDerived

On a WordPress site running Photo Engine (WP/LR Sync) <= 6.5.6 that permits self-registration, an attacker creates a Subscriber account, opens profile.php, and copies the wplr_auth_token leaked into the page source by wp_localize_script (because the admin-screen guard in Meow_WPLR_Sync_Admin::__construct() is commented out). Using that token in a cookie-less HTTP request to /?wplr-sync-api, the attacker calls wp_delete_attachment to permanently destroy arbitrary media or uploads new files - actions that should require upload_files/edit_others_posts. No public exploit code was identified at the time of analysis, and the high attack complexity reflects the token-acquisition step rather than the trivial API call itself.

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

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

Alert me

AnalysisAIv1 – Oct 16, 2026

An authorization bypass in the Photo Engine (Media Organizer & Lightroom) plugin for WordPress, affecting all versions up to and including 6.5.6, allows a lower-privileged account to permanently delete arbitrary media attachments and upload new ones without holding the required upload_files or edit_others_posts capabilities. The root problem is that the admin-screen guard in Meow_WPLR_Sync_Admin::__construct() is commented out, so wp_localize_script leaks the wplr_auth_token into every admin page view; a Subscriber can read their own token straight from the profile.php page source and replay it in a cookie-less HTTP session against the /?wplr-sync-api endpoint. No public exploit code has been identified at time of analysis, and although the published vector is PR:N, exploitation realistically depends on either open self-registration or an existing low-trust account, which constrains fully anonymous abuse; EPSS and KEV signals are absent, so this is a moderate, situational risk rather than an emergency.

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed. The vendor changeset at https://plugins.trac.wordpress.org/changeset/3737477/wplr-sync (with the API change at https://plugins.trac.wordpress.org/changeset/3737477/wplr-sync/trunk/classes/api.php) restores the missing authorization logic, so site owners should upgrade the wplr-sync plugin past 6.5.6 as soon as a tagged release containing that changeset is published, and validate the installed version rather than assuming. If upgrading is not immediately possible, the highest-value compensating control is to close the account path the attack depends on: disable WordPress self-registration (Settings > General > Membership) and audit existing Subscriber accounts, since exploitation realistically requires a low-trust authenticated user able to load an admin page. Additionally restrict or block access to the /?wplr-sync-api endpoint at the web server or WAF (deny requests carrying the wplr-sync-api query parameter from untrusted sources), accepting that this may break legitimate Lightroom synchronization until the patch is applied; the trade-off is reduced functionality for Media Organizer/Lightroom clients. Deactivating the plugin entirely removes the exposure at the cost of losing media organization features, and enabling 2FA or restricting wp-admin/profile.php access does not fully mitigate the token leak because the token is also emitted on other admin screens. Rollback and off-site backups of the media library remain important because the flaw permits permanent deletion of attachments.

Affected VersionsENISA

Photo Engine (Media Organizer & Lightroom) 0 ≤6.5.6

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

CWE-862 (Missing Authorization) in the WordPress plugin wplr-sync, distributed by vendor Tigroumeow as Photo Engine (Media Organizer & Lightroom), CPE cpe:2.3:a:tigroumeow:photo_engine_(media_organizer_&_lightroom):*:*:*:*:*:*:*. The plugin exposes an AJAX-style endpoint accessed as /?wplr-sync-api, implemented in classes/api.php (referenced lines 32, 116, 201 and 309), which performs privileged media operations including wp_delete_attachment and attachment uploads. These operations are core WordPress functions normally gated by the upload_files and edit_others_posts capabilities, but the plugin's own authorization check is missing or ineffective, so possession of a valid wplr_auth_token alone is sufficient. The token is minted and localized to the browser by classes/core.php (line 923) and classes/admin.php (lines 56 and 155); because the admin screen guard in Meow_WPLR_Sync_Admin::__construct() is commented out, wp_localize_script emits the token on every admin page render, including profile.php, which any logged-in Subscriber can view. The design intent was evidently capability-based access control, but the guard removal turns a per-page token into a broadly readable secret, enabling token replay from a session with no cookies - meaning no nonce or session binding protects the endpoint. The EPSS score is not elevated and there is no CISA KEV entry, so the practical exposure depends on attacker access to an account capable of loading an admin page.

Know when PHP 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.8 MEDIUM
AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H
vuln.today AI 8.1 HIGH

The only documented token-acquisition path needs a Subscriber account (PR:L) but reading the leaked token and calling the API is trivial and attacker-driven (AC:L, UI:N); high integrity/availability impact from media deletion and upload, no confidentiality impact.

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

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

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

DescriptionCVE.org

The Photo Engine (Media Organizer & Lightroom) plugin for WordPress is vulnerable to authorization bypass in all versions up to, and including, 6.5.6 This is due to the plugin not properly verifying that a user is authorized to perform an action. This makes it possible for unauthenticated attackers to permanently delete arbitrary media attachments via wp_delete_attachment and upload new attachments to the site, actions that require the upload_files or edit_others_posts capabilities. A Subscriber-level user can obtain their own wplr_auth_token directly from the profile.php page source, because the admin screen guard in Meow_WPLR_Sync_Admin::__construct() is commented out, causing wp_localize_script to leak the token into every admin page view; this token can then be used from a cookie-less HTTP session to invoke destructive actions on the /?wplr-sync-api endpoint.

Threat Intelligence Overview

EPSS Score
0.5%
Top 62% exploitable
Prevalence
Low
specialized WordPress Lightroom/media-sync plugin for photography sites
Data Quality
5 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.5%
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

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

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

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

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