---
id: "CVE-2026-107447"
kind: "vulnerability"
aliases: ["CVE-2026-107447"]
title: "Contest Gallery WordPress plugin: vote limit bypassed by spoofed visitor identity"
severity: "medium"
cvss: 5.3
epss: 0.00203
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["contest-gallery", "package", "self-hosted", "wordpress"]
not_affected_if: ["no-public-voting", "plugin-not-installed"]
published_at: "2026-10-21T09:17:06+00:00"
first_seen_at: "2026-10-23T21:57:28+00:00"
updated_at: "2026-10-25T04:21:01+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-107447", "first_seen_at": "2026-10-23T21:57:28+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-107447", "first_seen_at": "2026-10-24T13:15:54+00:00"}]
---

# Contest Gallery WordPress plugin: vote limit bypassed by spoofed visitor identity

The Contest Gallery WordPress plugin trusts a client-supplied request header and an unbound client-generated token to enforce its one-vote-per-entry rule. An unauthenticated visitor can send crafted requests to cast repeated votes for the same entry and inflate its total.

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

## How to check

- Look for the Contest Gallery plugin in the WordPress admin plugin list and read its installed version.
- Check whether any contest on the site uses public voting, since the bypass only affects vote counts.
- `wp plugin get contest-gallery --field=version` if WP-CLI is available.

## Fix

- Update the Contest Gallery plugin to `34.0.1` or later.
- Review vote totals on active contests for implausible spikes from a single source and reset them if needed.

## Timeline

- 2026-10-23T21:57:28+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-107447
- 2026-10-24T13:15:54+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-107447

## From the sources

The Contest Gallery WordPress plugin before 34.0.1 does not reliably validate the visitor identity used to enforce its one-vote-per-entry restriction, trusting a client-supplied request header and an unbound client-generated token, which allows unauthenticated users to bypass the restriction and cast multiple votes for the same contest entry, inflating its vote total.

---

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