---
id: "CVE-2026-92115"
kind: "vulnerability"
aliases: ["CVE-2026-92115"]
title: "WP Photo Album Plus: authenticated command injection gives server code execution"
severity: "high"
cvss: 8.8
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["imagemagick", "package", "self-hosted", "wordpress", "wp-photo-album-plus"]
not_affected_if: ["imagemagick-disabled", "no-wppa-upload-grants", "plugin-not-installed"]
published_at: "2026-10-16T07:17:13+00:00"
first_seen_at: "2026-10-23T21:57:12+00:00"
updated_at: "2026-10-23T22:34:55+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-92115", "first_seen_at": "2026-10-23T21:57:12+00:00"}]
---

# WP Photo Album Plus: authenticated command injection gives server code execution

The WP Photo Album Plus WordPress plugin passes a user-supplied value into an ImageMagick shell command without escaping it, and it decodes percent-encoded shell characters. A logged-in user holding the plugin's wppa_upload capability can run operating-system commands as the web-server user.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

Check the installed WP Photo Album Plus version in the WordPress Plugins screen; versions up to and including 9.3.02.002 are affected. Confirm whether ImageMagick is enabled in the plugin's settings or the server PHP configuration.

## Fix

Update to a release newer than 9.3.02.002; the sources do not name the patched version. Until then, review which roles hold wppa_upload in the plugin's Users settings and remove grants you do not need.

## Timeline

- 2026-10-23T21:57:12+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-92115

## From the sources

The WP Photo Album Plus plugin for WordPress is vulnerable to authenticated Command Injection in all versions up to, and including, 9.3.02.002 via the `value` parameter of the `update-photo` AJAX action. This is due to insufficient shell escaping within the `wppa_image_magick_a()` function, where the attacker-controlled `value` parameter is concatenated raw — without `escapeshellarg()` — into an ImageMagick command string before being passed to `exec()`; further, `wppa_decode()` actively restores percent-encoded shell metacharacters (e.g., `%26`→`&`, `%23`→`#`) rather than stripping them, allowing crafted payloads to survive sanitization and break out of the ImageMagick argument context. This makes it possible for authenticated attackers holding the plugin-defined `wppa_upload` capability to execute arbitrary operating-system commands as the web-server user, achieving full remote code execution on the underlying server. Exploitation requires ImageMagick to be enabled on the server; the `wppa_upload` capability is a plugin-level privilege that site administrators may grant to lower-privileged WordPress roles via the plugin's Users settings, broadening the pool of potential attackers beyond administrators.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
