CVE-2023-6987

6.1 MEDIUM

📋 TL;DR

This vulnerability allows unauthenticated attackers to perform reflected cross-site scripting (XSS) attacks via the 'sql-column' parameter in the String Locator WordPress plugin. Attackers can inject malicious scripts that execute when victims click specially crafted links, potentially stealing session cookies or performing actions as the user. Only WordPress sites with WP_DEBUG enabled and using vulnerable plugin versions are affected.

💻 Affected Systems

Products:
  • WordPress String Locator Plugin
Versions: All versions up to and including 2.6.5
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ✅ No
Notes: Requires WP_DEBUG to be enabled for exploitation. WP_DEBUG is typically disabled in production environments by default.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers steal administrator session cookies, gain administrative access to WordPress, install backdoors, deface websites, or exfiltrate sensitive data.

🟠

Likely Case

Attackers steal user session cookies to hijack accounts, perform phishing attacks, or redirect users to malicious sites.

🟢

If Mitigated

With WP_DEBUG disabled (default), the vulnerability cannot be exploited, resulting in no impact.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires tricking users into clicking malicious links. The vulnerability details and proof-of-concept are publicly available in the patch commit.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.6.6

Vendor Advisory: https://plugins.trac.wordpress.org/changeset/3139143/string-locator/tags/2.6.6/includes/Extension/SQL/views/editor/sql.php

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'String Locator' and click 'Update Now' if available. 4. Alternatively, download version 2.6.6 from WordPress.org and manually replace the plugin files.

🔧 Temporary Workarounds

Disable WP_DEBUG

all

Prevents exploitation by disabling the debug mode requirement.

Edit wp-config.php and set: define('WP_DEBUG', false);

Disable String Locator Plugin

linux

Temporarily disable the vulnerable plugin until patched.

wp plugin deactivate string-locator

🧯 If You Can't Patch

  • Disable WP_DEBUG in production environments immediately.
  • Implement web application firewall (WAF) rules to block XSS payloads targeting the sql-column parameter.

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → String Locator version. If version is 2.6.5 or lower, the site is vulnerable if WP_DEBUG is enabled.

Check Version:

wp plugin get string-locator --field=version

Verify Fix Applied:

Verify String Locator plugin is updated to version 2.6.6 or higher in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • HTTP requests containing 'sql-column' parameter with script tags or JavaScript payloads in WordPress access logs.
  • Unusual GET requests to String Locator plugin endpoints with encoded payloads.

Network Indicators:

  • Incoming requests with XSS payloads in query parameters targeting the vulnerable endpoint.

SIEM Query:

source="wordpress_access.log" AND "sql-column" AND ("<script" OR "javascript:" OR "onerror=" OR "onload=")

🔗 References

📤 Share & Export