
Next.jsと破損したミドルウェア...ハッキングしてみよう..!
これは、cve-2025-29927 がどのように動作するかを実践的に説明するために、[create-next-app] でブートストラップされたサンプルの Next.js プロジェクトです。(https://nextjs.org/docs/app/api-reference/cli/create-next-app)。
まず、開発サーバーを起動します:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
ブラウザで http://localhost:3000 を開いて結果を確認してください。
これで、Burp やその他のブラウザ拡張機能を使用してヘッダーを変更し、そのペイロードを使ってミドルウェアを悪用できます。

next.js アプリケーションがミドルウェアを使用する場合、runMiddleware 関数が使用されます。この関数は、その主な用途に加えて、x-middleware-subrequest ヘッダーの値を取得し、ミドルウェアを適用するかどうかを判断するために使用します。ヘッダーの値は、コロン文字 (:) を区切り文字として分割してリストを作成し、そのリストに middlewareInfo.name の値が含まれているかどうかをチェックします。
つまり、リクエストに正しい値を含む x-middleware-subrequest ヘッダーを追加すると、ミドルウェアはその目的に関係なく完全に無視され、リクエストは NextResponse.next() を介して転送され、ミドルウェアが何らの影響も与えることなく、元の宛先までその経路を完了することになります。このヘッダーとその値は、ルールを上書きできるユニバーサルキーとして機能します。この時点で、私たちがとんでもないものを発掘したことはすでにわかっています。
Uploading next-middleware-2.png…
ここでは "next": "14.0.4" を使用していることに注意してください。