WordPress security changelog
MEDIUM CVE-2026-16090 Received

GamiPress achievement heading sizes let Contributors store JavaScript

GamiPress through 7.9.9.1 emits the heading_size attribute of gamipress_achievement without adequate escaping. A Contributor can store a payload inside the shortcode attribute, bypass save-time wp_kses_post(), and execute JavaScript when a visitor or Administrator views the rendered achievement.

CVE / CNA score 6.4 CVSS 3.1 · security@wordfence.com
NVD score Pending NVD has not published its own CVSS assessment.
Component
GamiPress – Gamification plugin to reward points, achievements, badges & ranks in WordPress
Plugin slug
gamipress
Affected
<= 7.9.9.1
Safe version
> 7.9.9.1
Published
Aug 01, 2026
Weakness
CWE-79 — Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

This CVE was published Aug 01, 2026 and is one of 23 known issues for this plugin.

Update, patch or deactivate.

Update to a corrected release after 7.9.9.1. Review gamipress_achievement heading_size attributes, remove payloads, and invalidate privileged sessions where warranted.

A safe version is available, so updating to that version or later is the preferred remediation. If an immediate update is not practical, consider a targeted application patch or temporarily restricting the affected functionality.

Deactivate only when warranted by your risk profile, or when advised by your hosting provider in the limited circumstances where the vulnerability cannot otherwise be mitigated. If you’re unsure which action is appropriate, contact Fused or your hosting provider for guidance.

Technical description

The GamiPress – Gamification plugin to reward points, achievements, badges & ranks in WordPress plugin for WordPress is vulnerable to Stored Cross-Site Scripting via 'heading_size' Shortcode Attribute in 'gamipress_achievement' in all versions up to, and including, 7.9.9.1 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. WordPress save-time wp_kses_post does not neutralize this payload because the injected value is stored inside a shortcode attribute rather than as a raw HTML tag, and is only emitted into HTML at render time without escaping.

CVE / CNA vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N

Primary and upstream sources