CVE-2025-24636

7.1 HIGH

📋 TL;DR

This CSRF vulnerability in MachForm Shortcode 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 viewing compromised pages. WordPress sites using MachForm Shortcode versions up to 1.4.1 are affected.

💻 Affected Systems

Products:
  • MachForm Shortcode WordPress Plugin
Versions: n/a through 1.4.1
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with MachForm Shortcode plugin enabled. Attack requires tricking authenticated administrator into clicking malicious link.

⚠️ 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 users to malicious sites whenever vulnerable pages are viewed.

🟠

Likely Case

Attackers create fake forms or modify legitimate forms to capture sensitive user data, inject ads, or redirect users to phishing pages.

🟢

If Mitigated

With proper CSRF tokens and input validation, the attack vector is blocked, preventing unauthorized form submissions and script injection.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

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

Exploitation requires social engineering to trick authenticated users. No public exploit code available at time of analysis.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version after 1.4.1

Vendor Advisory: https://patchstack.com/database/wordpress/plugin/machform-shortcode/vulnerability/wordpress-machform-shortcode-plugin-1-4-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 MachForm Shortcode plugin. 4. Click 'Update Now' if update available. 5. If no update available, deactivate and remove plugin until patch is released.

🔧 Temporary Workarounds

Implement CSRF Protection

all

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

Input Validation and Sanitization

all

Implement strict input validation and output encoding for all user-controllable data

🧯 If You Can't Patch

  • Disable or remove MachForm Shortcode plugin immediately
  • Implement web application firewall (WAF) rules to block suspicious form submissions and XSS payloads

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel > Plugins > Installed Plugins for MachForm Shortcode version. If version is 1.4.1 or earlier, you are vulnerable.

Check Version:

wp plugin list --name=machform-shortcode --field=version

Verify Fix Applied:

After updating, verify plugin version is higher than 1.4.1. Test form submissions with CSRF tokens present.

📡 Detection & Monitoring

Log Indicators:

  • Unusual form submissions from unexpected referrers
  • Multiple failed form submissions with suspicious payloads
  • Administrator accounts performing unexpected plugin modifications

Network Indicators:

  • HTTP requests with suspicious parameters containing script tags or JavaScript code
  • Form submissions without proper referrer headers or CSRF tokens

SIEM Query:

source="wordpress.log" AND ("machform" OR "shortcode") AND ("script" OR "javascript" OR "onload" OR "onerror")

🔗 References

📤 Share & Export