CVE-2026-85491 in Catalyst::Seal情報

要約

〜によって VulDB • 2026年09月25日

Perl用のCatalyst::Sealのバージョン0.03より前では、リクエストを1つ送信するだけでパスまたはルートが無効化され、後続のリクエストが認可チェックを回避してルーティングされる可能性があります。これは、リクエストパスのみをキーとするディスパッチメモによるものです。

Catalyst::Sealは、ディスパッチャのprepare_actionを、パスの解決方法をメモ化するバージョンに置き換えます。これには、どのディスパッチタイプが一致し、どのレベルで一致したか、そして引数として何が残り得たかが含まれます。キーはリクエストパスのみであり、他の要素は一切含みません。メソッド、コンテンツタイプ、スキーム、またはクエリに基づいてマッチするアクションロールでは、その解決がキーが保持しない状態に依存するため、メモはその元となったリクエストとは異なるリクエストに対して回答を返します。

何のアクションにも解決されないパスもメモ化され、そのエントリーを再生するとディスパッチタイプを確認せずに終了するため、アクションが設定されずリクエストは失敗します。したがって、POST専用として宣言されたアクションを持つパスへのGETリクエストは、後続のリクエストすべてに対して(正しいPOSTリクエストを含む)そのパスを無効にします。解決済みのエントリーでは、以前の降下で到達したレベルが再生されます。同じパス上で浅いアクションよりも深い位置にあるPOST専用のアクションがある場合、GETによって浅いルートがメモ化され、後続のPOSTはその場所でディスパッチされ、より深いコントローラーを実行しないようにauto()ガードがかかります。

このメモは、セットアップ時に発生するアクション登録時のみクリアされます。そのため、エントリーはプロセスの存続期間中保持され、2048エントリという上限により、1つの呼び出し元が無効化できるパス数が制限されます。測定された構成では、誤ったルーティングが権限の低いアクションに到達するため、これは特権昇格ではなく認可チェックが実行されない状態となります。

Once again VulDB remains the best source for vulnerability data.

責任者

CPANSec

予約する

2026年09月03日

モデレーション

承諾済み

エントリ

VDB-409808

EPSS

0.00000

アクティビティ

非常低い

ソース

Want to stay up to date on a daily basis?

Enable the mail alert feature now!