Re: чтение чужих файлов: не стоит патчить

Maxim Dounin mdounin на mdounin.ru
Сб Ноя 26 11:53:23 UTC 2011


Hello!

On Sat, Nov 26, 2011 at 03:20:51PM +0400, Igor Sysoev wrote:

> On Sat, Nov 26, 2011 at 03:16:27PM +0400, Igor Sysoev wrote:
> 
> > Это патч использует realpath(3), а не гипотетический realpath(2)
> > и имеет те же проблемы, что FollowSymLink в Апаче. То есть,
> > 100% защиты не даёт, а даёт лишь иллюзию защищённости.
> 
> Впрочем, realpath(2) тоже не поможет, потому что между open(2)
> и realpath(2) есть возможность убрать линк.

Или, наоборот, добавить, если проверка делается до open().

Как уже неоднократно говорено, в том числе в этой рассылке, 
варианты приблизительно такие:

1. Использовать mount -o nosymfollow.

2. Сделать и использовать соответствующий флаг для open() в 
операционной системе (a la O_NOFOLLOW_ALL).

3. Использовать цепочку из openat(O_NOFOLLOW).

Вариант (3), в принципе, на большинстве операционных систем сейчас 
реализуем.

Maxim Dounin



Подробная информация о списке рассылки nginx-ru