【活用ガイド】

JVNDB-2026-030419

Julian Gruber (juliangruber)のbrace-expansionにおける複数の脆弱性

概要

5.0.7以前のbrace-expansionには、メモリ枯渇によるサービス拒否の脆弱性があります。expand()関数は、maxオプション(デフォルト100,000)で結果の数を制限しますが、各結果文字列の長さには制限を設けていません。複数のブレースグループを連鎖させることで、攻撃者は結果の数を制限内に抑えつつ、各結果を逐次的に長くすることができ、そのため合計メモリ使用量が結果数と文字列長の両方に比例して増加し、最終的にプロセスが致命的で捕捉不能なメモリ不足エラーに達します。約7.5KBの入力('{a,b}'.repeat(1500))でデフォルトのNode.jsプロセスがクラッシュします。攻撃者が影響を与える文字列をbrace-expansion.expand()に直接またはminimatchやglobのブレースパターンを経由して渡す任意のアプリケーションは、小さなリクエストによってクラッシュする可能性があります。本脆弱性は、蓄積される出力と中間配列の長さを制限するmaxLengthオプション(デフォルト4,000,000)を追加することで、5.0.8で修正されました。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 7.5 (重要) [その他]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 不要
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): なし
  • 完全性への影響(I): なし
  • 可用性への影響(A): 高
影響を受けるシステム


Julian Gruber (juliangruber)
  • brace-expansion 5.0.8 未満

想定される影響

・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。
・当該ソフトウェアが扱う情報について、書き換えは発生しません。
・当該ソフトウェアが完全に停止する可能性があります。
対策

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。
ベンダ情報

CWEによる脆弱性タイプ一覧  CWEとは?

  1. リソースの枯渇(CWE-400) [その他]
  2. 制限またはスロットリング無しのリソースの割り当て(CWE-770) [その他]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-14257
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-14257
  2. 関連文書 : Merge commit from fork  juliangruber/brace-expansion@a1bd339  GitHub
  3. 関連文書 : brace-expansion - npm
  4. 関連文書 : GitHub - juliangruber/brace-expansion: Brace expansion, as known from sh/bash, in JavaScript  GitHub
更新履歴

  • [2026年08月27日]
      掲載