(Medium) Blind SSRF in SPIP 4.4.8 Syndication Feature and stored XSS
CVE-2026-27472 (CVSS-B 5.3 MEDIUM)
J'ai découvert une vulnérabilité de type SSRF en aveugle (Blind SSRF) dans SPIP (un CMS français très connu) qui peut être déclenchée par un administrateur authentifié via le champ url_syndic dans le back-office. Elle permet à un attaquant de cartographier le réseau interne en aveugle.
Lien MITRE ici.
Article de blog de SPIP ici.
Détails
Lors du référencement d'un site, il existe un champ Syndication que l'application ne valide absolument pas. Il accepte le wrapper tcp:// et ne filtre pas les adresses IP privées.

Code vulnérable (plugins-dist/sites/syndic/atomrss.php) :
function syndic_atomrss_dist($url_syndic) {
// Aller chercher les donnees du RSS et les analyser
include_spip('inc/distant');
$res = recuperer_url($url_syndic, ['transcoder' => true]);
if (
!$res
or !$res['page']
or intval($res['status'] / 100) != 2
) {
$items = _T('sites:avis_echec_syndication_02');
} else {
$items = analyser_backend($res['page'], $url_syndic);
}
return $items;
}
Comme vous pouvez le voir, il n'y a aucun filtre sur le champ url_syndic, qui est contrôlé par l'utilisateur et transmis à recuperer_url(). La fonction recuperer_url effectue simplement une requête sur l'URL fournie et ne vérifie pas s'il s'agit d'un protocole ou d'une adresse IP spécifique.
PoC (Preuve de concept)
-
Connectez-vous en tant qu'administrateur.
-
Assurez-vous que dans la configuration
Contenu du site, l'optionRéférencement et syndication de sitesest définie surGérer un annuaire de sites web. -
Naviguez vers une rubrique et cliquez sur
Référencer un site. -
Dans le champ
Syndication, cochezSyndicationet entrez une IP cible ainsi qu'un port :tcp://127.0.0.1:22. -
Enregistrez.
-
Comparez le temps de réponse avec celui d'un port ouvert (
tcp://127.0.0.1:80). Vous pouvez également cliquer surMettre à jour maintenantsur la page du site syndiqué pour déclencher la SSRF.
Note
Sur le même champ, vous pouvez également déclencher une XSS stockée en insérant javascript:alert(1) à la place. Ensuite, en cliquant sur l'icône RSS sur la page du site syndiqué (?exec=site&id_syndic=1), vous déclencherez l'alerte. C'est la CVE-2026-27474.