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
pnpm に provenance のダウングレード を検出する PR を出してみた
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
mattsuu
October 23, 2025
Programming
1
320
pnpm に provenance のダウングレード を検出する PR を出してみた
Nihonbashi.js #10 (2025/10/23) での発表資料
https://nihonbashi-js.connpass.com/event/371133/
mattsuu
October 23, 2025
Tweet
Share
More Decks by mattsuu
See All by mattsuu
CSS Linter の現在地 2025年のベストプラクティスを探る
ryo_manba
12
4.2k
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
390
React Aria で実現する次世代のアクセシビリティ
ryo_manba
5
3.2k
5分で分かる React Aria の 良いところ・これからなところ
ryo_manba
5
6.8k
アクセシブルなインクリメンタルサーチを作ってみた
ryo_manba
2
590
Next.js の fetch 拡張とキャッシュ機構の違いを理解する
ryo_manba
6
1.8k
React Spectrum Libraries によるアクセシブルなUIの構築
ryo_manba
0
4.5k
Other Decks in Programming
See All in Programming
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
610
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
390
AI活用のコスパを最大化する方法
ochtum
0
310
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
520
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
160
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
390
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.3k
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
470
S3ストレージクラスの「見える」「ある」「使える」は全部違う ─ 体験から見た、仕様の深淵を覗く
ya_ma23
0
960
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
2.1k
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
510
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
420
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
200
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
68
38k
Discover your Explorer Soul
emna__ayadi
2
1.1k
We Have a Design System, Now What?
morganepeng
55
8k
The Language of Interfaces
destraynor
162
26k
The Pragmatic Product Professional
lauravandoore
37
7.2k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
We Are The Robots
honzajavorek
0
200
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
250
Joys of Absence: A Defence of Solitary Play
codingconduct
1
320
Transcript
pnpm に provenance のダウングレード を検出する PR を出してみた まっつー / @ryo_manba
2025/10/23 Nihonbashi.js #10
自己紹介 まっつー SFL にハマってる 𝕏: @ryo_manba GitHub: @ryo-manba 2
最近の npm へのサプライチェーン攻撃 2025 年 7~9 月に相次いで発生 著名な OSS メンテナーに対するメールによるフィッシング攻撃
PR title の validation を悪用した攻撃 3
パッケージマネージャ側の対策 pnpm がインストールを遅延させる機能を導入 # pnpm-workspace.yaml minimumReleaseAge: 1440 # 1 日(分単位)
yarn, bun も同様の機能を追加した 4
npm 側の対応 Trusted Publishing が 2025 年7 月31 日に公開 5
Trusted Publishing NPM_TOKEN なしで OIDC 経由で CI から publish する仕組み
トークン漏洩のリスク低減 Provenance が自動生成される 6
Provenance どのソースを・どの手順で・どのCI で作られたかを検証可能に 7
Provenance のダウングレードによる問題の検知 8
pnpm にダウングレードを検知する PR を出した 9
pnpm update 時にダウングレードを検出 Trusted Publishing → Provenance Trusted Publishing →
none Provenance → none 上記のパターンを検出して警告を出す 10
実装の仕組み: npm のメタデータから情報を取得 { "dist": { "attestations": { "provenance": {...}
} }, "_npmUser": { "trustedPublisher": {...} } } 新旧のメタデータを比較してダウングレードを検出 11
課題: 著名なライブラリでもほとんどが Provenance 未対応(8,627/9,505 ) ref: https://github.com/sxzz/npm-top-provenance 12
今後の展望 Trusted Publishing + Provenance が主流に 今回のインシデントで導入が進みそう ライブラリ選定の新たな指標になる可能性 pnpm にマージされなかったら...
taze や danielroe/provenance-action を使うと良いです 13