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

Mise à jour critique de sécurité : sortie de SPIP 4.4.27

mardi 6 octobre 2026, par L’équipe maintenance

La version 4.4.27 corrige de nombreuses failles de sécurité. Un grand merci à 0xkidz, gaspard, Doston & Thomas Sanzey pour les signalements. PS : nous avons sauté le numéro de version 4.4.26 à cause d’un petit bug de dernière minute.

Cette version corrige de nombreuses failles de type pré-authentification RCE, élévation de privilèges, XSS, injection SQLite, upload HTML anonyme, reconstruction du secret du site.

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

Autre information importante, des failles critiques ont aussi été corrigées dans les plugins Crayons et Simplog, voir notre article à ce sujet.

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

  • Interdire l’affichage direct des squelettes formulaires/ même pour les webmestres
  • Réinitialiser les vieux mots de passe en md5 des rédacteurs et des administrateurs
  • Masquer les valeurs sensibles dans les logs et le debug
  • Débuggueur : échapper la requête affichée dans le <pre>
  • Échappement des attributs dans le debuggueur
  • Redirige_formulaire est moins laxiste avec la mise en forme des urls
  • Ne jamais utiliser redirige_par_entete() dans une action
  • |balise_svg fait appel au sanitizer svg avant tout affichage
  • La copie_locale() abandonne si la sanitization du fichier échoue
  • Support des svg avec une balise <SVG en majuscule
  • Vérifications de légitimité sur les copie locale d’URL de documents restreints
  • On stocke en cache meta une version moins prédictible des meta sensible
  • Refuser les fichier de spip_documents avec ’..’
  • Traduction sqlite de TIMESTAMPDIFF plus rigoureuse
  • Une regexp plus restrictive sur la traduction de INTERVAL dans une expression DATE_ADD ou DATE_SUB
  • Ne pas stocker les valeurs sensibles dans la globale meta
  • Un admin ne peut pas se dégrader, ie toucher aucun des champs statut, webmestre, restreintes qui le concernent
  • La fonction autoriser_auteur_modifier() attends un champ ’restreintes’ et pas ’restreint’
  • Quand on mets à jour les sessions d’un auteur après modification, repartir de la base, pas des valeurs envoyées
  • On n’accepte plus de contexte explicite signé venant de l’extérieur (contextes systématiquement en cache)
  • Les autorisations génériques pour un type doivent contenir le suffixe _faire pour éviter tout risque de collision avec une autorisation générique
  • Sanitizer titre et sinon en ajax comme dans body
  • Demander le mot de passe du webmestre qui modifie des champs importants
  • Indiquer un contexte public ’forum’ sur les traitements des champs des forum
  • Utiliser des preg pour nettoyer les form c’est plus robuste
  • Utiliser attribut_url et attribut_html partout où c’est nécessaire
  • Vérifier l’URL fournie dans url_site
  • 2 coquilles sur le calcul de la prévisu (on prenait nom_site pour url_site)
  • Vérifier l’autorisation de joindre un document dans ajouter_documents()
  • Le filtre |contenu_document n’accepte pas les documents distant quand appelé avec un id_document
  • Quand sanitizer_document() renvoie false, on abandonne l’ajout de document
  • Définir un contexte public dans le calcul de la prévisu si appelée depuis le public
  • sanitizer_svg_dist() traite correctement les cas fichier et chaîne svg en entrée
  • Le sanitizer SVG supprime le PHP dans tous les cas
  • Sanitizer les html lors de l’upload de document
  • Ajout d’un sanitizer html pour l’upload de document
  • Validation plus stricte des referers à la journalisation, à l’agrégation et à l’affichage ; purger les lignes déjà stockées
  • Ne pas faire circuler en clair des valeurs techniques
  • Le traitement des notes ne nécessite pas propre
  • Il faut aussi appliquer echappe_anti_xss sur les balises SVG également
  • Fonctions helper pour déclarer les traitements raccourcis et typo avec ou sans contexte de modèles
  • Le traitement des modèles peut rendre inerte des modèles directement
  • Permettre de transmettre des options à propre et typo, transmises à traiter_modeles()
  • Option interdire_script à propre() et typo()
  • Un collecteur de QuotedStrings pour collecter les chaînes entre simple ou double quotes
  • Les contextes ajax sont stockés sur le disque
  • Les autorisations génériques pour un type doivent contenir le suffixe _faire pour éviter tout risque de collision avec une autorisation générique
  • Tester le retour de get_spip_doc() avant de l’utiliser
  • En mysql & sqlite échouer sans requêter si les chaînes de la requête n’ont pu être échappées correctement
  • S’assurer que l’on traite bien l’unité en majuscules dans _sqlite_timestampdiff
  • Collecteur quand il manque une balise fermante
  • Chaîne de langue pour le formulaire editer_auteur
  • Erreur sur minipage
  • Erreur sur produire_page sur squelette introuvable
  • Collecteur QuotedStrings : en contexte Sqlite '\' est une chaine bien formée (les guillemets sont échappés par un '' et pas un \')
  • Ne pas perdre la case décochée quand on décoche un webmestre et qu’il y a une erreur
  • Refuser les logins de plus de 256 caractères
  • Tester le retour de get_spip_doc() avant utilisation
  • Il faut passer $nom_champ en majuscules pour trouver le traitement
  • Empêcher extraire_attribut d’envoyer null à strlen
  • Fonctions stats_nettoyer_referer(), stats_valider_referer()
  • Accepter les referer commençant par ’Referer : ’ c’est un cas usuel...
  • Fonctions traiter_raccourcis_fin() et propre_fin()

Mettre à jour en utilisant le spip_loader

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

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.27 Maintenance active PHP 7.4 à PHP 8.5

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

 

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

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.