Несколько новых проблем безопасности:
- Продемонстрирована (http://www.catonmat.net/blog/ldd-arbitrary-code-execution/) возможность создания исполняемого файла, для которого при просмотре связанных библиотек через утилиту ldd будет выполнен код злоумышленника. Например, типичный пример социальной инжененрии - пользователь хостинга или злоумышленник от его имени создает специальный исполняемый файл, звонит администратору и жалуется, что программа неработает. Администратор первым делом набирает ldd и сообщает пользователю, что не хватает библиотеки N, пользователь говорит спасибо, а администратор даже не подозревает, что только что запустил со своими правами код злоумышленника.- В Perl 5.10.1 подтверждено (http://secunia.com/advisories/37144/) наличие DoS уязвимости: передав некорректную UTF-8 строку злоумышленник может (http://rt.perl.org/rt3//Public/Bug/Display.html?id=69973) вызвать крах интерпретатора, при обработке этой строки внутри регулярного выражения в режиме игно...
URL:
Новость: http://www.opennet.me/opennews/art.shtml?num=23998
За описание первой уязвимости спасибо. Теперь будем su - nobody/user и ldd. Ну или runuser/sudo xxx ldd по вкусу )
у пользователя админа могут быть свои интересные права, которыми можно воспользоваться. например подменить что-то запускающееся админом с использованием sudo. но это уже так, на подумать.
>у пользователя админа могут быть свои интересные права, которыми можно воспользоваться. например
>подменить что-то запускающееся админом с использованием sudo. но это уже так,
>на подумать.А можно чуть по-подробнее? В свете вышеописанной уязвимости не совсем понял ваш пост.
>>у пользователя админа могут быть свои интересные права, которыми можно воспользоваться. например
>>подменить что-то запускающееся админом с использованием sudo. но это уже так,
>>на подумать.
>
>А можно чуть по-подробнее? В свете вышеописанной уязвимости не совсем понял ваш
>пост.В смысле я не понял вас, про какую-то конфигурацию с подменой чего-то вы говорите.
Можно добавить такую функцию в ~/.bashrcldd() {
local INTERP[ -n "$1" ] || [ -f "$1" ] || return 0
INTERP=$(/usr/bin/readelf -e "$1" | /bin/sed -n -e 's|^\s*\[Requesting program interpreter: \(.*\)\]$|\1|p')
case "$INTERP" in
"/lib/ld-linux.so.2" | "/lib64/ld-linux-x86-64.so.2" )
/usr/bin/ldd "$1"
;;
* )
echo "Warning!!!"
echo "Requesting program interpreter: $INTERP"
esac
}