Автор оригинала: rudik
1. Интересно было бы услышать о том, как можно похакать Apache, который запущен от root и пропатчен на запуск каждого ответа под uid/gid пользователя?
это вы про статью
http://php4you.kiev.ua/docs/dk/apache_hack.html ?
я явно поторопился добавить коментарий про то что патч "грамотный".
vfork() использовать там категорически нельзя! по крайней мере так как предлагает автор. последствия очевидны - непревилегированный пользователь сравнительно просто может получить права root.
как ? так :
vfork() отличается от fork() тем что адресное пространство для обоих процессов - одно. при том, один процесс остается привелегированным, а другой нет. сама атака мне представляется следующим образом :
1) подгружаем свой extension
2) размещаем shell код (malloc подойдет)
3) бежим по фреймам стека вверх и меняем все адреса возврата на shell код.
4) делаем exit()
5) рутовый apache выходит из vfork() и делает return прямо на наш код. вуаля.
workaround - safe_mode в котором гораздо сложнее исполнить свой код.