CVE-2025-26931

7.1 HIGH

📋 TL;DR

This CSRF vulnerability in Tribulant Gallery Voting WordPress plugin allows attackers to trick authenticated administrators into executing malicious actions, leading to stored cross-site scripting (XSS). Attackers can inject malicious scripts that execute in victims' browsers when they visit compromised pages. All WordPress sites using affected versions of this plugin are vulnerable.

💻 Affected Systems

Products:
  • Tribulant Gallery Voting WordPress Plugin
Versions: n/a through 1.2.1
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with the vulnerable plugin enabled. The vulnerability requires an authenticated administrator to be tricked into visiting a malicious page.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could inject persistent malicious scripts that steal administrator credentials, hijack sessions, deface websites, or redirect visitors to malicious sites, potentially compromising the entire WordPress installation.

🟠

Likely Case

Attackers would typically inject scripts to steal session cookies or administrator credentials, gaining unauthorized access to the WordPress admin panel to install backdoors or malware.

🟢

If Mitigated

With proper CSRF tokens and input validation, the vulnerability would be prevented, limiting attackers to only exploiting other unrelated vulnerabilities.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires social engineering to trick an authenticated administrator into clicking a malicious link. The CSRF leads to stored XSS, making the attack persistent.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.2.2 or later

Vendor Advisory: https://patchstack.com/database/wordpress/plugin/gallery-voting/vulnerability/wordpress-tribulant-gallery-voting-plugin-1-2-1-csrf-to-stored-xss-vulnerability?_s_id=cve

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find 'Tribulant Gallery Voting' and click 'Update Now'. 4. Alternatively, download the latest version from WordPress.org and manually replace the plugin files.

🔧 Temporary Workarounds

Disable Plugin

WordPress

Temporarily disable the vulnerable plugin until patched

wp plugin deactivate gallery-voting

Implement CSRF Protection

WordPress

Add CSRF tokens to all form submissions and AJAX requests in the plugin

🧯 If You Can't Patch

  • Disable the Tribulant Gallery Voting plugin completely
  • Implement a web application firewall (WAF) with CSRF protection rules

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel > Plugins > Installed Plugins for 'Tribulant Gallery Voting' version 1.2.1 or earlier

Check Version:

wp plugin get gallery-voting --field=version

Verify Fix Applied:

Verify plugin version is 1.2.2 or later in WordPress admin panel

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to gallery-voting admin endpoints without referrer headers
  • Multiple failed CSRF token validations in WordPress debug logs

Network Indicators:

  • Suspicious cross-origin requests to gallery-voting endpoints
  • Unexpected JavaScript injection in gallery voting responses

SIEM Query:

source="wordpress" AND (plugin="gallery-voting" AND version<="1.2.1") OR (uri="/wp-admin/admin-ajax.php" AND parameters CONTAINS "gallery_voting")

🔗 References

📤 Share & Export