# V5328. OWASP. Using non-restrictive authorization checks could lead to security violations.

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

Уязвимости такого типа относятся к категории рисков OWASP Top 10 Application Security Risks 2021:

- A1:2021 - Broken Access Control

Предполагается, что при проверке авторизации метод, принимающий решение, может отказать в авторизации в случае, если пользователь не имеет необходимых привилегий. Если же реализация не предусматривает отказа в авторизации, такой метод считается небезопасным, а проверка — ненадежной.

Например, реализация метода `vote` из класса `AccessDecisionVoter` возвращает всегда положительный ответ, даже в случае, если пользователь не имеет нужных привилегий:

    @Override
    public int vote(Authentication authentication,
                    FilterInvocation filterInvocation,
                    Collection<ConfigAttribute> attributes
      ) {
      boolean isAdmin = hasAdminRole(authentication);
      String requestMethod = filterInvocation.getRequest().getMethod();
      if ("DELETE".equals(requestMethod) && !isAdmin) {
        return ACCESS_GRANTED;
      }
      return ACCESS_GRANTED;
    }

Реализация считается безопасной, если она возвращает хотя бы одно отрицательное решение:

    @Override
    public int vote(Authentication authentication,
                    FilterInvocation filterInvocation,
                    Collection<ConfigAttribute> attributes
      ) {
      boolean isAdmin = hasAdminRole(authentication);
      String requestMethod = filterInvocation.getRequest().getMethod();
      if ("DELETE".equals(requestMethod) && !isAdmin) {
        return ACCESS_DENIED;
      }
      return ACCESS_GRANTED;
    }

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

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

CWE-285 OWASP-4.1.5