CVE-2025-30603

7.1 HIGH

📋 TL;DR

A Cross-Site Request Forgery (CSRF) vulnerability in the DEJAN CopyLink WordPress plugin allows attackers to perform stored cross-site scripting (XSS) attacks. This affects WordPress sites using CopyLink plugin versions up to 1.1. Attackers can trick authenticated administrators into executing malicious actions that inject persistent scripts.

💻 Affected Systems

Products:
  • DEJAN CopyLink WordPress Plugin
Versions: n/a through 1.1
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with CopyLink plugin enabled. Attack requires administrator or editor-level user to be tricked into visiting malicious page while authenticated.

⚠️ 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 malicious JavaScript that steals administrator credentials, redirects users to malicious sites, or takes full control of the WordPress site when administrators view affected pages.

🟠

Likely Case

Attackers create fake requests that trick logged-in administrators into unknowingly injecting malicious scripts into website content, potentially compromising visitor sessions or defacing the site.

🟢

If Mitigated

With proper CSRF protections and content sanitization, the attack would fail to execute or the malicious payload would be neutralized before storage.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires social engineering to trick authenticated users. The CSRF leads to stored XSS, making it more dangerous than typical CSRF.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version after 1.1

Vendor Advisory: https://patchstack.com/database/wordpress/plugin/copy-link/vulnerability/wordpress-copylink-plugin-1-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 'CopyLink' plugin. 4. Click 'Update Now' if update available. 5. If no update, deactivate and delete plugin, then find updated version in WordPress repository.

🔧 Temporary Workarounds

Disable CopyLink Plugin

WordPress

Temporarily disable the vulnerable plugin until patched version is available

wp plugin deactivate copy-link

Implement CSRF Tokens

WordPress

Add CSRF protection to WordPress forms if custom implementation exists

🧯 If You Can't Patch

  • Remove CopyLink plugin entirely and use alternative link-copying solutions
  • Implement web application firewall (WAF) rules to block CSRF attempts and XSS payloads

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins for CopyLink version 1.1 or earlier

Check Version:

wp plugin get copy-link --field=version

Verify Fix Applied:

Verify CopyLink plugin version is greater than 1.1 in WordPress plugins list

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to WordPress admin-ajax.php or admin-post.php involving copy-link endpoints
  • Multiple failed CSRF token validations in WordPress debug logs

Network Indicators:

  • Unexpected JavaScript injection in page responses containing copy-link related content
  • Cross-origin requests to WordPress admin endpoints without proper referrer headers

SIEM Query:

source="wordpress.log" AND ("copy-link" OR "copylink") AND ("admin-ajax" OR "admin-post") AND status=200

🔗 References

📤 Share & Export