The Wayback Machine - https://web.archive.org/all/20060820095021/http://www.dotclear.net:80/forum/viewtopic.php?id=18707

DotClear

Forum DotClear - DotClear 2

Vous n'êtes pas connecté.

#1 2006-06-06 01:21:10

olivier
Gentil dictateur
Date d'inscription: 2004-10-12
Messages: 1258152

DotClear 1.2.5 - Sécurité

DotClear passe en version 1.2.5 pour corriger une faille de sécurité divulguée hier. La faille est exploitable dans le cas d'un serveur configuré avec le paramètre "register_globals" et "allow_url_fopen" à "on". Dans ce cas, il est possible d'appeler un fichier particulier de dotclear et de l'utiliser pour inclure un fichier d'un autre serveur. Si vous avez suffisament d'imagination vous savez ce qu'il est possible de faire de ça.

La mise à jour est vivement recommandée. Vous pouvez également ne changer que le fichier inc/magic_strip.php, c'est suffisant et fonctionne même sur les plus vieilles installations de DotClear.

L'exploit ayant été révélé avant de nous prévenir, je ne citerai ni ne remercierai cette personne dont le comportement est simplement imbécile vis à vis de tous les utilisateurs.

Bonne mise à jour :)


La seule difference entre un fou et moi, c'est que je ne suis pas fou. (Dali)

Hors ligne

 

#2 2006-06-06 01:44:00

HP
Member
Date d'inscription: 2004-10-27
Messages: 865
Site web

Re: DotClear 1.2.5 - Sécurité

olivier a écrit:

DotClear passe en version 1.2.5 pour corriger une faille de sécurité divulguée hier. La faille est exploitable dans le cas d'un serveur configuré avec le paramètre "register_globals" et "allow_url_fopen" à "on".

bon bé  "register_globals" à on c'est un peu checher les ennuis ...
donc pas d'urgence si on est sur off ?


«Chaque situation nouvelle, chaque problème à résoudre
amène avec lui l'opportunité rare d'apprendre quelque chose de nouveau.»
Olivier Lockert

Hors ligne

 

#3 2006-06-06 01:49:27

Pep
Member
Date d'inscription: 2004-08-25
Messages: 3308
Site web

Re: DotClear 1.2.5 - Sécurité

HP a écrit:

donc pas d'urgence si on est sur off ?

Pas particulièrement. Et encore moins si on n'est pas hébergé en PHP5.


Le troll c'est bon, mangez en !
Expert Soon™ et Vaporware™.

Hors ligne

 

#4 2006-06-06 06:38:33

Kozlika
Modérateur fille ★
Date d'inscription: 2004-05-08
Messages: 12149
Site web

Re: DotClear 1.2.5 - Sécurité

olivier a écrit:

Vous pouvez également ne changer que le fichier inc/magic_strip.php, c'est suffisant et fonctionne même sur les plus vieilles installations de DotClear.

Dis, monsieur, on devrait pas changer le fichier VERSION aussi (pour ceux déjà en 1.2.4) ?
j'dis ça, j'dis rien hein...


La réponse à votre question est peut-être dans la documentation wiki : http://www.dotclear.net/trac/wiki/TitleIndex - le Petit DotClear illustré : http://petit.dotclear.net - ou sur ce forum : http://www.dotclear.net/forum/search.php ?

Hors ligne

 

#5 2006-06-06 06:50:38

Cédric H.
Member
Date d'inscription: 2006-06-06
Messages: 10

Re: DotClear 1.2.5 - Sécurité

