CVE-2026-33186

CRITICAL CVSS 3.1: 9,1 EPSS 0.02%
Обновлено 10 апреля 2026
Grpc
Параметр Значение
CVSS 9,1 (CRITICAL)
Уязвимые версии до 1.79.3
Устранено в версии 1.79.3
Тип уязвимости CWE-285 (Некорректная авторизация)
Поставщик Grpc
Публичный эксплойт Нет

gRPC-Go — это реализация gRPC на языке Go. В версиях до 1.79.3 имеется обход авторизации, возникающий из-за неправильной проверки ввода псевдозаголовка `:path` HTTP/2. Сервер gRPC-Go был слишком мягок в своей логике маршрутизации, принимая запросы, в которых в `:path` опущена обязательная начальная косая черта (например, `Service/Method` вместо `/Service/Method`).

Хотя сервер успешно перенаправил эти запросы правильному обработчику, перехватчики авторизации (включая официальный пакет grpc/authz) оценили необработанную, неканоническую строку пути. Следовательно, правила «запретить», определенные с использованием канонических путей (начинающихся с `/`), не смогли соответствовать входящему запросу, что позволило ему обойти политику, если присутствовало резервное правило «разрешения». Это влияет на серверы gRPC-Go, которые используют перехватчики авторизации на основе пути, такие как официальная реализация RBAC в `google.golang.org/grpc/authz` или пользовательские перехватчики, использующие `info.FullMethod` или `grpc.Method(ctx)`; И политика безопасности содержит определенные правила «запрета» для канонических путей, но разрешает другие запросы по умолчанию (резервное правило «разрешения»).

Эта уязвимость может быть использована злоумышленником, который может отправлять необработанные кадры HTTP/2 с неверными заголовками `:path` непосредственно на сервер gRPC. Исправление в версии 1.79.3 гарантирует, что любой запрос с `:path`, который не начинается с косой черты, немедленно отклоняется с ошибкой `codes.Unimplemented`, не позволяя ему достичь перехватчиков авторизации или обработчиков с неканонической строкой пути. Хотя обновление является наиболее безопасным и рекомендуемым путем, пользователи могут снизить уязвимость, используя один из следующих методов: использовать проверяющий перехватчик (рекомендуемое средство устранения); нормализация на уровне инфраструктуры; и/или ужесточение политики.

Показать оригинальное описание (EN)

gRPC-Go is the Go language implementation of gRPC. Versions prior to 1.79.3 have an authorization bypass resulting from improper input validation of the HTTP/2 `:path` pseudo-header. The gRPC-Go server was too lenient in its routing logic, accepting requests where the `:path` omitted the mandatory leading slash (e.g., `Service/Method` instead of `/Service/Method`). While the server successfully routed these requests to the correct handler, authorization interceptors (including the official `grpc/authz` package) evaluated the raw, non-canonical path string. Consequently, "deny" rules defined using canonical paths (starting with `/`) failed to match the incoming request, allowing it to bypass the policy if a fallback "allow" rule was present. This affects gRPC-Go servers that use path-based authorization interceptors, such as the official RBAC implementation in `google.golang.org/grpc/authz` or custom interceptors relying on `info.FullMethod` or `grpc.Method(ctx)`; AND that have a security policy contains specific "deny" rules for canonical paths but allows other requests by default (a fallback "allow" rule). The vulnerability is exploitable by an attacker who can send raw HTTP/2 frames with malformed `:path` headers directly to the gRPC server. The fix in version 1.79.3 ensures that any request with a `:path` that does not start with a leading slash is immediately rejected with a `codes.Unimplemented` error, preventing it from reaching authorization interceptors or handlers with a non-canonical path string. While upgrading is the most secure and recommended path, users can mitigate the vulnerability using one of the following methods: Use a validating interceptor (recommended mitigation); infrastructure-level normalization; and/or policy hardening.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Не требуются
Права не нужны
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Нет
Нет нарушения работы

Строка CVSS v3.1

Уязвимые продукты 1

Конфигурация От (включительно) До (исключительно)
Grpc Grpc
cpe:2.3:a:grpc:grpc:*:*:*:*:*:go:*:*
1.79.3

Связанные уязвимости