Accueil > Release > Mise à jour de sécurité : sortie de SPIP 4.4.8

Mise à jour de sécurité : sortie de SPIP 4.4.8

jeudi 12 février 2026, par L’équipe maintenance

Suite au signalement de deux petites failles de sécurité, nous publions la version 4.4.8 de SPIP. Un grand merci à Arthur Deloffre (Vozec), Louka Jacques-Chevallier (Laluka) et Philippe Boussin pour les signalements.

Cette version apporte aussi des améliorations notables des performances de SVP, l’outil d’installation des plugins, plus de détail sur le fil de discussion.

Cette version corrige deux petites failles de type XSS : une dans l’espace privé lors de l’utilisation de balises <iframe> malicieuses et l’autre dans l’espace public pour certains cas d’usage à la marge.

Encore une fois, merci à Arthur Deloffre (Vozec), Louka Jacques-Chevallier (Laluka) et Philippe Boussin pour les signalements.

Ces failles ne sont pas prises en charge par l’écran de sécurité.

Remarque importante concernant les <iframe> dans l’espace privé

Dorénavant, un attribut sandbox est ajouté automatiquement aux balises <iframe> dans l’espace privé, afin d’éviter des failles de type XSS. Par conséquent, certaines <iframe> ne sont plus affichées correctement dans l’espace privé. Rassurez-vous cela n’a aucun impact dans l’espace public.

Pour les personnes utilisant des services de vidéo externes (comme peertube, youtube ou dailymotion) qui souhaitent rétablir l’affichage de ces vidéos dans l’espace privé, il convient d’installer la dernière version du plugin oEmbed (v3.5.0).

La version 4.4.8 apporte les améliorations ou corrections de bugs suivantes :

  • Sécuriser l’affichage des iframe éventuelles soit par échappement soit par sandboxing selon les cas
  • Améliorer la détection de contenus malicieux dans echapper_html_suspect()
  • La fonction safehtml() accepte un tableau d’options en second argument, vide par défaut, que l’on passe à inc_safehml_dist() (ou fonction surchargée)
  • Fonction afficher_html_suspect() pour assurer le rendu du HTML suspect échappé
  • Corrections de deprecated en PHP 8.5+
  • Éviter une indéfinie lors de l’affectation des doublons documents
  • Si un pipeline corrompt args/data, le dénoncer dans les logs et en erreur_squelette
  • prepare_icone_base() envoyait une classe erronée depuis le passage en SVG
  • Inscription : ne pas générer 2 fois de suite un jeton
  • Inscription : rétablir les paramètres passés au modèle de notification
  • Authentification HTTP : assigner l’auteur à la session uniquement si on a pu le récupérer
  • Affichage de l’ID d’un auteur sur page Visiteurs
  • Faire fonctionner le sélecteur d’article avec le paramètre limite_branche
  • En l’absence de date de rédaction antérieure, ne pas pré-remplir avec 0000-00-00 00:00
  • Sur petit écran, afficher le nom des auteurs dans les listes
  • Afficher le nombre d’articles dans les différentes listes de la page d’accueil
  • Chaînes de langue singulier et pluriel sur toutes les listes d’objets qui manquaient
  • Limiter à 500000 les listes d’articles paginés dans l’espace privé et à 25 pour les articles les plus récents
  • Sécuriser les paramètres align et class pour les modèles de documents
  • Prise en charge des documents de type apk
  • Autorisation de drag’n’drop plus spécifique dans le plan de l’espace privé pour être configurable finement
  • Options allowIframe et allowIframeURIRegexp permettant d’accepter des iframe, éventuellement sur la base d’une regexp pour l’URL.
  • inc_safehtml_dist() accepte un tableau d’options en second argument, vide par défaut.
  • Mise à jour des librairies htmlpurifieur-html5 en 0.1.12 & htmlpurifier en 4.19.0 (corrections diverses & PHP 8.4+)
  • Correction d’une erreur fatale avec le plugin stat_objets
  • Fonction svp_depoter_distant_variantes_url() pour générer des variantes d’url pour les dépôts
  • Actualise les dépôts distants avec les nouvelles variantes d’archives par branches SPIP, plus légers
  • Correction d’un bug pour les plugins avec extension PHP requise sans compatibilité associée
  • Optimisations mémoire lors de la lecture des dépôts de plugins
  • Prendre en charge la constante _DEV_VERSION_SPIP_COMPAT dans la fonction svp_phraser_archives()
  • Inspecter aussi les balises input, form, button et a dans la sécurisation des contenus
  • Homogénéiser les détections de la même manière que echapper_html_suspect() du core
  • Utiliser les fonctions afficher_html_suspect() et is_html_safe()
  • Suppression des fichiers backend-breves.html et breve.html (intégrés au plugin Brèves)

