---
id: "CVE-2026-103917"
page: "https://infrastack.ai/live/CVE-2026-103917"
kind: "vulnerability"
aliases: ["CVE-2026-103917"]
title: "WordPress QSM quiz plugin: unauthenticated attackers can run arbitrary shortcodes"
severity: "medium"
cvss: 6.5
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["package", "qsm", "quiz-maker", "self-hosted", "wordpress"]
not_affected_if: ["plugin-not-installed"]
published_at: "2026-11-07T07:17:01+00:00"
first_seen_at: "2026-11-07T07:46:06+00:00"
updated_at: "2026-11-07T07:47:04+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-103917", "first_seen_at": "2026-11-07T07:46:06+00:00"}]
exploit_sources: []
---

# WordPress QSM quiz plugin: unauthenticated attackers can run arbitrary shortcodes

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

The Quiz and Survey Master (QSM) WordPress plugin up to and including 11.2.7 passes an unvalidated value to do_shortcode, so anyone can trigger shortcode execution. An unauthenticated attacker can get past the nonce check because the public endpoint wp_ajax_nopriv_qsm_create_quiz_nonce hands the nonce to any caller.

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

## How to check

- Check the installed QSM plugin version in the WordPress admin under Plugins; affected if it is `11.2.7` or earlier.
- Check whether the public endpoint `wp_ajax_nopriv_qsm_create_quiz_nonce` is reachable through `admin-ajax.php` on the site.

## Timeline

- 2026-11-07T07:46:06+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-103917

## From the sources

The The Quiz and Survey Master (QSM) – Quiz Maker & Survey Maker plugin for WordPress is vulnerable to arbitrary shortcode execution in all versions up to, and including, 11.2.7. 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 unauthenticated attackers to execute arbitrary shortcodes. The submission nonce is dispensed to any unauthenticated caller by the public wp_ajax_nopriv_qsm_create_quiz_nonce endpoint, meaning it functions as a CSRF token rather than an authorization barrier and imposes no meaningful obstacle to exploitation.

---

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