PVS-Studio.com logo
>
>
>
V5328. OWASP. Using non-restrictive aut…


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

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

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

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

Например, реализация метода 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 как критические и относятся к типу: Ошибки некорректного использования системных процедур и интерфейсов, связанных с обеспечением информационной безопасности (шифрования, разграничения доступа и пр.).

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