[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#736178: pu: package spip/2.1.17-1+deb7u3



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: pu

Hi release team,

This update fixes a security issue, but the security team believes it’s
not worth a DSA, would you please accept to fix CVE-2013-7303 (#736170)
via the next stable point release?

Debdiff, and actual patch to ease the review, attached.

Regards

David

-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (500, 'oldstable'), (100, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.12-1-rt-amd64 (SMP w/1 CPU core; PREEMPT)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -Nru spip-2.1.17/debian/changelog spip-2.1.17/debian/changelog
--- spip-2.1.17/debian/changelog	2013-11-02 13:52:42.000000000 -0400
+++ spip-2.1.17/debian/changelog	2014-01-20 14:37:00.000000000 -0400
@@ -1,11 +1,20 @@
+spip (2.1.17-1+deb7u3) wheezy; urgency=medium
+
+  * Document fixed #729172
+  * Document CVE in previous changelog entries
+  * Fix XSS on signature from author [CVE-2013-7303] (Closes: #736170)
+
+ -- David Prévot <taffit@debian.org>  Mon, 20 Jan 2014 14:36:37 -0400
+
 spip (2.1.17-1+deb7u2) wheezy-security; urgency=high
 
   * Fix upstream version in previous changelog entry
   * Backport patches from 2.1.24
-    - Fix CSRF on logout
-    - Fix XSS on author page
+    - Fix CSRF on logout [CVE-2013-4555]
+    - Fix XSS on author page [CVE-2013-4556]
   * Update security screen to 1.1.8
-    - Avoid PHP injection in $connect
+    - Avoid PHP injection in $connect [CVE-2013-4557]
+    (Closes: #729172)
   * Update displayed version
 
  -- David Prévot <taffit@debian.org>  Sat, 02 Nov 2013 13:02:57 -0400
@@ -14,7 +23,7 @@
 
   * Update security screen to 1.1.7, prevent abusive inscription.
   * Backport patch from 2.1.22:
-    - fix privilege escalation (Closes: #709674).
+    - fix privilege escalation (Closes: #709674) [CVE-2013-2118].
 
  -- David Prévot <taffit@debian.org>  Sat, 25 May 2013 09:29:32 -0400
 
diff -Nru spip-2.1.17/debian/patches/fix_CSRF_on_logout.patch spip-2.1.17/debian/patches/fix_CSRF_on_logout.patch
--- spip-2.1.17/debian/patches/fix_CSRF_on_logout.patch	2013-11-02 13:08:36.000000000 -0400
+++ spip-2.1.17/debian/patches/fix_CSRF_on_logout.patch	2014-01-19 22:08:33.000000000 -0400
@@ -4,7 +4,7 @@
 * ecrire/action/logout.php: Add a confirmation step on logout if there
   is no token.
 Origin: upstream, http://core.spip.org/projects/spip/repository/revisions/20874
-Bug-Debian: http://bugs.debian.org/
+Bug-Debian: http://bugs.debian.org/729172
 --- a/ecrire/action/logout.php
 +++ b/ecrire/action/logout.php
 @@ -15,44 +15,116 @@
diff -Nru spip-2.1.17/debian/patches/fix_XSS_on_author_page.patch spip-2.1.17/debian/patches/fix_XSS_on_author_page.patch
--- spip-2.1.17/debian/patches/fix_XSS_on_author_page.patch	2013-11-02 13:52:42.000000000 -0400
+++ spip-2.1.17/debian/patches/fix_XSS_on_author_page.patch	2014-01-19 22:08:33.000000000 -0400
@@ -3,7 +3,7 @@
 
 * prive/formulaires/editer_auteur.php: Do not allow any site URL
 Origin: upstream, http://core.spip.org/projects/spip/repository/revisions/20880
-Bug-Debian: http://bugs.debian.org/
+Bug-Debian: http://bugs.debian.org/729172
 --- a/ecrire/lang/ecrire_fr.php
 +++ b/ecrire/lang/ecrire_fr.php
 @@ -491,6 +491,7 @@
diff -Nru spip-2.1.17/debian/patches/fix_XSS_on_signature.patch spip-2.1.17/debian/patches/fix_XSS_on_signature.patch
--- spip-2.1.17/debian/patches/fix_XSS_on_signature.patch	1969-12-31 20:00:00.000000000 -0400
+++ spip-2.1.17/debian/patches/fix_XSS_on_signature.patch	2014-01-20 14:35:15.000000000 -0400
@@ -0,0 +1,71 @@
+From: denisb <denisb@laposte.net>
+Subject: Avoid XSS on signature from author
+
+* ecrire/inc/filtres.php, ecrire/lang/ecrire_fr.php,
+  prive/formulaires/editer_auteur.php,
+  squelettes-dist/formulaires/inscription.php: Avoid XSS on name (signature)
+  from an author. [CVE-2013-7303]
+Origin: upstream, http://core.spip.org/projects/spip/repository/revisions/20972
+Bug-Debian: http://bugs.debian.org/736170
+--- a/ecrire/inc/filtres.php
++++ b/ecrire/inc/filtres.php
+@@ -1601,6 +1601,22 @@
+ 	return ($mod?$nb%$mod:0)+$add;
+ }
+ 
++/**
++ * Vérifie qu'un nom (d'auteur) ne comporte pas d'autres tags que <multi>
++ *
++ * @param string $nom
++ *      Nom (signature) proposé
++ * @return bool
++ *      - false si pas conforme,
++ *      - true sinon
++**/
++function nom_acceptable($nom) {
++	if (!is_string($nom)) {
++		return false;
++	}
++	$v_nom = str_replace(array('@multi@','@/multi@'), array('<multi>','</multi>'), supprimer_tags(str_replace(array('<multi>','</multi>'), array('@multi@','@/multi@'), $nom)));
++	return str_replace('&lt;', '<', $v_nom) == $nom;
++}
+ 
+ // Verifier la conformite d'une ou plusieurs adresses email
+ //  retourne false ou la  normalisation de la derniere adresse donnee
+--- a/ecrire/lang/ecrire_fr.php
++++ b/ecrire/lang/ecrire_fr.php
+@@ -489,6 +489,7 @@
+ 'info_multi_secteurs' => '... seulement pour les rubriques situ&eacute;es &agrave; la racine&nbsp;?',
+ 'info_nom' => 'Nom',
+ 'info_nom_destinataire' => 'Nom du destinataire',
++'info_nom_pas_conforme' => 'les tags html ne sont pas autoris&eacute;s',
+ 'info_nom_site' => 'Nom de votre site',
+ 'info_nom_site_2' => '<b>Nom du site</b> [Obligatoire]',
+ 'info_url_site_pas_conforme' => 'l\'URL du site n\'est pas valide.',
+--- a/prive/formulaires/editer_auteur.php
++++ b/prive/formulaires/editer_auteur.php
+@@ -75,9 +75,12 @@
+ 	$auth_methode = ($auth_methode ? $auth_methode : 'spip');
+ 	include_spip('inc/auth');
+ 	include_spip('inc/autoriser');
++	include_spip('inc/filtres');
+ 
++	if (!nom_acceptable(_request('nom'))) {
++		$erreurs['nom'] = _T("info_nom_pas_conforme");
++	}
+ 	if ($email = _request('email')){
+-		include_spip('inc/filtres');
+ 		// un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
+ 		if (!autoriser('modifier','auteur',$id_auteur,null,array('email'=>'?'))
+ 			AND $GLOBALS['visiteur_session']['id_auteur']==$id_auteur
+--- a/squelettes-dist/formulaires/inscription.php
++++ b/squelettes-dist/formulaires/inscription.php
+@@ -35,6 +35,8 @@
+ 
+ 	if (!$nom = _request('nom_inscription'))
+ 		$erreurs['nom_inscription'] = _T("info_obligatoire");
++	elseif (!nom_acceptable(_request('nom_inscription')))
++		$erreurs['nom_inscription'] = _T("ecrire:info_nom_pas_conforme");
+ 	if (!$mail = _request('mail_inscription'))
+ 		$erreurs['mail_inscription'] = _T("info_obligatoire");
+ 	
diff -Nru spip-2.1.17/debian/patches/series spip-2.1.17/debian/patches/series
--- spip-2.1.17/debian/patches/series	2013-11-02 13:52:42.000000000 -0400
+++ spip-2.1.17/debian/patches/series	2014-01-19 22:08:33.000000000 -0400
@@ -5,3 +5,4 @@
 fix_privilege_escalation_2.1.21.patch
 fix_CSRF_on_logout.patch
 fix_XSS_on_author_page.patch
+fix_XSS_on_signature.patch
From: denisb <denisb@laposte.net>
Subject: Avoid XSS on signature from author

* ecrire/inc/filtres.php, ecrire/lang/ecrire_fr.php,
  prive/formulaires/editer_auteur.php,
  squelettes-dist/formulaires/inscription.php: Avoid XSS on name (signature)
  from an author. [CVE-2013-7303]
Origin: upstream, http://core.spip.org/projects/spip/repository/revisions/20972
Bug-Debian: http://bugs.debian.org/736170
--- a/ecrire/inc/filtres.php
+++ b/ecrire/inc/filtres.php
@@ -1601,6 +1601,22 @@
 	return ($mod?$nb%$mod:0)+$add;
 }
 
+/**
+ * Vérifie qu'un nom (d'auteur) ne comporte pas d'autres tags que <multi>
+ *
+ * @param string $nom
+ *      Nom (signature) proposé
+ * @return bool
+ *      - false si pas conforme,
+ *      - true sinon
+**/
+function nom_acceptable($nom) {
+	if (!is_string($nom)) {
+		return false;
+	}
+	$v_nom = str_replace(array('@multi@','@/multi@'), array('<multi>','</multi>'), supprimer_tags(str_replace(array('<multi>','</multi>'), array('@multi@','@/multi@'), $nom)));
+	return str_replace('&lt;', '<', $v_nom) == $nom;
+}
 
 // Verifier la conformite d'une ou plusieurs adresses email
 //  retourne false ou la  normalisation de la derniere adresse donnee
--- a/ecrire/lang/ecrire_fr.php
+++ b/ecrire/lang/ecrire_fr.php
@@ -489,6 +489,7 @@
 'info_multi_secteurs' => '... seulement pour les rubriques situ&eacute;es &agrave; la racine&nbsp;?',
 'info_nom' => 'Nom',
 'info_nom_destinataire' => 'Nom du destinataire',
+'info_nom_pas_conforme' => 'les tags html ne sont pas autoris&eacute;s',
 'info_nom_site' => 'Nom de votre site',
 'info_nom_site_2' => '<b>Nom du site</b> [Obligatoire]',
 'info_url_site_pas_conforme' => 'l\'URL du site n\'est pas valide.',
--- a/prive/formulaires/editer_auteur.php
+++ b/prive/formulaires/editer_auteur.php
@@ -75,9 +75,12 @@
 	$auth_methode = ($auth_methode ? $auth_methode : 'spip');
 	include_spip('inc/auth');
 	include_spip('inc/autoriser');
+	include_spip('inc/filtres');
 
+	if (!nom_acceptable(_request('nom'))) {
+		$erreurs['nom'] = _T("info_nom_pas_conforme");
+	}
 	if ($email = _request('email')){
-		include_spip('inc/filtres');
 		// un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
 		if (!autoriser('modifier','auteur',$id_auteur,null,array('email'=>'?'))
 			AND $GLOBALS['visiteur_session']['id_auteur']==$id_auteur
--- a/squelettes-dist/formulaires/inscription.php
+++ b/squelettes-dist/formulaires/inscription.php
@@ -35,6 +35,8 @@
 
 	if (!$nom = _request('nom_inscription'))
 		$erreurs['nom_inscription'] = _T("info_obligatoire");
+	elseif (!nom_acceptable(_request('nom_inscription')))
+		$erreurs['nom_inscription'] = _T("ecrire:info_nom_pas_conforme");
 	if (!$mail = _request('mail_inscription'))
 		$erreurs['mail_inscription'] = _T("info_obligatoire");
 	

Attachment: signature.asc
Description: Digital signature


Reply to: