Skip to main content

WP Photo Album Plus CVE-2026-14922

| EUVDEUVD-2026-51419 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-07-31 WPScan GHSA-xmq9-mfwm-hg4m
6.1
CVSS 3.1 · Vendor: WPScan
Share

Severity by source

Vendor (WPScan) PRIMARY
6.1 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
vuln.today AI
6.1 MEDIUM

Network-accessible stored XSS with scope change into victim browser; PR:N reflects default open-comment configuration; UI:R required as victim must load the page containing the stored payload.

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

Primary rating from Vendor (WPScan).

CVSS VectorVendor: WPScan

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

Lifecycle Timeline

5
Analysis Generated
Jul 31, 2026 - 20:28 vuln.today
CVSS changed
Jul 31, 2026 - 20:22 NVD
6.1 (MEDIUM)
Patch available
Jul 31, 2026 - 07:01 EUVD
CVE Published
Jul 31, 2026 - 06:00 cve.org
UNKNOWN (no severity yet)
CVE Published
Jul 31, 2026 - 06:00 cve.org
MEDIUM 6.1

DescriptionCVE.org

WP Photo Album Plus is vulnerable to stored Cross-Site Scripting in all versions up to, and including, 9.2.03.001 through a decode-after-sanitize (double-encoding) flaw in the photo-comment pipeline. On write, wppa_do_comment() sanitizes the comment with wppa_filter_html() (wp_kses) followed by wp_strip_all_tags() (wppa-functions.php:2623-2624). Because wp_strip_all_tags() only removes *real* tags, an attacker who submits a double HTML-entity-encoded payload (e.g. <img src=... onload=...>) passes the write filters as harmless entity text and is stored one decode-level down (<img ... onload=...>).

AnalysisAI

Stored XSS in WP Photo Album Plus (all versions up to 9.2.03.001) allows unauthenticated remote attackers to inject persistent malicious scripts into photo comments by exploiting a decode-after-sanitize flaw in the plugin's comment pipeline. The sanitization sequence in wppa-functions.php applies wp_kses then wp_strip_all_tags() on write, but neither function decodes HTML entities before inspecting markup - a double-encoded payload such as <script> passes both filters as harmless text, is stored one entity-decode level down, and renders as executable HTML when a victim's browser processes the page. A public proof-of-concept is available via WPScan; however, the vulnerability is not in CISA KEV and EPSS sits at 0.15% (5th percentile), indicating no observed mass exploitation at time of analysis.

Technical ContextAI

WP Photo Album Plus is a PHP-based WordPress plugin providing photo gallery and album management with a user-facing comment system. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically the decode-after-sanitize variant: the plugin's wppa_do_comment() function applies two sequential sanitizers at wppa-functions.php:2623-2624 - first wppa_filter_html() (a wrapper around WordPress core's wp_kses) and then wp_strip_all_tags(). Both functions operate on syntactic HTML: wp_kses allows or strips real tags by parsing angle brackets, and wp_strip_all_tags() removes only structurally complete <tag> constructs. Neither performs HTML entity decoding prior to inspection. An attacker supplying &amp;lt;img src=x onerror=...&amp;gt; presents no real angle brackets to either filter; the payload is written to storage as &lt;img src=x onerror=...&gt;. On page render, the browser performs one round of entity decoding, reconstructing a live HTML tag from the stored entity string. CPE: cpe:2.3:a:unknown:wp_photo_album_plus:*:*:*:*:*:*:*:*; affected versions confirmed below 9.2.04.003 per EUVD-2026-51419.

RemediationAI

Update WP Photo Album Plus to version 9.2.04.003 or later, the vendor-released patch that addresses the double-encoding bypass (confirmed by EUVD-2026-51419). Update via the WordPress dashboard under Plugins → Updates, or download the patched release directly from the WordPress plugin repository. If immediate patching is not feasible, disabling the photo commenting feature entirely eliminates the attack write path - this is the most effective compensating control, though it removes commenting functionality for users. A softer alternative is restricting comment submission to authenticated WordPress users (configured under Settings → Discussion → 'Comment author must have a previously approved comment' or by requiring login), which raises the prerequisite from PR:N to PR:L and reduces opportunistic risk, but does not fix the underlying sanitization flaw and may break gallery workflows for public-facing sites. The WPScan advisory at https://wpscan.com/vulnerability/ca9f99eb-221a-417e-b18f-0a8b8b513f2e/ provides additional context.

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

Share

CVE-2026-14922 vulnerability details – vuln.today

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