【活用ガイド】

JVNDB-2026-010011

Eemeli Aro (eemeli)のYAMLにおける再帰制御に関する脆弱性

概要

`yaml` は JavaScript 用の YAML パーサーおよびシリアライザーです。バージョン 1.x 系の 1.10.3 より前および 2.x 系の 2.8.3 より前のバージョンで YAML ドキュメントを解析すると、スタックオーバーフローにより RangeError が発生する可能性があります。ノードの解決/合成フェーズでは深さ制限のない再帰的関数呼び出しを使用しています。攻撃者が解析用に YAML を提供できる場合、小さなペイロード(約 2 から 10 KB)で `RangeError: Maximum call stack size exceeded` を引き起こすことが可能です。`RangeError` は `YAMLParseError` ではないため、YAML 特有のエラーのみをキャッチするアプリケーションでは予期しない例外タイプが発生します。ホストアプリケーションの例外処理によっては、リクエストの失敗や Node.js プロセスの終了を引き起こす可能性があります。フローシーケンスは非常に少ないバイト数(レベルごとに 2 バイト:`[` と `]`)で深いネストを許容します。標準の Node.js スタック上では、約 1,000 から 5,000 レベルのネスト(2 から 10 KB の入力)でコールスタックを使い果たします。正確な閾値は環境依存であり、Node.js のバージョンやスタックサイズ、呼び出し時のコールスタック深度によって変わります。なお、ライブラリの `Parser`(CST フェーズ)はスタックベースの反復アプローチを使用しているため影響を受けません。問題があるのは合成/解決フェーズのコールスタック再帰のみです。以下の 3 つの公開パース API 全てに影響があります:`YAML.parse()`, `YAML.parseDocument()`, および `YAML.parseAllDocuments()`。バージョン 1.10.3 と 2.8.3 でパッチが適用されています。
CVSS による深刻度 (CVSS とは?)

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


Eemeli Aro (eemeli)
  • YAML 1.0.0 以上 1.10.3 未満
  • YAML 2.0.0 以上 2.8.3 未満

本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。
想定される影響

当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。
また、当該ソフトウェアが扱う情報について、書き換えは発生しません。
さらに、当該ソフトウェアの一部が停止する可能性があります。
そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。
対策

正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。
ベンダ情報

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

  1. 不適切な再帰制御(CWE-674) [その他]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-33532
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-33532
  2. 関連文書 : Release v1.10.3  eemeli/yaml  GitHub
  3. 関連文書 : Release v2.8.3  eemeli/yaml  GitHub
  4. 関連文書 : fix: Catch stack overflow during node composition  eemeli/yaml@1e84ebb  GitHub
更新履歴

  • [2026年04月06日]
      掲載