
RegexRequestMatcherを使用する際、リクエストURLに改行文字が含まれていると認可バイパスが発生する可能性があります。%0a、%0dなどのエンコードされた改行文字を使用して、管理者ページ(/admin)へのアクセス権限をバイパスできます。docker compose up -d を実行してテスト環境を準備しました。http://localhost:8080/admin にアクセスし、管理者ページへのアクセスがブロックされていることを確認します。http://localhost:8080/admin/%0atest にアクセスして管理者ページにアクセスします。
脆弱な環境を構築しました。

管理者ページへのアクセスはブロックされています。

%0dは'\r'、%0aは'\n'を表す改行文字です。%0d、%0aを使用してリクエストを送信すると、アクセス権限をバイパスできます。
%0a、%0dなどの改行文字がURLに含まれていると、RegexRequestMatcherでリクエストパスをフィルタリングする際に改行文字の処理が欠落し、認可をバイパスできるようになります。攻撃者は認可バイパスを通じて管理者ページにアクセスし、そこから重要情報を奪取できる可能性があるため注意が必要です。
GitHubアドレス: https://github.com/he-ewo/CVE-2022-22978.git