30秒で判断
- 対応すべき人: Eclipse Langium 3.2.0〜4.4.0を使い、オプトインの
IndentationAwareTokenBuilder/IndentationAwareLexerを利用している方 - 対応不要な人: Eclipse Langiumを使用していない方、
DefaultLexer/DefaultTokenBuilderのみを使用している方 - 確認コマンド:
npm ls langium
概要
Eclipse Langiumは、DSL(ドメイン特化言語)パーサーやエディタ拡張機能を構築するためのNode.js向けフレームワークです。3.2.0から4.4.0のバージョンにおいて、オプトインで利用できるIndentationAwareTokenBuilderとIndentationAwareLexerに、計算量が肥大化するアルゴリズム複雑性の問題(CWE-407)が存在します。
DEDENTトークンを生成する際、トークンビルダーが先行するドキュメント全体のテキストを再スキャンして行番号を再計算する処理になっており、インデントがほとんどの行で変化するようなドキュメントでは、トークン化処理が2次関数的(quadratic)な時間を要する状態になります。トークン化処理は同期的に実行されるため、数百キロバイト程度のドキュメントでもNode.jsのイベントループを数十秒単位でブロックし、同一プロセスが処理する全利用者に対するサービス拒否(DoS)状態を引き起こす可能性があります。デフォルトのDefaultLexer/DefaultTokenBuilderを使用している場合は影響を受けません。
CVSSベクトル
| 項目 | 内容 |
|---|---|
| CVSSスコア | 8.7 (High) |
| CVSSバージョン | 4.0 |
| 脆弱性種別 | 非効率なアルゴリズム複雑性(CWE-407) |
| 影響 | サービス拒否(DoS)、Node.jsイベントループのブロック |
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| Eclipse Langium (IndentationAwareTokenBuilder/IndentationAwareLexer使用時) | Eclipse Foundation | 3.2.0 〜 4.4.0 |
修正バージョンと回避策
Eclipse Langiumのセキュリティアドバイザリ(GHSA-297v-g8mm-qj4h)で修正版の情報が公開されています。該当機能を使用している場合は、修正済みバージョンへのアップデートを推奨します。アップデートが難しい場合は、IndentationAwareTokenBuilder/IndentationAwareLexerの使用を一時的にDefaultLexer/DefaultTokenBuilderへ切り替える、または処理対象ドキュメントのサイズに上限を設けることが回避策として考えられます。
関連リンク
- NVD: CVE-2026-124683
- GitHub Security Advisory: GHSA-297v-g8mm-qj4h
- Eclipse CVE Assignment Work Item #553
- Eclipse Vulnerability Report Work Item #1069
データソース: NVD (NIST) AI解説はClaude APIにより自動生成されています。正確性については原文をご確認ください。
