Dans un billet technique publié le 23 décembre 2025, l’auteur explore l’abus de l’en-tête SMTP List‑Unsubscribe (RFC 2369) et montre comment son implémentation dans des webmails peut mener à des XSS et SSRF.
L’article rappelle que de nombreux clients rendent un bouton « se désabonner » à partir de List‑Unsubscribe, parfois sous forme de lien client (URI) ou via une requête serveur. Des URI non filtrées (ex. schéma javascript:) peuvent déclencher des exécutions de script côté client, tandis que des requêtes côté serveur non restreintes peuvent mener à des SSRF.
Cas 1 — Horde Webmail (CVE-2025-68673) : Dans Horde Imp H5 v6.2.27 (avec Horde Framework jusqu’à 5.2.23), l’inclusion d’un URI javascript: dans List‑Unsubscribe est affichée en lien et cliquable, provoquant une XSS stockée dans l’origine de l’instance Horde. L’attaque se manifeste lorsque l’utilisateur clique l’option de désabonnement (target="_blank"), entraînant l’évaluation du JavaScript. Le problème a été signalé à security@horde.org le 18/12/2024, sans accusé de réception au 18/12/2025.
Cas 2 — Nextcloud Mail (SSRF à l’unsubscribe) : L’app Mail de Nextcloud déclenche une requête côté serveur lors du clic sur se désabonner. Selon l’évaluation Nextcloud (rapport HackerOne 2902856), une SSRF vers des destinations internes serait possible dans certaines conditions, notamment si la configuration de développement 'allow_local_remote_servers' => true est activée ou si d’autres facteurs le permettent. Pour l’unsubscribe via HTTPS, une signature DKIM valide est requise.
Recommandations résumées par l’auteur :
- Valider/sanitiser strictement les URI (interdire le schéma
javascript:) pour prévenir la XSS. - Mettre en place des contrôles SSRF (restrictions de domaines/IP, validation côté serveur).
- Journaliser les requêtes d’unsubscribe.
IOCs et TTPs:
- IOCs: domaines de démonstration utilisés dans les PoC (lhq.at, abcdef.oastify.com), identifiant CVE: CVE-2025-68673, en-têtes:
List-Unsubscribe,List-Unsubscribe-Post. - TTPs: abus de l’en-tête List‑Unsubscribe (RFC 2369), injection d’URI
javascript:pour XSS stockée, déclenchement d’unsubscribe côté serveur pour SSRF, exigence DKIM pour HTTPS, dépendance à la configuration'allow_local_remote_servers'dans Nextcloud.
Conclusion: Il s’agit d’une publication de recherche mettant en lumière des risques issus d’implémentations modernes d’un standard ancien, avec exemples concrets (Horde, Nextcloud) et recommandations de mitigation.
🧠 TTPs et IOCs détectés
TTP
Abus de l’en-tête List-Unsubscribe (RFC 2369), injection d’URI javascript: pour XSS stockée, déclenchement d’unsubscribe côté serveur pour SSRF, exigence DKIM pour HTTPS, dépendance à la configuration ‘allow_local_remote_servers’ dans Nextcloud
IOC
Domaines de démonstration utilisés dans les PoC (lhq.at, abcdef.oastify.com), identifiant CVE: CVE-2025-68673, en-têtes: List-Unsubscribe, List-Unsubscribe-Post
🔗 Source originale : https://security.lauritz-holtmann.de/post/xss-ssrf-list-unsubscribe/