Accueil > Release > Mise à jour critique de sécurité : sortie de SPIP 4.1.5, SPIP 4.0.8 et SPIP  (...)

Mise à jour critique de sécurité : sortie de SPIP 4.1.5, SPIP 4.0.8 et SPIP 3.2.16

jeudi 21 juillet 2022, par La team

Suite au signalement de plusieurs failles critiques de sécurité, nous publions les version 4.1.5, 4.0.8 et 3.2.16. Un grand merci à SpawnZii, Abyss Wacther & Sapperlotti pour ces signalements.

Ces versions corrigent des failles critiques dont une pouvait permettre de l’exécution de code (RCE) depuis l’espace public dans certains contextes de saisie utilisateur, et d’autres utilisant des XSS entre auteurs depuis l’espace d’administration pouvant permettre de réaliser une promotion de privilège de son compte dans le cadre de sites multi-utilisateurs.

Encore une fois, merci à Abyss Watcher, SpawnZii et Sapperlotti pour les analyses complètes et détaillées transmises.

La faille permettant l’exécution de code (RCE) est prise en charge par l’écran de sécurité.

Dans un cadre préventif afin de limiter l’exploitation de failles XSS, SPIP (en 4.0 et 4.1) envoie maintenant, dans l’espace privé, une entête CSP (Content Security Policy) « sandbox » qui limite certaines activités sur les iframes. Cela pourrait empêcher le fonctionnement correct de certains sites déployés dans une iframe (heureusement, il ne devrait pas y avoir grand monde concerné).

De même, en prévention, nous avons ajouté (en SPIP 3.2, 4.0 et 4.1) ce CSP (Content Security Policy) « sandbox » dans une règle du fichier htaccess.txt fourni avec SPIP lors de l’appel à des fichiers du répertoire IMG/

Il est conseillé donc de mettre à jour votre fichier .htaccess (ou équivalent) en conséquence. Pour Apache, cela consiste à ajouter la règle suivante :

En plus des corrections de sécurité, la branche 4.1 a bénéficié de corrections de bugs, dont certaines ont été reportées dans la branche 4.0.

Si vous vous demandez pourquoi on est passé de la 4.1.2 à la 4.1.5, c’est tout simplement parce que la 4.1.3 et la 4.1.4 sont parties en fumée :p (plus sérieusement, ces tags comportaient une erreur de release).

À propos de SPIP 4.2

Comme vous vous en doutez, nous n’avons pas avancé autant que souhaité initialement sur une version SPIP 4.2, qui ne sortira donc pas fin juillet et est donc repoussée (au moins) après cet été brûlant. La maintenance de SPIP 4.1 est évidemment maintenue tant qu’une version 4.2 n’est pas proposée.

Corrections principales apportées par SPIP 4.1.5

SPIP Core

Security

  • #5256 Bloquer la modification d’un auteur via une XMLHttpRequest ou une iframe
  • spip-team/securite#4832 Envoyer un CSP sandbox sur tous les documents de IMG via une RewriteRule du htaccess.txt modèle
  • spip-team/securite#4835 Mise a jour de l’écran de sécurité en version 1.4.2
  • spip-team/securite#4835 Sécuriser le paramètre `_oups` dans le formulaire d’édition de liens
  • spip-team/securite#4833 Signaler visuellement les liens javascript dans les zones éditoriales
  • spip-team/securite#4831 Correction des traitements des balises `#INFO_` dans l’espace privé

Added

  • spip-team/securite#4832 spip-team/securite#4833 une fonction `auth_controler_password_auteur_connecte()` pour securiser une action

Fixed

  • #5228 Rétablir le filtrage des valeurs `null` envoyées à la fonction `objet_modifier_champs()`
  • #5223 Éviter une erreur fatale sur `sql_selectdb()` sur une base inexistante en mysql
  • #5218 Éviter l’autocomplétion d’identifiants email en éditant un auteur
  • #5209 #5221 Fonctionnement de Imagick sous Windows
  • #5206 Échouer en minipres si on ne peut pas écrire le fichier des clés lors du login
  • #5213 Prendre en compte le sens du critère `tri` en présence d’un tri `multi`
  • #5259 Fatale sur `autoriser` appelé avec un identifiant d’auteur inexistant
  • #5256 Correction de `#HTTP_HEADER{}` quand la valeur contenait un simple quote
  • #5256 Corriger `refuser_traiter_formulaire_ajax()` qui ne fonctionnait pas quand un form contenait un élément avec un name ou id `submit`
  • spip-contrib-extensions/formidable#119 Échapper les noms de fichier quand on génère une balise img à l’aide du filtre `|balise_img`
  • #4826 Vignettes fallback quand on ne sait par réduire la taille d’une image du fait de son format
  • #5232 Correction notice PHP sur `signale_edition()`
  • #5231 Correction deprecated PHP 8.1 sur `sql_quote(null)`
  • #5242 Correction warning sur `generer_objet_lien()`
  • #5239 Éviter une fatale sur un appel de `generer_objet_info()`
  • spip-contrib-extensions/agenda#57 Éviter une erreur de typage à l’enregistrement dans certains formulaires
  • #5190 Dans le formulaire de configuration de l’email de suivi, pouvoir indiquer une liste d’emails séparés par des virgules
  • #5204 Fix le login lors de la restauration des clés depuis un compte webmestre
  • #5118 Fix les viewbox erronées lors de la copie locale des SVG sans viewbox
  • #5194 Améliorer le comportement du bouton « Ajourd’hui » dans le dateur en surlignant le jour courant + ajout option data-todayhighlight sur les input.date + fix option data-clearbtn

