Version in base suite: 4.4.11+dfsg-0+deb13u1 Base version: spip_4.4.11+dfsg-0+deb13u1 Target version: spip_4.4.13+dfsg-0+deb13u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/s/spip/spip_4.4.11+dfsg-0+deb13u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/s/spip/spip_4.4.13+dfsg-0+deb13u1.dsc CHANGELOG.md | 8 + composer.lock | 24 +-- debian/changelog | 10 + debian/patches/0001-Fix-created-directories-and-files-default-rights.patch | 2 debian/patches/0003-Fix-displayed-version-in-the-private-interface.patch | 2 ecrire/CHANGELOG.md | 17 ++ ecrire/inc/layer.php | 2 ecrire/inc/texte.php | 8 - ecrire/inc_version.php | 6 ecrire/paquet.xml | 2 ecrire/public/references.php | 61 +++++++--- plugins-dist.json | 6 plugins-dist/compresseur/CHANGELOG.md | 6 plugins-dist/compresseur/compresseur_fonctions.php | 7 + plugins-dist/compresseur/paquet.xml | 2 plugins-dist/revisions/CHANGELOG.md | 6 plugins-dist/revisions/paquet.xml | 2 plugins-dist/revisions/prive/squelettes/contenu/revision.html | 10 - plugins-dist/urls_etendues/CHANGELOG.md | 6 plugins-dist/urls_etendues/paquet.xml | 2 plugins-dist/urls_etendues/urls/arbo.php | 2 plugins-dist/urls_etendues/urls/propres.php | 2 prive/CHANGELOG.md | 6 prive/echafaudage/contenu/objet.html | 8 - prive/echafaudage/contenu/objets.html | 2 prive/formulaires/editer_liens.html | 8 - prive/formulaires/inc-instituer_auteur.html | 14 +- prive/objets/liste/objets.html | 4 vendor/composer/installed.json | 28 ++-- vendor/composer/installed.php | 24 +-- 30 files changed, 191 insertions(+), 96 deletions(-) dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmpxtsl2_nx/spip_4.4.11+dfsg-0+deb13u1.dsc: no acceptable signature found dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmpxtsl2_nx/spip_4.4.13+dfsg-0+deb13u1.dsc: no acceptable signature found diff -Nru spip-4.4.11+dfsg/CHANGELOG.md spip-4.4.13+dfsg/CHANGELOG.md --- spip-4.4.11+dfsg/CHANGELOG.md 2026-02-27 10:23:06.000000000 +0000 +++ spip-4.4.13+dfsg/CHANGELOG.md 2026-03-06 10:17:16.000000000 +0000 @@ -1,5 +1,13 @@ # Changelog +## 4.4.13 - 2026-03-06 + +- Mise à jour des dépendances (ecrire) -- Compatibilité PHP 7.4 + +## 4.4.12 - 2026-03-06 + +- Mise à jour des dépendances (ecrire, prive, compresseur, revisions, urls) + ## 4.4.11 - 2026-02-27 - Mise à jour des dépendances (ecrire, prive, tw) diff -Nru spip-4.4.11+dfsg/composer.lock spip-4.4.13+dfsg/composer.lock --- spip-4.4.11+dfsg/composer.lock 2026-02-27 10:23:06.000000000 +0000 +++ spip-4.4.13+dfsg/composer.lock 2026-03-06 10:17:16.000000000 +0000 @@ -317,16 +317,16 @@ }, { "name": "spip/ecrire", - "version": "4.4.11", + "version": "4.4.13", "source": { "type": "git", "url": "https://git.spip.net/spip/ecrire.git", - "reference": "0649c62137e686114e318885c15cd36fca7514a4" + "reference": "430909d749490d9704e74a9185b0cd9849593f8f" }, "dist": { "type": "zip", - "url": "https://git.spip.net/api/v4/projects/spip%2Fecrire/repository/archive.zip?sha=0649c62137e686114e318885c15cd36fca7514a4", - "reference": "0649c62137e686114e318885c15cd36fca7514a4", + "url": "https://git.spip.net/api/v4/projects/spip%2Fecrire/repository/archive.zip?sha=430909d749490d9704e74a9185b0cd9849593f8f", + "reference": "430909d749490d9704e74a9185b0cd9849593f8f", "shasum": "" }, "require": { @@ -362,23 +362,23 @@ ], "description": "Noyau de SPIP", "support": { - "source": "https://git.spip.net/spip/ecrire/-/tree/4.4.11", + "source": "https://git.spip.net/spip/ecrire/-/tree/4.4.13", "issues": "https://git.spip.net/spip/ecrire/-/issues" }, - "time": "2026-02-27T10:43:11+01:00" + "time": "2026-03-06T11:13:42+01:00" }, { "name": "spip/prive", - "version": "1.0.9", + "version": "1.0.10", "source": { "type": "git", "url": "https://git.spip.net/spip/prive.git", - "reference": "819a245b4b4064aece1a6f3c359bac8b477951c8" + "reference": "d438e7f47f306d06f6dfd169c6c38b58b5d2226a" }, "dist": { "type": "zip", - "url": "https://git.spip.net/api/v4/projects/spip%2Fprive/repository/archive.zip?sha=819a245b4b4064aece1a6f3c359bac8b477951c8", - "reference": "819a245b4b4064aece1a6f3c359bac8b477951c8", + "url": "https://git.spip.net/api/v4/projects/spip%2Fprive/repository/archive.zip?sha=d438e7f47f306d06f6dfd169c6c38b58b5d2226a", + "reference": "d438e7f47f306d06f6dfd169c6c38b58b5d2226a", "shasum": "" }, "require-dev": { @@ -390,10 +390,10 @@ ], "description": "Squelettes de l'espace privé", "support": { - "source": "https://git.spip.net/spip/prive/-/tree/1.0.9", + "source": "https://git.spip.net/spip/prive/-/tree/1.0.10", "issues": "https://git.spip.net/spip/prive/-/issues" }, - "time": "2026-02-27T10:37:44+01:00" + "time": "2026-03-06T10:27:32+01:00" }, { "name": "spip/security", diff -Nru spip-4.4.11+dfsg/debian/changelog spip-4.4.13+dfsg/debian/changelog --- spip-4.4.11+dfsg/debian/changelog 2026-03-02 07:38:02.000000000 +0000 +++ spip-4.4.13+dfsg/debian/changelog 2026-03-08 07:44:51.000000000 +0000 @@ -1,3 +1,13 @@ +spip (4.4.13+dfsg-0+deb13u1) trixie-security; urgency=medium + + [ Matthieu Marcillaud ] + * build: Version 4.4.13, fixing privilege escalation introduced in 4.4.10. + + [ David Prévot ] + * Refresh patches header + + -- David Prévot Sun, 08 Mar 2026 08:44:51 +0100 + spip (4.4.11+dfsg-0+deb13u1) trixie-security; urgency=medium [ Matthieu Marcillaud ] diff -Nru spip-4.4.11+dfsg/debian/patches/0001-Fix-created-directories-and-files-default-rights.patch spip-4.4.13+dfsg/debian/patches/0001-Fix-created-directories-and-files-default-rights.patch --- spip-4.4.11+dfsg/debian/patches/0001-Fix-created-directories-and-files-default-rights.patch 2026-03-02 07:38:02.000000000 +0000 +++ spip-4.4.13+dfsg/debian/patches/0001-Fix-created-directories-and-files-default-rights.patch 2026-03-08 07:41:01.000000000 +0000 @@ -13,7 +13,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php -index 319d4a8..089ddea 100644 +index c70493e..b8c8efb 100644 --- a/ecrire/inc_version.php +++ b/ecrire/inc_version.php @@ -437,7 +437,7 @@ $liste_des_authentifications = [ diff -Nru spip-4.4.11+dfsg/debian/patches/0003-Fix-displayed-version-in-the-private-interface.patch spip-4.4.13+dfsg/debian/patches/0003-Fix-displayed-version-in-the-private-interface.patch --- spip-4.4.11+dfsg/debian/patches/0003-Fix-displayed-version-in-the-private-interface.patch 2026-03-02 07:38:02.000000000 +0000 +++ spip-4.4.13+dfsg/debian/patches/0003-Fix-displayed-version-in-the-private-interface.patch 2026-03-08 07:41:01.000000000 +0000 @@ -14,7 +14,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php -index 089ddea..10d9f8d 100644 +index b8c8efb..1c6b3e6 100644 --- a/ecrire/inc_version.php +++ b/ecrire/inc_version.php @@ -462,7 +462,7 @@ $spip_sql_version = 1; diff -Nru spip-4.4.11+dfsg/ecrire/CHANGELOG.md spip-4.4.13+dfsg/ecrire/CHANGELOG.md --- spip-4.4.11+dfsg/ecrire/CHANGELOG.md 2026-02-27 09:43:10.000000000 +0000 +++ spip-4.4.13+dfsg/ecrire/CHANGELOG.md 2026-03-06 10:13:42.000000000 +0000 @@ -2,6 +2,23 @@ Changelog de SPIP 4.4 +## 4.4.13 - 2026-03-06 + +### Fixed + +- Syntaxe compatible PHP 7.4 (bug introduit en 4.4.12) + +## 4.4.12 - 2026-03-06 + +### Fixed + +- spip/ecrire!186 spip/ecrire!197 spip/ecrire!199 Limiter le changement sur les balises avec traitements (tel que `#TEXTE`) provenant de l’env +- spip/spip6080 Bien récupérer l’environnement dans une boucle DATA si le champ n’est pas dedans + +### Deprecated + +- !204 !204#note_219916 `cadre_depliable()` est déprécié. + ## 4.4.11 - 2026-02-27 ### Fixed diff -Nru spip-4.4.11+dfsg/ecrire/inc/layer.php spip-4.4.13+dfsg/ecrire/inc/layer.php --- spip-4.4.11+dfsg/ecrire/inc/layer.php 2026-02-27 09:43:10.000000000 +0000 +++ spip-4.4.13+dfsg/ecrire/inc/layer.php 2026-03-06 10:13:42.000000000 +0000 @@ -26,7 +26,7 @@ **/ function cadre_depliable($icone, $titre, $deplie, $contenu, $ids = '', $style_cadre = 'r') { $bouton = bouton_block_depliable($titre, $deplie, $ids); - + trigger_deprecation('spip', '4.4', 'Using "%s" is deprecated, use "%s" instead', __FUNCTION__, 'debut_cadre'); return debut_cadre($style_cadre, $icone, '', $bouton, '', '', false) . debut_block_depliable($deplie, $ids) diff -Nru spip-4.4.11+dfsg/ecrire/inc/texte.php spip-4.4.13+dfsg/ecrire/inc/texte.php --- spip-4.4.11+dfsg/ecrire/inc/texte.php 2026-02-27 09:43:10.000000000 +0000 +++ spip-4.4.13+dfsg/ecrire/inc/texte.php 2026-03-06 10:13:42.000000000 +0000 @@ -143,8 +143,8 @@ * utilise la valeur de la globale filtrer_javascript si non fourni * @return string * Code protégé - **/ -function interdire_scripts($arg, $mode_filtre = null) { + */ +function interdire_scripts($arg, ?int $mode_filtre = null) { // on memorise le resultat sur les arguments non triviaux static $dejavu = []; @@ -153,8 +153,8 @@ return $arg; } - if (is_null($mode_filtre) or !in_array($mode_filtre, [-1, 0, 1])) { - $mode_filtre = $GLOBALS['filtrer_javascript']; + if ($mode_filtre === null || !in_array($mode_filtre, [-1, 0, 1])) { + $mode_filtre = (int) ($GLOBALS['filtrer_javascript'] ?? 0); } if (isset($dejavu[$mode_filtre][$arg])) { diff -Nru spip-4.4.11+dfsg/ecrire/inc_version.php spip-4.4.13+dfsg/ecrire/inc_version.php --- spip-4.4.11+dfsg/ecrire/inc_version.php 2026-02-27 09:43:10.000000000 +0000 +++ spip-4.4.13+dfsg/ecrire/inc_version.php 2026-03-06 10:13:42.000000000 +0000 @@ -443,8 +443,8 @@ // pour specifier les versions de SPIP necessaires // il faut s'en tenir a un nombre de decimales fixe // ex : 2.0.0, 2.0.0-dev, 2.0.0-beta, 2.0.0-beta2 -$spip_version_branche = '4.4.11'; -define('_SPIP_VERSION_ID', 40411); +$spip_version_branche = '4.4.13'; +define('_SPIP_VERSION_ID', 40413); define('_SPIP_EXTRA_VERSION', ''); // cette version dev accepte tous les plugins compatible avec la version ci-dessous @@ -452,7 +452,7 @@ # define('_DEV_VERSION_SPIP_COMPAT', '4.1.99'); // version des signatures de fonctions PHP // (= date de leur derniere modif cassant la compatibilite et/ou necessitant un recalcul des squelettes) -$spip_version_code = 2026_02_27; +$spip_version_code = 2026_03_06; // version de la base SQL (= Date + numero incremental a 2 chiffres YYYYMMDDXX) $spip_version_base = 2022_02_23_03; diff -Nru spip-4.4.11+dfsg/ecrire/paquet.xml spip-4.4.13+dfsg/ecrire/paquet.xml --- spip-4.4.11+dfsg/ecrire/paquet.xml 2026-02-27 09:43:10.000000000 +0000 +++ spip-4.4.13+dfsg/ecrire/paquet.xml 2026-03-06 10:13:42.000000000 +0000 @@ -1,7 +1,7 @@ etoile); + // ca pourrait etre un champ SQL homonyme, - $p->code = index_pile($p->id_boucle, $nom, $p->boucles, $p->nom_boucle, ''); + $p->code = index_pile($p->id_boucle, $nom, $p->boucles, $p->nom_boucle, '', true, true, $defaut); if ($p->code === '') { $is_env = true; - $p->code = "table_valeur(\$Pile[0]??[], '" . strtolower($nom) . "', null)"; - if (!$p->etoile && !empty($GLOBALS['table_des_traitements']['ENV'][0])) { - $p->code = str_replace('%s', $p->code, $GLOBALS['table_des_traitements']['ENV'][0]); - } + $p->code = $defaut; } // compatibilite: depuis qu'on accepte #BALISE{ses_args} sans [(...)] autour @@ -574,6 +580,29 @@ return $p; } +/** + * Calcule le code généré permettant d’obtenir une donnée d’environnement de squelette + * + * On sanitise si la valeur provient de la Request. + * + * Utilisé notamment sur `#DEMO` inexistant dans une boucle qui remonte + * à l’environnement du squelette (équivalent alors à `#ENV{demo}`). + * + * Historiquement, si la balise a des traitements, tel que `#TEXTE`, + * ceux-ci sont appliqués sur la valeur obtenue (même provenant de l’env). + * Pour les autres balises, aucun autre traitement n’est appliqué. + * + * @since 4.4.12 + * @internal + */ +function calculer_recuperer_env(string $nom, bool $traitements = true): string { + $_nom = strtolower($nom); + $code = "table_valeur(\$Pile[0]??[], '" . $_nom . "', null)"; + if ($traitements === false) { + return $code; + } + return \sprintf("spip_sanitize_from_request(%s, '%s')", $code, $_nom); +} /** Code PHP d'exécution d'une balise dynamique */ define('CODE_EXECUTER_BALISE', "executer_balise_dynamique('%s', diff -Nru spip-4.4.11+dfsg/plugins-dist/compresseur/CHANGELOG.md spip-4.4.13+dfsg/plugins-dist/compresseur/CHANGELOG.md --- spip-4.4.11+dfsg/plugins-dist/compresseur/CHANGELOG.md 2026-02-27 10:23:06.000000000 +0000 +++ spip-4.4.13+dfsg/plugins-dist/compresseur/CHANGELOG.md 2026-03-06 10:17:18.000000000 +0000 @@ -1,5 +1,11 @@ # Changelog +## 2.2.3 - 2026-03-06 + +### Deprecated + +- Émettre un log sur `compacte()` qui est déprécié depuis longtemps. Utiliser `minifier()`. + ## 2.2.2 - 2026-02-26 ### Fixed diff -Nru spip-4.4.11+dfsg/plugins-dist/compresseur/compresseur_fonctions.php spip-4.4.13+dfsg/plugins-dist/compresseur/compresseur_fonctions.php --- spip-4.4.11+dfsg/plugins-dist/compresseur/compresseur_fonctions.php 2026-02-27 10:23:06.000000000 +0000 +++ spip-4.4.13+dfsg/plugins-dist/compresseur/compresseur_fonctions.php 2026-03-06 10:17:18.000000000 +0000 @@ -120,6 +120,13 @@ * @return string */ function compacte($source, $format = null) { + trigger_deprecation( + 'SPIP', + '3.1', + 'Le filtre "%s" est déprécié, utiliser la fonction équivalente "%s" à la place', + __FUNCTION__, + 'minifier' + ); return minifier($source, $format); } diff -Nru spip-4.4.11+dfsg/plugins-dist/compresseur/paquet.xml spip-4.4.13+dfsg/plugins-dist/compresseur/paquet.xml --- spip-4.4.11+dfsg/plugins-dist/compresseur/paquet.xml 2026-02-27 10:23:06.000000000 +0000 +++ spip-4.4.13+dfsg/plugins-dist/compresseur/paquet.xml 2026-03-06 10:17:18.000000000 +0000 @@ -1,7 +1,7 @@ `generer_objet_url_ecrire_edit()` + ## 3.1.10 - 2025-10-10 ### Fixed diff -Nru spip-4.4.11+dfsg/plugins-dist/revisions/paquet.xml spip-4.4.13+dfsg/plugins-dist/revisions/paquet.xml --- spip-4.4.11+dfsg/plugins-dist/revisions/paquet.xml 2026-02-27 10:23:10.000000000 +0000 +++ spip-4.4.13+dfsg/plugins-dist/revisions/paquet.xml 2026-03-06 10:17:20.000000000 +0000 @@ -1,7 +1,7 @@ [(#CHEMIN_IMAGE{diff-24.png}|balise_img{'',cadre-icone})]<:revisions:info_historique:> « [(#INFO_TITRE{#OBJET,#ID_OBJET}|recuperer_numero). ](#INFO_TITRE{#OBJET,#ID_OBJET}|sinon{<:info_sans_titre:>})[(#OBJET|objet_icone|inserer_attribut{class,cadre-icone})] @@ -35,10 +35,10 @@ [(#AUTORISER{modifier,#OBJET,#ID_OBJET}|et{#OBJET|objet_info{editable}}|oui) [(#ID_OBJET|afficher_qui_edite{#OBJET}|non) - [(#ID_OBJET|generer_url_ecrire_entite_edit{#OBJET}|icone_verticale{[(#OBJET|objet_info{texte_modifier}|_T)],#OBJET|objet_info{icone_objet},edit,right ajax preload})] + [(#ID_OBJET|generer_objet_url_ecrire_edit{#OBJET}|icone_verticale{[(#OBJET|objet_info{texte_modifier}|_T)],#OBJET|objet_info{icone_objet},edit,right ajax preload})] ] [(#ID_OBJET|afficher_qui_edite{#OBJET}|oui) - [(#ID_OBJET|generer_url_ecrire_entite_edit{#OBJET}|icone_verticale{#ID_OBJET|afficher_qui_edite{#OBJET},warning-24,'',right edition_deja ajax preload})] + [(#ID_OBJET|generer_objet_url_ecrire_edit{#OBJET}|icone_verticale{#ID_OBJET|afficher_qui_edite{#OBJET},warning-24,'',right edition_deja ajax preload})] ] ] diff -Nru spip-4.4.11+dfsg/prive/echafaudage/contenu/objets.html spip-4.4.13+dfsg/prive/echafaudage/contenu/objets.html --- spip-4.4.11+dfsg/prive/echafaudage/contenu/objets.html 2026-02-27 09:37:44.000000000 +0000 +++ spip-4.4.13+dfsg/prive/echafaudage/contenu/objets.html 2026-03-06 09:27:32.000000000 +0000 @@ -2,5 +2,5 @@

