---
id: "CVE-2026-101326"
kind: "vulnerability"
aliases: ["CVE-2026-101326"]
title: "WordPress Ninja Forms: subscribers can run arbitrary shortcodes on pages"
severity: "medium"
cvss: 5.4
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["ninja-forms", "package", "wordpress"]
not_affected_if: ["managed-hosting", "no-subscriber-accounts", "no-user-display-name-default"]
published_at: "2026-10-31T06:16:31+00:00"
first_seen_at: "2026-10-31T06:33:49+00:00"
updated_at: "2026-10-31T06:34:19+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-101326", "first_seen_at": "2026-10-31T06:33:49+00:00"}]
---

# WordPress Ninja Forms: subscribers can run arbitrary shortcodes on pages

The Ninja Forms WordPress plugin passes a user-controlled value to do_shortcode without validation in versions up to and including 3.15.5. An authenticated subscriber can set their display name to a shortcode string and have it executed when a page with a vulnerable form field is visited.

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

## How to check

- Check the installed Ninja Forms plugin version in the WordPress admin under Plugins; compare against `3.15.5`.
- Look for forms with a field whose Default Value is `{wp:user_display_name}` on public pages.

## Timeline

- 2026-10-31T06:33:49+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-101326

## From the sources

The The Ninja Forms – Contact Form Builder with Calculators, Quizzes, Signatures & AI Form Builder plugin for WordPress is vulnerable to arbitrary shortcode execution in all versions up to, and including, 3.15.5 This is due to the software allowing users to execute an action that does not properly validate a value before running do_shortcode. This makes it possible for authenticated attackers, with subscriber-level access and above, to execute arbitrary shortcodes. Exploitation requires that an administrator has configured at least one Ninja Forms field with its Default Value set to the {wp:user_display_name} merge tag on a publicly accessible page; a Subscriber need only set their display_name to a shortcode string via their profile and then visit that page.

---

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