Bravo pour ta réactivité Olivier (et toute l'équipe) !

Hors ligne

 

#6 2006-06-06 07:05:01

Cédric H.
Member
Date d'inscription: 2006-06-06
Messages: 10

Re: DotClear 1.2.5 - Sécurité

Je n'ai pas fort envie de recommencer toute une procédure de mise à jour...

Pourrais tu nous dire quels sont les fichiers qui ont été modifiés ? Vu que c'est une toute petite mise à jour ça ne devrait pas poser de problèmes non ?

Hors ligne

 

#7 2006-06-06 07:10:14

Kozlika
Modérateur fille ★
Date d'inscription: 2004-05-08
Messages: 12149
Site web

Re: DotClear 1.2.5 - Sécurité

Cédric H. > et si tu relisais le message d'Olivier ? ;-)


La réponse à votre question est peut-être dans la documentation wiki : http://www.dotclear.net/trac/wiki/TitleIndex - le Petit DotClear illustré : http://petit.dotclear.net - ou sur ce forum : http://www.dotclear.net/forum/search.php ?

Hors ligne

 

#8 2006-06-06 07:12:40

Cédric H.
Member
Date d'inscription: 2006-06-06
Messages: 10

Re: DotClear 1.2.5 - Sécurité

Mouai, tout bien réfléchi j'aurais mieux fait de me taire ;)

Hors ligne

 

#9 2006-06-06 08:37:02

obergix
New member
Date d'inscription: 2005-03-17
Messages: 7

Re: DotClear 1.2.5 - Sécurité

Cédric H. a écrit:

Je n'ai pas fort envie de recommencer toute une procédure de mise à jour...

Pourrais tu nous dire quels sont les fichiers qui ont été modifiés ? Vu que c'est une toute petite mise à jour ça ne devrait pas poser de problèmes non ?

Un petit diff sur le contenu des archives, et hop :

Les fichiers dotclear-1.2.4/CHANGELOG et dotclear-1.2.5/CHANGELOG sont différents.
Les fichiers dotclear-1.2.4/inc/libs/lib.util.php et dotclear-1.2.5/inc/libs/lib.util.php sont différents.
Les fichiers dotclear-1.2.4/inc/magic_strip.php et dotclear-1.2.5/inc/magic_strip.php sont différents.
Les fichiers dotclear-1.2.4/layout/prepend.php et dotclear-1.2.5/layout/prepend.php sont différents.
Les fichiers dotclear-1.2.4/LISEZMOI.txt et dotclear-1.2.5/LISEZMOI.txt sont différents.
Les fichiers dotclear-1.2.4/VERSION et dotclear-1.2.5/VERSION sont différents.

Bonne mise-à-jour.

Hors ligne

 

#10 2006-06-06 08:58:21

Dsls
Modérateur en ouacances
Date d'inscription: 2004-11-18
Messages: 2837
Site web

Re: DotClear 1.2.5 - Sécurité

Hmmm ... j'aurais une remarque d'ordre plus général sur l'aspect sécurité : il y a un paquet de fichiers .php fournis par dotclear qui font uniquement l'objet d'une inclusion via d'autres fichiers du moteur (tous les php des thèmes et plugins, les fichiers include, ...). La plupart du temps, leur appel en direct échoue parce que certaines variables n'ont pas été préalablement définies. Je n'ai pas cherché plus que ça, si ça se trouve, je sors des énormités, hein ...

Une idée en l'air : serait-il pertinent d'ajouter au tout début de ces fichiers un bout de code faisant un exit() violent si une variable globale (définie par toutes les pages accessibles via un browser) n'est pas définie ? C'est certes une programmation quelque peu défensive, mais ça permettrait de prendre un peu d'avance sur d'éventuels petits soucis... je pense notamment à tous les plugins qu'il est difficile d'auditer en profondeur, et qui pourraient receler de petites failles inexplorées ...

A moins qu'il n'y ait un moyen via des .htaccess de limiter l'entrés à certains fichiers ...


Dyslexics have more fnu!

Hors ligne

 

#11 2006-06-06 09:13:55

Kozlika
Modérateur fille ★
Date d'inscription: 2004-05-08
Messages: 12149
Site web

Re: DotClear 1.2.5 - Sécurité

obergix > non juste magic_strip et VERSION.


La réponse à votre question est peut-être dans la documentation wiki : http://www.dotclear.net/trac/wiki/TitleIndex - le Petit DotClear illustré : http://petit.dotclear.net - ou sur ce forum : http://www.dotclear.net/forum/search.php ?

Hors ligne

 

#12 2006-06-06 09:35:09

vin100
Member
Date d'inscription: 2004-09-02
Messages: 134
Site web

Re: DotClear 1.2.5 - Sécurité

je confirme, il y a aussi deux petites modifs dans layout/prepend.php et dans libs/lib.util.php

dans lib.util.php 1.2.4 :

Code:

	# Obtenir l'host complet
	function getHost()
	{
		$server_name = $_SERVER['HTTP_HOST'];
		if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')
		{
			$scheme = 'https';
			$port = ($_SERVER['SERVER_PORT'] != '443') ? ':'.$_SERVER['SERVER_PORT'] : '';
		}
		else
		{
			$scheme = 'http';
			$port = ($_SERVER['SERVER_PORT'] != '80') ? ':'.$_SERVER['SERVER_PORT'] : '';
		}
		
		return $scheme.'://'.htmlspecialchars($server_name).$port;
	}

devient dans 1.2.5

Code:

	# Obtenir l'host complet
	function getHost()
	{
		$server_name = explode(':',$_SERVER['HTTP_HOST']);
		$server_name = $server_name[0];
		if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')
		{
			$scheme = 'https';
			$port = ($_SERVER['SERVER_PORT'] != '443') ? ':'.$_SERVER['SERVER_PORT'] : '';
		}
		else
		{
			$scheme = 'http';
			$port = ($_SERVER['SERVER_PORT'] != '80') ? ':'.$_SERVER['SERVER_PORT'] : '';
		}
		
		return $scheme.'://'.$server_name.$port;
	}

et dans prepend.php 1.2.4

Code:

if (!empty($_COOKIE['comment_info'])) {
	$c_cookie = unserialize($_COOKIE['comment_info']);
	$c_nom = $c_cookie['c_nom'];
	$c_mail = $c_cookie['c_mail'];
	$c_site = $c_cookie['c_site'];
}

devient dans 1.2.5

Code:

if (!empty($_COOKIE['comment_info'])) {
	if (($c_cookie = @unserialize($_COOKIE['comment_info'])) !== false) {
		if (isset($c_cookie['c_nom'])) {
			$c_nom = $c_cookie['c_nom'];
			$c_mail = $c_cookie['c_mail'];
			$c_site = $c_cookie['c_site'];
		}
	}
}

@Dsls
un peu comme ce qui est fait dans punbb ; une variable (par exemple) IN_DC pourrait être déclarée dans le config.php et en haut de tous les script inclus if(!defined('IN_DC')) exit();
enfin si j'ai bien compris ce que tu veut dire :P

Hors ligne

 

#13 2006-06-06 09:37:09

vin100
Member
Date d'inscription: 2004-09-02
Messages: 134
Site web

Re: DotClear 1.2.5 - Sécurité

"...une variable (par exemple) IN_DC..." lire "...une constante (par exemple) IN_DC..." :D (flute de fonction edit :rolleyes:)

Hors ligne

 

#14 2006-06-06 09:38:06

Kozlika
Modérateur fille ★
Date d'inscription: 2004-05-08
Messages: 12149
Site web

Re: DotClear 1.2.5 - Sécurité

Faut que le patron arrête de boire (son post ne parle que d'un fichier)
:-D


La réponse à votre question est peut-être dans la documentation wiki : http://www.dotclear.net/trac/wiki/TitleIndex - le Petit DotClear illustré : http://petit.dotclear.net - ou sur ce forum : http://www.dotclear.net/forum/search.php ?

Hors ligne

 

#15 2006-06-06 09:48:21

mpop
Member
Date d'inscription: 2006-05-01
Messages: 10

Re: DotClear 1.2.5 - Sécurité

Alors, finalement il faut changer les trois fichiers indiqués (plus VERSION, CHANGELOG et LISEZMOI.txt), ou juste un seul ?

Pour l'instant je n'en ai changé qu'un… Si ça doit tout mettre en l'air, mieux vaut me prévenir ^_^;

En tout cas bravo pour la réaction.
Publier l'exploit sans avertir l'équipe avant, c'est tout de même balot…

Hors ligne

 

#16 2006-06-06 09:48:31

AkyRhO
Member
Date d'inscription: 2004-12-09
Messages: 47

Re: DotClear 1.2.5 - Sécurité

En tout cas, c'est rapide, bravo pour cette MAJ éclair :)

Hors ligne

 

#17 2006-06-06 12:14:57

olivier
Gentil dictateur
Date d'inscription: 2004-10-12
Messages: 1258152

Re: DotClear 1.2.5 - Sécurité

Pour le changement d'un seul fichier, ce n'est pas une erreur, c'est la procédure si vous n'avez pas envie de faire toute la mise à jour et être tranquiles. Ça ne sera pas une 1.2.5 (surtout si on met à jour de cette manière une 1.0) donc il n'y a pas lieu de changer le numéro de version.


La seule difference entre un fou et moi, c'est que je ne suis pas fou. (Dali)

Hors ligne

 

#18 2006-06-06 12:19:41

Kozlika
Modérateur fille ★
Date d'inscription: 2004-05-08
Messages: 12149
Site web

Re: DotClear 1.2.5 - Sécurité

Wé, c'est ce que j'ai fini par comprendre et j'ai donc modifié le billet sur mon blog en conséquence.

Tu peux re-boire donc :-P


La réponse à votre question est peut-être dans la documentation wiki : http://www.dotclear.net/trac/wiki/TitleIndex - le Petit DotClear illustré : http://petit.dotclear.net - ou sur ce forum : http://www.dotclear.net/forum/search.php ?

Hors ligne

 

#19 2006-06-06 12:47:56

olivier
Gentil dictateur
Date d'inscription: 2004-10-12
Messages: 1258152

Re: DotClear 1.2.5 - Sécurité

Dsls, je pense utiliser le code suivant :

if(count(get_included_files())==1){exit;}

C'est assez semblable au if __name__ == "__main__" de Python. On peut aussi tester __FILE__ et SERVER['SCRIPT_NAME'] mais c'est loin d'être une science exacte :)

Reste plus qu'à tracer get_included_files() pour voir comment ça se comporte côté perfs.


La seule difference entre un fou et moi, c'est que je ne suis pas fou. (Dali)

Hors ligne

 

#20 2006-06-06 13:30:24

mpop
Member
Date d'inscription: 2006-05-01
Messages: 10

Re: DotClear 1.2.5 - Sécurité

olivier a écrit:

Pour le changement d'un seul fichier, ce n'est pas une erreur, c'est la procédure si vous n'avez pas envie de faire toute la mise à jour et être tranquiles. Ça ne sera pas une 1.2.5 (surtout si on met à jour de cette manière une 1.0) donc il n'y a pas lieu de changer le numéro de version.

Merci pour l'info :)

Et merci pour Dotclear (je pense pas l'avoir déjà écrit quelque part, donc je profite de l'occasion) !

Hors ligne

 

#21 2006-06-06 13:53:25

cymago
Invité

Re: DotClear 1.2.5 - Sécurité

j'ai modifié le plugin patch124 de la dcTeam pour mettre à jour mes blogs 1.2.4 en 1.2.5 ; suivant les indications de obergix.

le plugin patch125 (pour mettre à pour dotclear 1.2.4) ici http://cvie.free.fr/temp/ et ici http://cvie.free.fr/blog/share/

merci de vos remarques

 

#22 2006-06-06 13:58:32

olivier
Gentil dictateur
Date d'inscription: 2004-10-12
Messages: 1258152

Re: DotClear 1.2.5 - Sécurité

C'était trop compliqué de l'envoyer à Xave plutôt que tirer la couverture ?


La seule difference entre un fou et moi, c'est que je ne suis pas fou. (Dali)

Hors ligne

 

#23 2006-06-06 14:08:46

cymago
Invité

Re: DotClear 1.2.5 - Sécurité

merci de ta remarque, mais je ne voie pas ou je tire la couverture. J'ai fais des modifs que j'aurai pu garder pour moi mais que je mets à disposition des utilisateurs de dotclear. Enfin il y a des personnes à qui je ne parle plus.

 

#24 2006-06-06 14:14:24

xave
Modérateur revêche
Lieu: commun
Date d'inscription: 2004-05-06
Messages: 4431
Site web

Re: DotClear 1.2.5 - Sécurité

Tu vois Cymago, à chaque fois on a le même problème : que tu reprennes mon boulot, je m'en fous un peu. Cette fois-ci, au moins, tu n'oublies pas de préciser que ce n'est pas de toi. Mais à chaque fois, tu t'arranges pour faire ça comme un cochon. Il ya des guidelines pour les plugins Dotclear, malgré ton expérience dans le domaine, tu n'as jamais été foutu de les suivre. Ici tu n'avais qu'à reprendre le truc tel quel, et il a fallu que tu rajoutes des morceaux qui fonctionnent dans ton environnement mais vont afficher n'importe quoi chez la moitié des autres.

Franchement, si tu apprenais à coder proprement pour Dotclear, je t'assure que tes plugins n'en seraient que meilleurs.


xave, asocial assez atypique (©Koz) , en 8ème année de http://xave.org/
RTFM. / Je ne lis pas la LOL-langue. / Je suis un gars désagréable, ne me parlez pas.

Hors ligne

 

#25 2006-06-06 14:14:45

cymago
Invité

Re: DotClear 1.2.5 - Sécurité

de plus xave peut reprendre ces modifs et faire un plugin "officiel". Il n'y a aucune objection de ma part. Mon code est parfaitement libre.

 

Pied de page du Forum

Powered by PunBB