[(#OBJET|objet_info{texte_objets}|_T)]

[(#OBJET|objet_info{editable}|et{#AUTORISER{creer,#OBJET}}) - [(#REM|generer_url_ecrire_entite_edit{#OBJET}|parametre_url{new,oui}|icone_verticale{[(#OBJET|objet_info{texte_creer}|_T)],[(#OBJET|objet_info{icone_objet})],new,right})] + [(#REM|generer_objet_url_ecrire_edit{#OBJET}|parametre_url{new,oui}|icone_verticale{[(#OBJET|objet_info{texte_creer}|_T)],[(#OBJET|objet_info{icone_objet})],new,right})] ] diff -Nru spip-4.4.11+dfsg/prive/formulaires/editer_liens.html spip-4.4.13+dfsg/prive/formulaires/editer_liens.html --- spip-4.4.11+dfsg/prive/formulaires/editer_liens.html 2026-02-27 09:37:44.000000000 +0000 +++ spip-4.4.13+dfsg/prive/formulaires/editer_liens.html 2026-03-06 09:27:32.000000000 +0000 @@ -20,10 +20,10 @@

[(#ENV{objet_source}|objet_info{texte_ajouter}|_T)]

[(#AUTORISER{creer,#ENV{objet_source}}|oui) - [(#REM|generer_url_ecrire_entite_edit{#ENV{objet_source}} - |parametre_url{associer_objet,#ENV{objet}|concat{'|',#ENV{id_objet}}} - |parametre_url{redirect,#SELF|parametre_url{dummy,'','&'}} - |icone_horizontale{[(#ENV{objet_source}|objet_info{texte_creer_associer}|_T)],#ENV{objet_source},new,right})] + [(#REM|generer_objet_url_ecrire_edit{#ENV{objet_source}} + |parametre_url{associer_objet,#ENV{objet}|concat{'|',#ENV{id_objet}}} + |parametre_url{redirect,#SELF|parametre_url{dummy,'','&'}} + |icone_horizontale{[(#ENV{objet_source}|objet_info{texte_creer_associer}|_T)],#ENV{objet_source},new,right})] ]