GitHub Advisory Databaseに、Honoの静的ファイル配信機能「serveStatic」で認証チェックが迂回され得る脆弱性が掲載されています。配信ディレクトリの一部に保護をかけているアプリでは、未認証の攻撃者が静的ファイルにアクセスする恐れがあります。提供された資料には、公表日は記載されていません。
パスを二度デコードすることで保護の対象がずれる
脆弱性の識別子は「CVE-2026-111757」です。問題は、リクエストされたパスを処理する際、ルーティングとファイル配信で解釈が食い違うことにあります。ルーティングとは、アクセス先に応じて処理を振り分ける仕組みです。
Honoはルーティング前にリクエストパスを1回デコードし、符号化された表記を元に戻します。その後、serveStaticが配信するファイルの場所を決める前に、もう一度デコードします。アドバイザリによると、不正なパーセント符号化によって、処理の振り分け先と実際の配信先が食い違います。
この結果、静的パスに設定したミドルウェアが実行されない場合があります。ミドルウェアは、認証チェックなどをリクエスト処理の途中に挟む仕組みです。認証が必要なファイルでも、そのチェックを経ずに配信される可能性がある点が問題です。
配信ルート外へのアクセスとは別の問題
アドバイザリは、この問題を、設定したルートの外へ移動する「ディレクトリトラバーサル」ではないと説明しています。確認の中心は、配信ルートの外にあるファイルではなく、配信ディレクトリ内で認証などを必要としているファイルです。
そのため、serveStaticを使っているという情報だけで影響を判断せず、どの範囲を配信し、そのうちどこをミドルウェアで保護しているかを照合する必要があります。
提供資料には、影響するバージョン、修正版、修正の提供時期は記載されていません。更新先をこの記事だけで決めることはできません。また、日本での提供は発表には書かれていません。
影響する会社・しない会社
- 影響する: HonoのserveStaticで配信するディレクトリの一部に、ミドルウェアを設定しているアプリを運用する会社です。特に、静的ファイルの認証チェックをそのミドルウェアに任せている場合は、保護対象の確認が必要です。
- 影響しない: アドバイザリによると、公開ファイルだけを配信するアプリです。「静的ファイルだから対象外」ではなく、配信物がすべて公開用かどうかで切り分けてください。
会社の規模や利用地域による対象の違いは、発表には書かれていません。委託先が開発・運用しているアプリも、同じ配信条件で確認を依頼するのがよいでしょう。