← Back to the reef
EN | FR

(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)

  1. Connectez-vous en tant qu'administrateur.

  2. Assurez-vous que dans la configuration Contenu du site, l'option Référencement et syndication de sites est définie sur Gérer un annuaire de sites web.

  3. Naviguez vers une rubrique et cliquez sur Référencer un site.

  4. Dans le champ Syndication, cochez Syndication et entrez une IP cible ainsi qu'un port : tcp://127.0.0.1:22.

  5. Enregistrez.

  6. Comparez le temps de réponse avec celui d'un port ouvert (tcp://127.0.0.1:80). Vous pouvez également cliquer sur Mettre à jour maintenant sur 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.