---
id: "CVE-2026-92895"
page: "https://infrastack.ai/live/CVE-2026-92895"
kind: "vulnerability"
aliases: ["CVE-2026-92895"]
title: "WordPress Live2DWebCanvas plugin: unauthenticated file upload leads to code execution"
severity: "high"
cvss: 8.1
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["package", "self-hosted", "wordpress", "wordpress-plugin"]
not_affected_if: ["apitype-not-custom-local", "plugin-above-2.2.1", "plugin-not-installed"]
published_at: "2026-11-06T12:17:24+00:00"
first_seen_at: "2026-11-06T12:41:49+00:00"
updated_at: "2026-11-06T12:42:43+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-92895", "first_seen_at": "2026-11-06T12:41:49+00:00"}]
exploit_sources: []
---

# WordPress Live2DWebCanvas plugin: unauthenticated file upload leads to code execution

Link for people: https://infrastack.ai/live/CVE-2026-92895 (this .md is for agents)

The Live2DWebCanvas WordPress plugin up to and including 2.2.1 writes files from attacker-controlled manifest entries into its web-served directory without extension or MIME checks. An unauthenticated attacker can upload executable files, which may allow remote code execution when the non-default custom-local apiType mode is enabled.

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

## How to check

- Check the installed Live2DWebCanvas plugin version in the WordPress admin plugin list or the plugin's main file header; `2.2.1` or earlier is affected.
- Look at the plugin's apiType setting; the custom-local value is required for the code-execution path.
- Look for unexpected executable files in the plugin directory under wp-content/plugins.

## Fix

- Live2DWebCanvas plugin: move to a version later than `2.2.1`; the fixed version is not named in the sources.

## Timeline

- 2026-11-06T12:41:49+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-92895

## From the sources

The Live2DWebCanvas plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 2.2.1 via the download_one_file function. This is due to missing file extension whitelist and MIME type validation in download_one_file() when writing files derived from attacker-controlled manifest entries to the web-served plugin directory. This makes it possible for unauthenticated attackers to upload files that may be executable, which makes remote code execution possible when the plugin's apiType setting is configured as custom-local (self-hosted model mode), a non-default option that requires a paid license and prints the REST nonce and one-time session tokens into every front-end page.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
