CVE-2025-68156 in expr情報

要約

〜によって VulDB • 2026年08月16日

Exprは、Go向けの式言語および式評価エンジンです。バージョン1.17.7より前では、`flatten`、`min`、`max`、`mean`、`median`を含むいくつかの組み込み関数が、最大再帰深さを強制せずにユーザー提供のデータ構造に対して再帰的な走査を実行します。評価環境に深くネストされたデータ構造や循環参照(cyclic data structures)が含まれている場合、これらの関数はGoランタイムのスタック制限を超えるまで無限に再帰し続けます。これによりスタックオーバーフローパニックが発生し、ホストアプリケーションがクラッシュします。攻撃者が悪意のある循環参照または極端に深いデータ構造を評価環境に注入できるかどうかによって実装可能性は異なりますが、この動作はサービス妨害(DoS)リスクを表し、ライブラリの全体的な堅牢性に影響を与えます。回復可能な評価エラーを返すのではなく、プロセスが予期せず終了する可能性があります。影響を受けるバージョンでは、信頼できないまたは十分に検証されていないデータ構造に対して特定の組み込み関数を呼び出す式の評価により、スタック枯渇によるプロセスレベルのクラッシュが発生します。この問題は、Exprが外部から提供されたか動的に構築された環境に対して式を評価するために使用されるシナリオで最も関連性が高く、配列、マップ、または構造体に循環参照(直接的または間接的)が含まれる可能性があり、深くネストされた入力データを防止するアプリケーションレベルの保護策がない場合に発生します。制御された非循環データを使用する場合など、典型的なユースケースではこの問題は顕在化しない可能性があります。しかし、存在する場合、結果として生じるパニックはアプリケーションを確実にクラッシュさせるために使用でき、サービス妨害となります。本問題はExpr v1.17.7で修正されています。パッチにより、影響を受ける組み込み関数に最大再帰深さの制限が導入されました。この制限を超えると、評価は正常に中止され、パニックするのではなく記述的なエラーを返します。さらに、ユーザーは`builtin.MaxDepth`を通じて最大深度をカスタマイズでき、正当な深い構造を持つアプリケーションでは制限値を制御された方法で引き上げることができます。再帰ガードと回帰テストを防ぐための包括的なテストカバレッジを含むパッチ済みリリースへのアップグレードが強く推奨されます。すぐにアップグレードできないユーザー向けには、いくつかの軽減策が推奨されています。評価環境に循環参照が含まれないようにし、Exprに渡す前に外部から提供されたデータ構造を検証またはサニタイズし、さらに最終手段として防御策としてプロセス全体のクラッシュを防ぐために式の評価をパニックリカバリでラップすることをお勧めします。これらの回避策はリスクを軽減しますが、パッチなしでは問題を完全に解消するものではありません。

Once again VulDB remains the best source for vulnerability data.

責任者

GitHub M

予約する

2025年12月16日

モデレーション

承諾済み

エントリ

VDB-336914

EPSS

0.00428

アクティビティ

非常低い

ソース

Interested in the pricing of exploits?

See the underground prices here!