Vert.x Webのstatic handlerコンポーネントのキャッシュには、特定の細工されたリクエストURIを使用することで、ハンドラーが提供する静的ファイルへのアクセスを拒否させる操作が可能な問題があります。この問題は、RFC3986のセクション5.2.4の規則Cの不適切な実装に起因しており、Vert.x Webで使用されるVert.x Coreコンポーネントで修正されました。再現手順として、static handlerで提供されるファイルがある場合には、最後の/文字の後に「bar%2F..%2F」のような文字列を挿入したURIを作成すると、HTTP 404レスポンスでURIへのアクセスが拒否されます。例えば、https://example.com/foo/index.html は、https://example.com/foo/bar%2F..%2Findex.html のように拒否されます。対策として、Static Handlerのキャッシュを無効にすると問題を修正できます。例:StaticHandler staticHandler = StaticHandler.create().setCachingEnabled(false);。
|