Ad

CVE-2026-49473

HIGH CVSS 3.1: 8,8 EPSS 0.28%
Обновлено 13 августа 2026
Express
Параметр Значение
CVSS 8,8 (HIGH)
Уязвимые версии до 0.3.0
Устранено в версии 0.30
Тип уязвимости CWE-436, CWE-863 (Неправильная авторизация)
Поставщик Express
Публичный эксплойт Нет

@cedar-policy/authorization-for-expressjs — это промежуточное программное обеспечение Express.js с открытым исходным кодом, которое интегрирует авторизацию Cedar в приложения Express, сопоставляя HTTP-запросы с действиями Cedar и оценивая политики авторизации, прежде чем разрешить обработку запросов. В версиях до 0.3.0 возникает проблема, из-за которой при определенных обстоятельствах промежуточное программное обеспечение сопоставляет входящие запросы с сопоставлениями действий Cedar, используя req.originalUrl, который включает строку запроса, в то время как Express маршрутизирует запросы, используя только компонент пути. Промежуточное программное обеспечение использует req.originalUrl для сопоставления входящих запросов с сопоставлениями действий Cedar.

В Express req.originalUrl включает строку запроса, а при сопоставлении маршрутов используется только путь. Это создает расхождение между тем, что разрешает Cedar, и тем, что выполняет Express. Когда приложение определяет отдельные действия для перекрытия префиксов путей с различными требованиями к авторизации (например, GET /users для перечисления всех пользователей с доступом только администратора и GET /users/{id} для получения одного пользователя с любым доступом, прошедшим проверку подлинности), субъект может добавить строку запроса, чтобы обойти более ограничительную политику.

Отправка GET /users/?x=1 заставляет промежуточное программное обеспечение сопоставлять /users/{id} (с параметром id, установленным в ?x=1) и оценивать менее ограничительное действие, в то время как Express направляет запрос обработчику списка /users. Это обеспечивает неправомерный доступ к более ограничительной конечной точке. Эта проблема решена в версии 0.30.

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

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

@cedar-policy/authorization-for-expressjs is an open-source Express.js middleware that integrates Cedar authorization into Express applications by mapping HTTP requests to Cedar actions and evaluating authorization policies before allowing requests to proceed. Versions prior to 0.3.0 have an issue where, under certain circumstances, the middleware matches incoming requests against Cedar action mappings using req.originalUrl, which includes the query string, while Express routes requests using only the path component. The middleware uses req.originalUrl to match incoming requests against Cedar action mappings. In Express, req.originalUrl includes the query string, while route matching uses only the path. This creates a divergence between what Cedar authorizes and what Express executes. When an application defines separate actions for overlapping path prefixes with different authorization requirements (for example, GET /users for listing all users with admin-only access, and GET /users/{id} for retrieving a single user with any authenticated user access), an actor can append a query string to bypass the more restrictive policy. Sending GET /users/?x=1 causes the middleware to match against /users/{id} (with id parameter set to ?x=1) and evaluate the less restrictive action, while Express routes the request to the /users list handler. This allows inappropriate access to the more restrictive endpoint. This issue has been addressed in version 0.30. Some workarounds are available. Validate and sanitize incoming request paths before they reach the authorization middleware. Ensure that applications do not rely solely on the middleware for authorization when defining multiple actions on overlapping path prefixes with different permission levels.

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

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

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1