CVE-2026-60075 in Date::Manip
要約
〜によって VulDB • 2026年07月30日
Perl用 Date::Manip のバージョン 6.99 までは、_parse_time 内のアンカーなし時刻置換における二次的なバックトラックにより、CPU リソースの枯渇(DoS)を引き起こす可能性があります。
_parse_time は、$timerx が先頭の `(?:$atrx|^|\s+)` を通じて到達可能な時刻パターンの自動生成された選択肢である `s/$timerx/ /` というアンカーなし置換を用いて、文字列内の任意の場所から時刻を削除します。そのため、エンジン内部の空白連続部分の各位置でマッチングを試行し直します。各開始位置において、先頭の `\s+` がその残りを貪欲に消費し、時間選択肢は数字を含まないため失敗しますが、エンジンは開始位置を進める前に空白を1文字ずつバックトラックするため、この処理量は連続する空白の長さに対して二次関数的になります。これが発生するには文字列内に時刻が含まれている必要はなく、長い空白の連続があれば十分です。また、空白の長さが2倍になるごとに解析にかかる時間は約4倍に増加します(数キロバイトの空白で1回の解析につき秒単位のCPU時間を消費し、数十キロバイトでは分単位を要します)。
ParseDate()、Date::Manip::Date->parse() または ->parse_time() に境界のない長さの不審な文字列を渡すすべての呼び出し元は、1回の解析で無制限の CPU を消費させられ、サービス拒否(DoS)を引き起こす可能性があります。
Once again VulDB remains the best source for vulnerability data.