Big Upload

Added

  • #4860 Ajout de deux events à l’API JS `bigup.fileAdded` & `bigup.fileSubmitted`
  • #4861 `Bigup.send(FormData)` un raccourci pour poster en ajax le formulaire.

Changed

  • #4860 API JS, compléter l’event ready pour lui passer l’objet form en paramètre

Fixed

  • #4861 Ne pas perdre certains liens de documents en changeant le fichier d’un document avec Bigup

Deprecated

  • #4861 `Bigup.getFormData()` est déprécié. Utiliser `Bigup.buildFormData()`

Compresseur

Fixed

  • #4851 Fix un bug sur les shorthands padding/margin

Images

Fixed

  • Usage de `image_typo` sous Windows

Medias

Security

  • spip-team/securite#4832 et spip-team/securite#4833 appliquer _TRAITEMENT_TYPO sur le champs CREDITS et bien visualier le html suspect

Fixed

  • #4893 Il ne faut pas contraindre la taille des SVG
  • #4891 Amélioration du message d’erreur de taille de document
  • #4889 Refaire un alter sur la champ mode avant la migration des logos, par précaution

SVP

Security

  • spip-team/securite#4832 et spip-team/securite#4833 Sécuriser le téléchargement de zip de plugin ou l’ajout d’un dépôt par saisie du mot de passe

Fixed

  • #4854 Tout cocher/décocher n’agit que sur les plugins visibles de la liste

Urls Etendues

Added

  • #4818 Tri possible par URLs verrouillées dans les listes d’URLs

Fixed

  • #4818 Coquille sens de tri sur la liste des urls

Corrections principales apportées par SPIP 4.0.8

SPIP 4.0 est mis à jour avec les différents correctifs de sécurité.

Il corrige également certains bugs :

  • #5194 Améliorer le comportement du bouton ’Ajourd’hui’ dans le dateur
  • Bigup #4861 Ne pas perdre les liens multiples d’un document lorsqu’on change son fichier
  • Medias #4889 Refaire un alter sur la champ mode avant la migration des logos, par précaution

Corrections principales apportées par SPIP 3.2.16

  • SPIP 3.2 est mis à jour avec les différents correctifs de sécurité.
  • Correction de sa compatibilité avec PHP 5.4 (perdue par inadvertance en SPIP 3.2.15)

Mettre à jour en utilisant le spip_loader

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

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

Le spip_loader.php est maintenant au 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.1 SPIP 4.1.5 Branche stable PHP 7.4 à PHP 8.1
SPIP 4.0 SPIP 4.0.8 Branche stable PHP 7.3 à PHP 8.0
SPIP 3.2 SPIP 3.2.16 Branche stable PHP 5.4 à PHP 7.4

Les versions SPIP 3.1 et antérieures ne sont plus maintenues.

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

Vous pouvez aussi poster un message et échanger sur :

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

Messages

  • Merci pour la faille RCE corrigée via l’écran de sécurité, vous m’avez sauvé mon WE !

  • Merci pour le boulot fourni même en plein été. Viva spip

  • Une coquille s’est glissée dans le plugin SVP d’administration des plugins, sur SPIP 4.0.8 et SPIP 4.1.5, qui rend le bouton « Cocher toutes les mises à jour » inopérant !

    La correction est riquiqui (un false qui devient true) si ça vous intéresse en attendant une prochaine version…

    https://git.spip.net/spip/svp/commit/f992981f

  • Bonjour,

    J’ai une question sur la gravité attachée à ce sandbox sur IMG/
    Quel est le risque de ne pas le faire ?

    PS : par ailleurs, je cherche la syntaxe à utiliser dans le cadre de la mutualisation facile de SPIP, avec des dossiers en sites/*/IMG/

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.