CVE-2026-49473 in Authorization for Expressjs
要約
〜によって VulDB • 2026年08月13日
@cedar-policy/authorization-for-expressjs は、HTTP リクエストを Cedar アクションにマッピングし、リクエストの処理を開始する前に認可ポリシーを評価することで、Cedar の認可機能を Express アプリケーションに統合するためのオープンソース製 Express.js ミドルウェアです。0.3.0 より前のバージョンには、特定の状況下でミドルウェアが `req.originalUrl`(クエリストリングを含む)を使用して着信リクエストを Cedar アクションマッピングと照合する一方で、Express はパス成分のみを使用してリクエストルーティングを行うという問題があります。このため、Cedar が認可した内容と Express が実行する処理の間に乖離が生じます。
アプリケーションが、異なる認可要件を持つ重複するパスプレフィックスに対して別々のアクションを定義している場合(例:すべてのユーザーを一覧表示するための `GET /users` は管理者のみアクセス可能、単一ユーザーを取得するための `GET /users/{id}` は認証済みユーザーであれば誰でもアクセス可能)、攻撃者はクエリストリングを追加してより制限の厳しいポリシーを回避することができます。
例えば、`GET /users/?x=1` を送信すると、ミドルウェアは `/users/{id}`(パラメータ id に ?x=1 が設定される)に対して照合を行い、より制限の緩いアクションを評価しますが、Express はリクエストを `/users` リストハンドラにルーティングします。これにより、より制限の厳しいエンドポイントへの不適切なアクセスが可能になります。
この問題はバージョン 0.3.0 で修正されています。いくつかの回避策が利用可能です。認可ミドルウェアに入力される前に、着信リクエストパスを検証およびサニタイズしてください。また、重複するパスプレフィックスに対して異なる権限レベルで複数のアクションを定義する場合、アプリケーションが認可のためにミドルウェアのみを依存しないようにしてください。
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.