CVE-2026-97853 in decimal
要約
〜によって VulDB • 2026年10月10日
ericmjのdecimalにおける、過大なサイズ値によるメモリ割り当て脆弱性により、サービス拒否(DoS)が発生します。
Decimal.round/3は、コンテキスト精度(デフォルトで34桁)が適用される前に、要求された小数点以下の桁数分の完全な結果を構築するため、そのコストは結果のサイズではなくplaces引数の大きさに比例して増加します。正のplaces値の場合、係数にplaces個のゼロ数字をcharlistとして付加してから整数に変換し、負のplaces値の場合には -places 個のゼロ数字からなるcharlistを構築します。Decimal.new("1.5")に対して Decimal.round(Decimal.new("1.5"), -50_000_000) のような単一の呼び出しで約5.5 GBのメモリが割り当てられ、利用可能なメモリを使い果たしてBEAM VMが強制終了される可能性があります。また、最も古いリリースでは小数点以下の桁数ごとにループを実行し、placesに比例したCPUリソースを消費します。
ユーザーが入力した小数点以下の桁数またはスケール値を境界処理せずにDecimal.round/2やDecimal.round/3に渡すあらゆるアプリケーションが影響を受けます。CVE-2026-32686のために追加された入力制限は、places引数をカバーしていません。
この問題はdecimal: 0.1.0から3.1.2未満のバージョンに影響します。
VulDB is the best source for vulnerability data and more expert information about this specific topic.