Mongooseの脆弱性CVE-2026-125120|countDocumentsの入力保護と修正版
CVE-2026-125120・GHSA-pcrw-h46h-c93hMongoDBをNode.jsから扱うライブラリMongooseで、件数を数えるcountDocuments()に入力保護のsanitizeFilterが適用されない脆弱性CVE-2026-125120が公表されました。外部から受け取ったオブジェクトを検索条件に渡し、この保護に頼っている処理は確認が必要です。使っている系列の修正版に更新し、件数取得に渡る入力と保護の設定も確かめます。[1]
- 対象はcountDocuments()の検索条件です。sanitizeFilterを設定していても、修正前の版ではこの処理に適用されません。
- この件の修正版は6.13.11・7.8.12・8.24.3・9.9.2です。同時期の接続単位の設定不備なども直す6.13.12・7.8.13・8.24.7・9.11.4を更新先にします。
- 2026年11月13日の確認時点でCISA KEVへの掲載はありません。提供元はCVSS 3.1で9.8(緊急)と評価しています。
01countDocumentsで入力保護が働かない
02外部入力が件数取得の条件に入るか確かめる
対象パッケージはnpmのmongooseです。アプリケーション内のcountDocuments()を探し、引数の検索条件にリクエスト本文やURLパラメーターなどの外部入力が入るかを追います。入力を文字列などに限定しているか、オブジェクトをそのまま渡しているかも確認します。[1]
別件のCVE-2026-125119では、接続時のオプションにsanitizeFilter: trueを設定してもクエリに反映されません。接続の設定値がtrueと表示されることだけでは、保護が働くと判断できません。この別件については、グローバルまたはクエリごとの設定を使う利用者は影響を受けないと提供元が説明しています。[3]
03悪用の状況
04対象の版と推奨する版
提供元とOSVの影響範囲、npmで配布済みの版を2026年11月13日に照合しました。推奨する版は、この件に加え、接続単位のsanitizeFilterの不備など同時期の修正を含む版です。適用前に使用系列のリリースノートも確かめます。[2]
| 系列 | この件の対象 | この件の修正版 | 推奨する版 |
|---|---|---|---|
| 6系以前 | 6.13.11未満 | 6.13.11 | 6.13.12 |
| 7系 | 7.0.0〜7.8.11 | 7.8.12 | 7.8.13 |
| 8系 | 8.0.0〜8.24.2 | 8.24.3 | 8.24.7 |
| 9系 | 9.0.0〜9.9.1 | 9.9.2 | 9.11.4 |
5系以前は影響範囲の「6.13.11未満」に含まれますが、その系列向け修正版はアドバイザリに記載がありません。メジャー版を移る場合は互換性の確認が必要です。npmの実行環境要件は、上記の推奨版でそれぞれNode.js 12.0.0以上、14.20.1以上、16.20.1以上、20.19.0以上です。[5]
05確認・更新・反映の確認
npm ls mongoose --allで、直接・間接の依存関係にある版を調べます。package-lock.jsonに記録されたmongooseの版も確認します。複数の版があれば、それぞれを調べます。countDocuments()に渡す入力とsanitizeFilterの設定箇所を確認します。更新は設定の代わりにはならないため、保護を使う設計なら有効になっていることも確かめます。
直接依存の8系なら
npm install mongoose@8.24.7のように使用系列の推奨版へ更新します。間接依存ならnpm explain mongooseで依存元を調べ、そのパッケージの更新を検討します。通常の件数取得と、不正な型の入力を受け付けないことをアプリケーションのテストで確かめます。依存関係を含めて再ビルド・再配置し、配備する成果物でも
npm ls mongoose --allとlockファイルの版を確認します。



06すぐ更新できないとき
提供元は、countDocumentsのpreミドルウェアでmongoose.sanitizeFilter(this.getFilter())を呼び出し、検索条件を明示的に処理する方法を掲載しています。スキーマやプラグインへの組み込みと動作確認が必要です。[1]
更新までの間も、件数取得のAPIが受け入れる項目と型を確認し、不要なオブジェクトを検索条件へ渡す経路を減らします。通常の検索が動くことだけでなく、件数取得の経路を個別にテストしてください。
07通常の検索と件数取得を別々に点検する
よくある質問
MongoDB本体を更新すれば解決しますか?
今回の対象はNode.js側のMongooseです。アプリケーションが実際に使うmongooseの版と入力保護を確認します。
sanitizeFilterがtrueなら安全ですか?
修正前のcountDocuments()には適用されません。また、接続単位の設定が反映されない別件もあるため、版と設定箇所の両方を確認します。
8.24.3で止めず8.24.7にする理由は?
8.24.3はこの件の修正版ですが、8.24.7には接続単位のsanitizeFilterの不備など、同時期に公表された別の問題への修正も含まれます。
出典・参考資料
- Automattic/mongoose:GHSA-pcrw-h46h-c93h2026-11-03(日本時間)、2026-11-13確認 / countDocumentsへの適用漏れ、影響範囲、修正版、回避策、CVSS 3.1 9.8
- OSV:GHSA-pcrw-h46h-c93h2026-11-13確認 / CVE番号、パッケージ、系列ごとの影響範囲と修正版
- Automattic/mongoose:GHSA-gg4r-jv3p-qx3c2026-11-13確認 / 接続単位のsanitizeFilterの不備、設定条件、6.13.12・7.8.13・8.24.7・9.11.4の修正
- 米CISA:Known Exploited Vulnerabilities Catalog2026-11-13確認 / CVE-2026-125120の掲載がないこと
- npmレジストリ:mongoose2026-11-13確認 / 推奨版4系列の配布済み確認とNode.jsの実行環境要件
- Automattic/mongoose:8.24.7リリースノート2026-10-23、2026-11-13確認 / 接続単位のsanitizeFilterほか同時期の修正
- Automattic/mongoose:9.11.4リリースノート2026-10-23、2026-11-13確認 / 接続単位のsanitizeFilterほか同時期の修正
あわせて読みたい記事
Viteの脆弱性GHSA-p4f5-76q4-ffq7|開発サーバーでコード実行、確認方法と修正版
ネットワークへ公開したViteの開発サーバーで、コード実行やファイル漏えいが起きる脆弱性。6〜8系とVite+の対象範囲、配布を確認できた修正バージョン、Rolldownを含む更新手順を説明します。
Viteの脆弱性CVE-2026-118662|.envを読まれる6.4.4の確認方法と6.4.6への更新
Vite 6.4.4の脆弱性CVE-2026-118662は、ネットワークに公開した開発サーバーで、拒否したはずの.envなどを返すおそれがあります。10月6日の更新で6.4.4にした環境が対象になった理由、初期設定で条件がそろう点、Astro 5など間接の依存の確かめ方、6.4.6への上げ方を説明します。

Vite 6.4.4の脆弱性を検証|.envの読み取りは開発サーバーの出力に残らない
Viteの脆弱性CVE-2026-118662を、6.4.4と修正後の6.4.5・6.4.6を手元で動かして検証しました。返ったファイルと返らなかったファイル、中身が返った要求が開発サーバーの出力に残らないこと、公開しない初期設定で届く範囲を記録しています。