Thursday, December 06, 2007

CRACHE PAS DANS MON COREDUMP #@!

3 ans et 2 mois...

C'est le temps qu'il a fallu aux jardiniers du kernel linux pour corriger une fichue faille de sayku sur la génération des coredumps. « BEIN OUAIS LINUX SAY SAYKURE »

Explication avec un exemple àlakon:

(clem1@clem1:/tmp)$ ./haha coin
Erreur de segmentation (core dumped)
(clem1@clem1:/tmp)$ strings core | grep coin
./haha coin
(clem1@clem1:/tmp)$ ls -alh core
-rw------- 1 clem1 clem1 140K 2007-12-06 14:16 core


(clem1@clem1:/tmp)$ su
clem1:/tmp# ./haha phucklinusk
Erreur de segmentation (core dumped)
clem1:/tmp# ls -alh core
-rw------- 1 clem1 clem1 140K 2007-12-06 14:17 core
clem1:/tmp# exit
exit
(clem1@clem1:/tmp)$ strings core | grep linusk
./haha phucklinusk


Bon OK, c'est une faille moisie mais bon le patch est trivial (plus de commentaires que de codaje) et je ne comprend pas pourquoi ils ont mis 3 ans pour la corriger.


if (inode->i_uid != current->fsuid)
   goto close_fail;


Elle a été corrigée dans la dernière RC du 2.6.24... et pour les workarounds moisis c'est par

clem1:/tmp# echo 1 > /proc/sys/kernel/core_uses_pid

ou mieux

clem1:/tmp# echo "/cores/%N/%H.core.%P" > /proc/sys/kernel/core_name_format

Il est a noté que FreeBSD est également vulnérable et que la faille a été reportée au même moment que celle dans minusk...

Ceci était un billet àlakon (pour pas changer) pour signaler que j'étais toujours en vie... vive les parisiens.