On 2007-01-27 16:12:53 +0100, noreply@asyd.net wrote:
+ <code bash> + #!/bin/sh + # (c) 2005 Smeï & Loïs + # + # Purge les mails de MAILER-DAEMON en deferred, avec un score SpamAssassin + # + TMPFILE=/tmp/clean.queue.$$ + DEFERDIR=/var/spool/postfix/deferred + + test -e /usr/sbin/postqueue && { + echo "=====================================" + echo "Début Purge deferred" + echo + echo "Mail dans la queue avant : " + postqueue -p | tail -1 + + # collect the filenames + mailq | grep MAILER-DAEMON | cut -f1 -d ' ' | grep -v *$ > $TMPFILE
Le *$ n'a, me semble-t-il, aucun sens, ou alors c'est un bashisme qu'il faut éviter. D'autre part, ce script contient un énorme trou de sécurité: le fichier $TMPFILE peut exister déjà et être protégé contre l'écriture (e.g. création d'un certain nombre de fichiers par un utilisateur mal intentionné), si bien que la redirection échoue, mais comme le script continue, un utilisateur lambda peut peut-être en prendre le contrôle avec des caractères spéciaux dans le fichier $TMPFILE.
+ # mailq | grep bounces@listes | cut -f1 -d ' ' | grep -v *$ > $TMPFILE + + for DEFERFILE in `cat $TMPFILE` + do + FILEPATH=`find $DEFERDIR -name $DEFERFILE` [...]
Ici l'utilisateur mal intentionné contrôle ce que contient $DEFERFILE. Vu que la commande find peut exécuter des commandes (option -exec), je pense que ce trou de sécurité est bien exploitable. -- Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)