CVE-2025-14147

6.4 MEDIUM

📋 TL;DR

This vulnerability allows authenticated WordPress users with Contributor-level access or higher to inject malicious JavaScript into website pages using the Easy GitHub Gist Shortcodes plugin. The stored XSS executes whenever visitors view compromised pages, potentially stealing session cookies or redirecting users. All WordPress sites using this plugin up to version 1.0 are affected.

💻 Affected Systems

Products:
  • Easy GitHub Gist Shortcodes WordPress Plugin
Versions: All versions up to and including 1.0
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with the vulnerable plugin enabled. Contributor-level access or higher needed for exploitation.

⚠️ 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 steal administrator session cookies, take over the WordPress site, install backdoors, deface the website, or redirect visitors to malicious sites.

🟠

Likely Case

Attackers inject malicious scripts to steal user session cookies, perform actions on behalf of users, or redirect to phishing pages.

🟢

If Mitigated

With proper user access controls and content security policies, impact is limited to potential defacement of specific pages.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated access but is straightforward once attacker has Contributor privileges.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not available

Vendor Advisory: https://plugins.trac.wordpress.org/browser/easy-github-gist-shortcodes

Restart Required: No

Instructions:

1. Remove the Easy GitHub Gist Shortcodes plugin completely from WordPress. 2. Delete the plugin files from /wp-content/plugins/easy-github-gist-shortcodes/. 3. Review and clean any posts/pages containing gist shortcodes.

🔧 Temporary Workarounds

Restrict User Roles

all

Limit Contributor and Author role creation to trusted users only

Implement Content Security Policy

linux

Add CSP headers to restrict script execution

Add to .htaccess: Header set Content-Security-Policy "script-src 'self' https://gist.github.com"

🧯 If You Can't Patch

  • Disable the plugin immediately and remove all gist shortcodes from content
  • Implement strict user access controls and monitor for suspicious Contributor activity

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel > Plugins > Easy GitHub Gist Shortcodes. If version is 1.0 or earlier, you are vulnerable.

Check Version:

wp plugin list --name=easy-github-gist-shortcodes --field=version

Verify Fix Applied:

Verify the plugin is completely removed from /wp-content/plugins/ directory and no longer appears in WordPress admin.

📡 Detection & Monitoring

Log Indicators:

  • Unusual Contributor-level user activity
  • Multiple gist shortcode modifications in short timeframe
  • POST requests to update posts with gist parameters

Network Indicators:

  • External script loads from unexpected domains in page responses
  • Suspicious JavaScript in gist shortcode parameters

SIEM Query:

source="wordpress.log" AND ("gist" AND "id=") AND user_role="contributor"

🔗 References

📤 Share & Export