Mettre à jour en utilisant le spip_loader

Vous pouvez aussi mettre à jour au moyen de la dernière version de spip_loader (version 6.2.1).

spip_loader est distribué à l’adresse suivante : https://get.spip.net/

Le fichier spip_loader.php est un script compilé dans le format binaire phar. Si vous avez besoin de personnaliser l’installation en définissant des constantes, il vous faut créer un fichier de configuration spip_loader_config.php (cf https://www.spip.net/fr_article5705.html).

Résumé des versions de SPIP

Branche Version Suivi Compatibilité PHP
SPIP 4.4 4.4.8 Maintenance active PHP 7.4 à PHP 8.5

Pour connaître le détail des versions maintenues :
https://www.spip.net/fr_article6500.html

Pour rappel, le support de la branche 4.3 s’est terminé fin décembre 2025, pensez à mettre à jour vos sites vers la branche 4.4.

Comment être tenu au courant de ces annonces ?

C’est simple, inscrivez-vous sur la mailing liste https://discuter.spip.net/c/spip-ann/13

Bien sûr, les réseaux sociaux sont de la partie :

Une question, besoin d’aide ?

En cas de problème ou de difficultés, il y aura certainement quelqu’un pour vous aider sur IRC, n’hésitez pas à venir poser vos questions https://irc.spip.net ou sur notre serveur Discord.

Vous pouvez aussi poster un message et échanger sur :

Nous vous rappelons que pour signaler une faille, il suffit d’envoyer un mail à securite@spip.net.

Messages

  • Attemtion bug avec le Formidable et cette sortie. La version 6.2.0 du plugin saisies, qui vient d’être envoyé, corrige cela.

  • Merci à tous pour tout le travail qui est fait pour Spip !

  • Bug  ?

    Depuis la mise à jour, les pages privées de mes articles contenant un oEmbed Youtube me donnent une erreur 503 :

    Service inaccessible !

    En raison de travaux de maintenance ou de problèmes de capacité le serveur n’est pas en mesure de répondre à votre requête pour l’instant. Veuillez réessayer plus tard.

    Si vous pensez qu’il s’agit d’une erreur du serveur, veuillez contacter le webmestre.

    Error 503

    monsite.tld
    Apache

    Pas de souci cependant sur les pages publiques.

  • Chez OVH, si le spip_loader.php vous renvoie l’erreur suivante

    cURL error 7: Failed to connect to www.spip.net port 443: Connection refused (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
    

    C’est que votre hébergement OVH a bloqué les fonctions Curl.
    Il faut vous connecter dans l’espace client > hébergement web

    Vous obtenez un pop-in :

    Activité anormale sur votre hébergement

    Nous avons détecté un volume anormalement élevé de requêtes sortantes depuis votre hébergement.
    Par mesure de sécurité, nous avons temporairement bloqué ces requêtes.

    Il suffit de valider en confirmant que vous avez résolu le problème.

    Cela permet de réactiver Curl et le spip_loader (attention, cela peut prendre plusieurs minutes avant qu’OVH réactive la fonction).

  • > Depuis la mise à jour, les pages privées de mes articles contenant un oEmbed Youtube me donnent une erreur 503

    Je ne reproduis pas de mon côté.

  • @1138 peut être le souci chez ovh ?

  • Le plugin « Interface de traduction pour objets » était bugé, cette maj à revélée ce bug. Une maj 2.2.1 du plugin en question resoud le problème. Elle sera disponible dans 1 h ou 2.

  • Bonjour,
    Depuis la version 4.4.8, impossible de faire Activité > Afficher les visiteurs. J’ai 20 erreurs dans le squelette prive/objets/liste/visiteurs.html : double définition de boucle, #PAGINATION sans critère pagination, #TRI sans critère de tri,.........
    AlainB

  • @b_b @Maïeul

    Merci pour vos réponses.

    Désolé de répondre tardivement : j’ai été occupé. Mais j’ai pu faire des tests : si je désactive tous les plugins sauf oEmbed et que je vide le cache, j’ai toujours ce problème.
    En désactivant oEmbed (que les autres plugins soient activés ou non), ça refonctionne.

    J’ai ajouté oEmbed à un Spip où il n’était pas (mais sur le même serveur Infomaniak, même version de php, etc.), aucun problème. Ça semble donc lié à la configuration du site.
    J’ai aussi supprimé oEmbed du site problématique, ai supprimé la configuration dans spip_meta puis réinstallé oEmbed : erreur 503. :(

    Pas d’erreur php et rien n’est indiqué dans les logs (même en augmentant la verbosité). La seule chose que je vois, c’est l’apparition d‘un cadre rouge autour de la div.cadre-formulaire-editer lors de l’enregistrement de l’article et, bien sûr, l’erreur 503 sur la page privée de l’article.
    La page de modification de l’article fonctionne, ainsi que les crayons.

    Bon, ce week-end, personne ne devrait publier sur le site, je reverrai ça lundi.

    Bon week-end  !

    PS : je reproduis l’erreur d’AlainB.

  • Bonjour,

    J’ai également le même problème d’erreur 503 côté privé sur les articles ayant une vidéo Youtube avec Oembed sur mon site hébergé chez Infomaniak. Probablement la nouvelle sécurité sur les Iframes !?

    Je reproduis aussi le problème pour afficher les visiteurs signalé par AlainB.

    Cordialement

  • @AlainB le bug de la page des visiteurs a été corrigé cf https://git.spip.net/spip/prive/-/merge_requests/121, le correctif sera dispo dans la prochaine version ;)

  • qulle version de oembed ?

  • @Maïeul

    J’ai essayé avec la 3.4 et la 3.5 d’Oembed et le problème est présent dans les 2 cas.

  • @philippeB @1138 je pense avoir trouvé le pourquoi de cela, et une solution

    https://git.spip.net/spip/tw/-/merge_requests/4899

    a confirmer tout de meme

  • Je confirme que ça résout mon problème.
    (J’attends quand même la fin des débats en cours pour mettre ça en prod.)

    Merci et bon week-end  !

  • Bonjour
    Depuis la mise à jour j’ai un souci en admin sur une seule rubrique du site et 3 articles qu’elle contient (mais pas toutes, alors qu’elles sont toutes sous le même dev...), avec une erreur "503 Service Unavailable
    The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later"
    En public, pas de souci, la rubrique ou l’article s’affiche bien, mais si je veux y accéder en admin, j’ai l’erreur 503.
    (pas d’oembed dans la rub ou l’article concerné).
    J’ai fini par désactiver les plugins, le souci vient du couteau suisse, et de mail crypt plus particulièrement. Une fois désactivé Mail crypt, je récupère l’accès à l’admin de la rubrique en particulier.
    Autre remarque la mise à jour automatique du couteau suisse plante (v.1.16.1), le lien vers le serveur distant pose problème (l’url renvoie sur une page introuvable).
    j’ai réinstallé couteau suisse via l’archive pour la 1.17.0 -> la réactivation de mail crypt renvoie l’erreur 503. J’ai re désactivé du coup.

  • @Aude, c’est un effet de bord des correctifs de sécurité de la 4.4.8, la version 4.4.9 qui sortira demain corrigera ce bug ;)

  • Cela étant Aude, si tu n’utilise QUE la lame mailcrypt du couteau suisse, autant utiliser le plugin natif.

  • Hello

    Merci pour la mise à jour ça résoud le souci erreur 503 pour mailcrypt. (Maieul, j’utilise d’autres fonctionnalités du couteau mais merci pour l’info).
    Le plugin Couteau suisse ne veut toujours pas se mettre à jour via l’interface mais ça passe par le zip.

    Merci pour la réactivité en tout cas !

Un message, un commentaire ?

Qui êtes-vous ?
Se connecter
Votre message

Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.