Является ли файл php с битом SGID и доступом только для чтения и выполнения проблемой безопасности?

Является ли файл php с битом SGID и доступом только для чтения и выполнения проблемой безопасности?

Я нахожу php-файлы сБит SGID и только для чтения и выполнения. Группа - этокорень. Это проблема?

Поскольку пользователю необходимо будет запустить интерпретатор PHP с использованием своей учетной записи, может ли это привести к повышению привилегий?

Нравится, пользовательwww-данныебегPHP-файлкакwww-данныеи вызовите файл с помощьюSGID бит, мог ли он стать root?

php path/to/file.php

решение1

Да; sgid:root запустит файл от имени пользователя root, если он запущен непосредственно в ОС с включенным sgid-on-!#, и если файл php может быть обманут и будет записан в произвольный файл из-за отсутствия очистки ввода и т. д.

Это большое «ЕСЛИ», но рекомендуется использовать глубокую защиту, поскольку ошибок много.

Тестовый образец;

./test.php && whoami
root
www-data

Где test.php содержит

#!/usr/bin/php
echo exec('whoami');

Разрешить setuid для скриптов оболочки

Отмечает, как современные реализации предлагают интересные способы использования преимуществ sgid.

https://www.in-ulm.de/~mascheck/various/shebang/#setuid

Обратите внимание, что атака #! simlink была проблемой с 1983 по 1993 год, до этого shebang не поддерживался, а после этого был реализован более безопасно.

Связанный контент