# V5318. OWASP. Setting POSIX file permissions to 'all' or 'others' groups can lead to unintended access to files or directories.

Анализатор обнаружил, что в приложении файлам задаются свободные права доступа, а именно доступ группе `others`.

Уязвимости, связанные с заданием свободных прав доступа к файлам, могут быть отнесены к следующей категории OWASP Top 10 2021:

- A1: Broken Access Control
- A4: Insecure Design

Группа `others` относится ко всем пользователям и группам (кроме владельца ресурса). Установка этой группе прав к ресурсу может привести к возможности несанкционированного доступа.

Рассмотрим пример:

    public void example() throws IOException {
        Path path = Path.of("/path/to/resource");
        Files.setPosixFilePermissions(
            path,
            PosixFilePermissions.fromString("rwxrwxrwx")
        );
    }

В этом примере к ресурсу по пути `path` получает доступ (чтение, запись и исполнение) не только владелец, но и все остальные пользователи. Это нарушает принцип минимальных привилегий.

О максимальном ограничении доступа к файлам и директориям необходимо серьёзно задумываться, если они содержат конфиденциальную информацию.

Даже если это не критический ресурс, безопасным вариантом является установка прав на файл пользователю и группе, но не `others`:

    public void example() throws IOException {
        Path path = Path.of("/path/to/resource");
        Files.setPosixFilePermissions(
            path,
            PosixFilePermissions.fromString("rwxrwx---")
        );
    }

Анализатор также сформирует предупреждение на вызов команды `chmod` с установкой свободных прав:

    public void example() throws IOException {
        Runtime.getRuntime().exec("chmod a+rw resource.json");
    }

Аргумент `a+rw` означает добавление (+) прав чтения и записи (rw) для всех (a). Безопасным же вариантом является, например, следующая команда:

    public void example() throws IOException {
        Runtime.getRuntime().exec("chmod o-rwx,u+rw resource.json");
    }

В этом варианте у группы 'others' удаляются все права, а права на чтение и запись выдаются лишь пользователю.

Выявляемые диагностикой ошибки классифицируются согласно ГОСТ Р 71207–2024 как критические и относятся к типу: Ошибки некорректного использования системных процедур и интерфейсов, связанных с обеспечением информационной безопасности (шифрования, разграничения доступа и пр.).

Данная диагностика классифицируется как:

CWE-266 CWE-276 OWASP-4.1.3 CERT-FIO01-J