Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Next.jsの脆弱性(CVE-2025-29927)の話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kuzushiki
March 25, 2025
Technology
43
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Next.jsの脆弱性(CVE-2025-29927)の話
51回 初心者のためのセキュリティ勉強会(オンライン開催)の発表資料です。
https://sfb.connpass.com/event/348181/
kuzushiki
March 25, 2025
More Decks by kuzushiki
See All by kuzushiki
ECS-cape – Hijacking IAM Privileges in Amazon ECSを解説する
kuzushiki
0
300
CISSPに出てくるセキュリティモデルとアクセス制御モデルをまとめてみた
kuzushiki
0
470
攻撃者の視点から見たGraphQLのセキュリティ
kuzushiki
0
41
PythonのURLパーサで見つかった脆弱性について解説する
kuzushiki
0
63
Pythonのtarfileによる展開処理がセキュアになりそう
kuzushiki
0
26
Web Cache Deception Attackについて解説する
kuzushiki
0
59
PHP8.2の新機能✞SensitiveParameter✞につい て
kuzushiki
0
34
Apple M1 CPUの脆弱性「PACMAN」について解説する
kuzushiki
0
880
ファームウェア解析はじめました
kuzushiki
0
32
Other Decks in Technology
See All in Technology
貴方はどのエンジニアリングを磨くのか
hatyibei
0
130
環境凍結という Toil を倒す -セルフサービス型 Ephemeral テスト環境の 設計と実践
shirouz
1
2.3k
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
4
4.2k
AI Driven AI Governance
pict3
0
390
Foxgloveについて 実際にExtensionを開発して公開するまでの話 / About Foxglove: The Story of Developing and Releasing an Extension
ry0_ka
0
230
Terraform共通モジュールをチーム横断で“変えられる”運用へ ― リリースと適用の分離
kekke_n
1
2.9k
ソニー銀行におけるビジネスアジリティ向上のためのクラウドシフト戦略
srenext
0
220
実装だけじゃない! CCA-F取得エンジニアが教えるClaude Code開発プロセス活用術
diggymo
2
700
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
1
190
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
2
3.8k
“それは自分の仕事じゃない"を越えて行け
yuukiyo
0
260
「早く出す」より「事業に効く」 ── 顧客の業務サイクルから逆算するAI時代の二重ループ開発と「変化の設計者」 / devsumi2026
rakus_dev
1
240
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
141
7.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Are puppies a ranking factor?
jonoalderson
1
3.7k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
330
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Docker and Python
trallard
47
3.9k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Marketing to machines
jonoalderson
1
5.6k
Practical Orchestrator
shlominoach
191
11k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
410
Transcript
Next.jsの脆弱性 (CVE-2025-29927)の話
自己紹介 kuzushiki - セキュリティエンジニア5年目 - 2020~2024: 脆弱性診断・ペネトレーションテスト - 2024~: コーポレートITのセキュリティ担当
背景 発表のネタがなく困っていたところ、 先週末にNext.jsの脆弱性が話題になっていた→ 面白そうだったので調査することにした
Next.jsとは 有名なWebフレームワークの一つで、Reactがベースになっている JavaScriptのメタフレームワークの中では利用率1位 https://2024.stateofjs.com/en-US/libraries/#all_tools_experience 2024年|案件が多い「フレームワーク」ランキング 8位 https://prtimes.jp/main/html/rd/p/000000111.000045678.html
CVE-2025-29927とは Next.jsのMiddlewareによる処理がスキップされる脆弱性 認証認可のチェックをMiddlewareでやっていた場合、 本来アクセスできない機能にアクセスされる恐れあり 公式のアナウンスも出ていた https://nextjs.org/blog/cve-2025-29927
デモやります デモアプリはAppRunで公開しているので、ぜひ試してみてください! https://app-e5e67cd8-f4e6-4f7c-b571-09b522207dd6.ingress.apprun.sakura.ne.jp/ ソースコードも公開中 https://github.com/kuzushiki/CVE-2025-29927-test
なんでこんなことに? > Next.js uses an internal header x-middleware-subrequest to prevent
recursive requests from triggering infinite loops. https://nextjs.org/blog/cve-2025-29927 内部ヘッダーx-middleware-subrequestを使って、再帰的なリク エストが無限ループを引き起こすのを防いでいた。 -> すでにMiddlewareを通過したものとして処理されるように なっていた!
脆弱性についての所感 CVSS 9.1で深刻的な脆弱性ではあるものの... 実は、Middlewareのみで認証認可のチェックをすることは推奨されていない > Optionally use Middleware to perform
optimistic checks. https://nextjs.org/docs/pages/building-your-application/authentication 実際に悪用される可能性は低かったのでは?
対策 可能ならアップデートしましょう For Next.js 15.x, this issue is fixed in
15.2.3 For Next.js 14.x, this issue is fixed in 14.2.25 For Next.js 13.x, this issue is fixed in 13.5.9 For Next.js 12.x, this issue is fixed in 12.3.5 もし難しければ、x-middleware-subrequestヘッダを含む外部からのリクエストをWAFな どで遮断しましょう
おわりに ミドルウェアでのチェックを過信してはいけない 使う前に公式ドキュメントを読んで、用途に問題がないか確認しておこう バグハンター目線だと狙い目かも?